• 雲端服務 Cloud SLA

    使用雲端的服務,雲端服務提供者都會定義 SLA (Service Level Aggrements)

    使用者也會根據該 SLA 來選擇適合的雲端服務。

    這篇文章主要討論雲端服務選用時,相關 SLA 的考量會有哪些與建議。

     

    3Cloud

    什麼是 Cloud SLA (Service Level Agreement)

    SLA 就好比是軟體安裝時使用者合約,通常會定義下列內容 (但不限於)

    • 所提供的雲端服務
    • 服務提供者與使用者間的權利義務
    • 監控該服務的機制
    • 如果沒有達到該 SLA 時的機制

    其中有幾個項目特別說明

    Transparency

    資訊的透明性。這個項目指的是雲端服務廠商必須要對於雲端服務的各種例外發生狀況、服務中斷、資安問題等,必須及時且透明的讓消費者客戶知道。

    因為很多情況下,雲端服務的消費者客戶,很難舉證或是得知該服務中斷是不是因為雲端服務廠商所導致或是其他問題。

    Certification

    業界或是法規的認證。例如 PCI DSS 或是ISO 27001。必須保持相關認證的更新性。

    Metrics

    這個部分的指標,又分為下列幾種:

    • Throughput – 該雲端服務可以處理的資料流量。
    • Reliability – 穩定性。例如一個99.99999%的服務,全年只允許有 5 分鐘的服務中斷時間
    • Elasticity – 彈性。未來擴充的彈性
    • Automation – 自動化處理提供的程式介面
    • 客戶回覆時間與品質

     

    最後,根據不同雲端服務的種類,可以區別相對應的 SLA ,參考列表如下:

    SLA Matrics

     

     

    Tags: ,

  • ASP.NET網站程式開發注意事項

    這篇文章主要討論如果網站是用ASP .Net 開發網站時,

    資訊安全要注意的地方,有哪些API有安全高風險盡量不要使用?

    環境設定要注意什麼? 這篇文章將討論下列子主題:

    • 使用者輸入有關的變數與 API
    • Session 的處理
    • 檔案的存取
    • 資料庫的存取
    • 系統指令的執行
    • 環境設定

    同樣的原理也可以應用在 PHP or Java 的程式語言,這篇文章主要以 ASP .NET 為例說明。

    PHP  可參考這篇  http://www.qa-knowhow.com/?p=686

     

    整體的架構安全

    筆者很喜歡這張圖。

    因為說明整體,用戶端瀏覽、網站、應用程式伺服器、資料庫伺服器等需要注意的安全風險。

    使用者輸入相關 API

    • Params: 回傳 URL query 的參數值
    • QueryString: Query 的參數值
    • Headers: HTTP headers
    • UrlReferrer: HTTP request 中Referer的值
    • Cookies:Cookie 值
    • Browser UserAgent:UserAgent 的值

     

    Session

    記錄使用者連線相關資訊,相關 API 例如:

    • System.Web.SessionState.HttpSessionState
    • Session
    • Profile

     

    檔案存取

    讀取檔案的時候,注意檔案的輸入參數,檔案位置、檔案名稱、檔案類型是否合法等。

    • System.IO.FileStream
    • System.IO.StreamReader
    • System.IO.StreamWriter

     

    資料庫存取

    下列 API 可以用來執行 SQL statement,因此必須特別注意潛在 SQL injection的風險

    • System.Data.SqlClient.SqlCommand
    • System.Data.SqlClient.SqlDataAdapter
    • System.Data.Oledb.OleDbCommand
    • System.Data.Odbc.OdbcCommand
    • System.Data.SqlServerCe.SqlCeCommand

     

    作業系統指令執行

    下列 API 會造成作業系統指令的執行,

    因此盡量避免使用這樣的 API,否則會造成非預期的輸入與執行

    • System.Diagnostics.Start.Process
    • System.Diagnostics.Start.ProcessStartInfo

    舉例來說,下列程式會就造成小畫家的執行:

    string UserInputCmd = “msPaint”;
    Process.Start(UserInputCmd);

    環境設定

    • sessionState:可以用這個值設定 timeout,讓 idle使用者在一段時間之後該 session失效。
    • compilation:網站上線時建議設定為 false,將相關錯誤除錯的訊息取消。
    • customErrors:當發生錯誤的時候,如何顯示相關訊息。通常建議自訂一頁制式的錯誤畫面。避免將過多的程式錯誤回傳給使用者。
    • httpRuntime: enableHeaderChecking建議設定為 true。可以讓 ASP Net 檢查潛在的攻擊,例如 XSS。

    摘要

    這篇文章主要討論ASP.NET網站程式開發注意事項

    在時間有限下,如果要做相關程式碼的檢查與驗證,就可以特別針對這些地方檢查。

    • 使用者輸入有關的變數與 API
    • Session 的處理
    • 檔案的存取
    • 資料庫的存取
    • 系統指令的執行
    • 環境設定

     

    https://msdn.microsoft.com/en-us/library/ff648637.aspx

     

    Tags: , , ,

  • 雲端應用的七種使用情境

    這篇文章主要討論雲端服務的七種使用情境

    (參考資料:http://cloudusecases.org)

     

    情境一:使用者直接存取雲端服務

    這個使用情境,使用者直接存取雲端的資料或是應用程式。

    例如: Yahoo Email, Hotmail, Facebook, Line 等。

    使用者只要有瀏覽器到處都可以存取他自己的資料,與使用該應用程式的服務。

     

    enduser to Cloud

     

     

     

    情境二:使用者透過雲端存取企業內部資源

    使用者可能為企業外部客戶或是企業員工,透過雲端存取企業內部資源。

    舉例來說,協力廠商存取相關供應貨品資料。

    舉例來說,內部員工存取請假系統。

     

    情境三:企業存取雲端資源

    這種情況,企業將一些資源放到雲端。僅供企業內部使用。

    例如,雲端儲存空間的檔案備份與加密。

    ENt to Cloud

     

     

    情境四: 企業對企業的雲端資料交換

    這個部分主要是企業間透過同的雲端服務,做資料的交換與存取。

    例如:供應商上下游,透過雲端的訂單系統,及時讓彼此知道訂單處理的狀況。

     

    ENT to ENT

     

    情境五:私有雲

    這個部分指的是在企業內部自建私有雲。只有企業內部可以存取。

    private cloud

     

     

    情境六:不同雲端服務間的資料交換

    雲端服務間的資料轉換或是移轉。這個情況下,

    主要考量資料的標準化與中介介面,方便可以在不同雲端間相互溝通。

    cloud vendors

     

    情境七:混合雲

    企業同時使用公有雲、與私有雲提供服務。

     

     

     

     

    hybrid cloud

     

     

     

     

    Tags: ,