SDL 安全性 Bug 列 (範例)

注意: 此範例檔僅供說明之用。 下列內容概述建立安全性程式時要考慮的基本準則。 這不是完整的活動或準則清單,因此不應將其視為此類。

請參閱 本節中的詞彙 定義。

伺服器

如需伺服器 DoS 案例的完整矩陣,請參閱 阻斷服務矩陣

當用戶互動是惡意探索程式的一部分時,伺服器列通常不適用。 如果嚴重弱點只存在於伺服器產品上,而且被惡意探索的方式需要使用者互動並導致伺服器遭到入侵,則嚴重性可能會根據用戶端嚴重性樞紐開始時所呈現之廣泛用戶互動的 NEAT/data 定義,從嚴重性縮減為重要。

伺服器

重大

伺服器摘要:伺服器「擁有」的網路蠕蟲或 不可避免的 案例。

  • 提高許可權:執行任意程序代碼 取得比授權更高的許可權的能力

    • 遠端匿名使用者

      • 範例:

        • 未經授權的文件系統存取:任意寫入文件系統

        • 執行任意程序代碼

        • SQL 插入式插入式 (允許程式代碼執行)

    • 遠端匿名可呼叫程式代碼中的所有寫入存取違規 (AV)、可惡意探索讀取的 AV 或整數溢位

重要

伺服器摘要:非預設重大案例或風險降低可協助 防止 重大案例的情況。

  • 阻斷服務:必須藉由傳送少量數據或快速引發來「容易惡意探索」

    • 匿名

      • 常設 DoS

        • 範例:

          • 傳送單一惡意 TCP 封包會導致藍色死亡畫面 (BSoD)

          • 傳送少量導致服務失敗的封包

      • 使用放大的暫時 DoS

        • 範例:

          • 傳送少量的封包,導致系統一段時間無法使用

          • 網頁伺服器(例如 IIS)關閉一分鐘或更長的時間

          • 單一 遠端用戶端 會藉由建立工作階段並保持開啟,以取用伺服器上所有可用的資源(工作階段、記憶體)

    • 已驗證

      • 針對高價值資產的持續性 DoS

        • 範例:

          • 傳送少量封包,導致伺服器角色中高價值資產的服務失敗(證書伺服器、Kerberos 伺服器、域控制器),例如網域驗證的使用者可以在域控制器上執行 DoS 時

  • 提高許可權:執行任意程序代碼 取得比預期更高的許可權的能力

    • 遠端驗證的使用者

    • 本機已驗證的使用者 (終端機伺服器)

      • 範例:

        • 未經授權的文件系統存取:任意寫入文件系統

        • 執行任意程序代碼

    • 所有寫入AV、可惡意探索讀取的AV,或程式代碼中的整數溢位,這些程式代碼可由非系統管理員或本機驗證的使用者存取(管理員 istrator 案例沒有定義的安全性考慮,但仍是可靠性問題。

  • 資訊洩漏(目標)

    • 攻擊者可從系統上的任何位置尋找和讀取信息的情況,包括未打算或設計為公開的系統資訊

      • 範例:

        • 個人標識資訊 (PII) 洩漏

          • 洩漏 PII (電子郵件地址、電話號碼、信用卡資訊)

          • 攻擊者可以在未經使用者同意或秘密的情況下收集 PII

  • 詐騙

    • 實體(計算機、伺服器、用戶、進程)能夠偽裝自己選擇的特定實體(用戶或計算機)。

      • 範例:

        • 網頁伺服器使用用戶端憑證驗證 (SSL) 不當,以允許攻擊者識別為他/她選擇的任何使用者

        • 新的通訊協定是設計來提供遠端客戶端驗證,但通訊協定中存在缺陷,可讓惡意遠端使用者被視為其選擇的不同使用者

  • 竄改

    • 在一般或預設案例修改任何「高價值資產」數據,其中修改會在重新啟動受影響的軟體之後保存

    • 在一般或預設案例中使用的 任何使用者或系統數據永久或持續修改

      • 範例:

        • 在一般或預設案例中修改應用程式數據檔或資料庫,例如已驗證的 SQL 插入

        • 常見或預設案例中的 Proxy 快取中毒

        • 在常見或預設案例中,未經使用者同意修改 OS 或應用程式設定

  • 安全性功能:中斷或略過所提供的任何安全性功能。
    請注意,安全性功能中的弱點預設會評為「重要」,但評等可能會根據 SDL Bug 列中記載的其他考慮進行調整。

    • 範例:

      • 停用或略過防火牆,而不通知使用者或取得同意

      • 重新設定防火牆並允許連線到其他進程

中等
  • 拒絕服務

    • 匿名

      • 在預設/一般安裝中,沒有放大的暫時 DoS。

        • 範例:

          • 建立工作階段並保持開啟,以取用伺服器上所有可用資源(會話、記憶體)的多個遠端用戶端

    • 已驗證

      • 常設 DoS

        • 範例:

          • 登入 Exchange 使用者可以傳送特定的郵件訊息並當機 Exchange Server,而當機 是因為寫入 AV、可惡意探索的讀取 AV 或整數溢位所造成

      • 在預設/一般安裝中使用放大的暫時 DoS

        • 範例:

          • 一般 SQL Server 使用者會執行某些產品所安裝的預存程式,並耗用 100% 的 CPU 幾分鐘

  • 資訊洩漏(目標)

    • 攻擊者可以從特定位置輕鬆讀取系統信息的情況,包括系統資訊,其並非預定/設計為公開。

      • 範例:

        • 匿名數據的針對性洩漏

        • 檔案存在的目標公開

        • 檔案版本號碼的目標洩漏

  • 詐騙

    • 實體(計算機、伺服器、用戶、進程)能夠偽裝成無法特別選取的不同隨機實體。

      • 範例:

        • 用戶端會正確地向伺服器進行驗證,但伺服器會從另一個隨機使用者手中交回會話,而該使用者恰好同時連線到伺服器

  • 竄改

    • 在特定案例中永久或持續修改任何用戶或系統數據

      • 範例:

        • 在特定案例中修改應用程式數據檔或資料庫

        • 特定案例中的 Proxy 快取中毒

        • 在特定案例中修改 OS/應用程式設定,而不需使用者同意

    • 在重新啟動 OS/application-/session 之後不會保存的常見或預設案例中暫時修改數據

  • 安全性保證:

    • 安全性保證是安全性功能或客戶預期提供安全性保護的另一個產品功能/功能。 通訊已訊息(明確或隱含)客戶可以依賴功能的完整性,這就是其安全性保證。 安全性公告將針對安全性保證中損害客戶依賴或信任的缺點而發佈。

      • 範例:

        • 除非已透過刻意授權的方法提供管理員密碼/認證,否則以一般「使用者」許可權執行的進程無法取得「系統管理員」許可權。

        • 除非使用者明確變更預設安全性設定,否則在 Internet Explorer 中執行的以因特網為基礎的 JavaScript 無法控制任何主機操作系統。

  • 資訊洩漏(未設定目標)

    • 執行階段資訊

      • 範例:

        • 隨機堆積記憶體流失

  • 竄改

    • 在重新啟動 OS/應用程式之後不會儲存的特定案例中暫時修改數據

用戶端

廣泛的使用者動作定義為:

  • 「用戶互動」只能在用戶端驅動案例中發生。

  • 一般、簡單的用戶動作,例如預覽郵件、檢視本機資料夾或檔案共用,不是廣泛的用戶互動。

  • 「廣泛」包括使用者手動流覽至特定網站(例如輸入URL),或按兩下 [是/否] 決策。

  • 「不廣泛」包含使用者按兩下電子郵件連結。

  • NEAT 限定符(僅適用於警告)。 從明顯看出,UX 是:

    • Necessary (使用者真的需要出示決定嗎?

    • Explained (UX 是否提供使用者做出此決定所需的所有資訊?

    • 運作的 (使用者是否可以採取一組步驟,在良性和惡意案例中做出良好的決策?

    • Tested(是否已由多人檢閱警告,以確保人們瞭解如何回應警告?

  • 釐清: 請注意,廣泛用戶互動的效果不是嚴重性減少一個層級,而是在錯誤列中出現大量用戶互動片語的某些情況下,嚴重性也會減少。 其意圖是協助客戶區分快速傳播和可蠕蟲攻擊與那些攻擊,因為用戶互動,因此攻擊速度會變慢。 由於用戶互動,此 Bug 列不允許您降低 [重要] 下方的許可權提升。

客戶

重大

用戶端摘要:

  • 網路蠕蟲或 不可避免的 常見流覽/使用案例,其中用戶端是「擁有」 ,而不會 有警告或提示。

  • 提高許可權(遠端):執行任意程式代碼 取得比預期更高的許可權的能力

    • 範例:

      • 未經授權的文件系統存取:寫入文件系統

      • 執行任意程序代碼而不需要大量用戶動作

      • 所有寫入 AV、可惡意探索的讀取 AV、堆疊溢位或遠端可呼叫程式代碼中的整數溢位 (不含 廣泛的使用者動作)

重要

用戶端摘要:

  • 常見的流覽/使用案例,其中用戶端具有警告或提示,或透過大量動作而不提示。 請注意,這不會區分提示的品質/可用性,以及使用者可能點擊提示的可能性,但只是某些窗體的提示存在。

  • 提高權限 (遠端)

    • 使用廣泛的用戶動作執行任意程序代碼

      • 所有寫入AV、可惡意探索讀取的AV,或遠端可呼叫程式代碼中的整數溢位(具有廣泛的用戶動作)

  • 提高權限 (本機)

    • 本機低許可權使用者可以將自己提升為其他使用者、系統管理員或本機系統。

      • 所有寫入AV、可惡意探索讀取的AV,或本機可呼叫程式代碼中的整數溢位

  • 資訊洩漏(目標)

    • 攻擊者可以在系統上找到和讀取信息的情況,包括未打算或設計為公開的系統資訊。

    • 範例:

      • 未經授權的文件系統存取:從文件系統讀取

      • 洩漏 PII

        • 洩漏 PII (電子郵件地址、電話號碼)

      • 電話 首頁案例

  • 拒絕服務

    • 系統損毀 DoS 需要重新安裝系統和/或元件。

      • 範例:

        • 瀏覽網頁會導致登錄損毀,使計算機無法啟動

    • 由 DoS 驅動

      • 準則:

        • 未驗證的系統 DoS

        • 預設曝光

        • 沒有預設安全性功能或界限風險降低功能(防火牆)

        • 沒有用戶互動

        • 沒有稽核和懲罰線索

        • 範例:

          • 移動 藍牙 系統 DoS 或行動電話中的簡訊

  • 詐騙

    • 攻擊者能夠呈現不同於但視覺上與用戶必須依賴的UI不同的UI,以在預設/常見案例做出有效的信任決策。 每當使用者採取動作時,就會定義信任決策,認為特定實體正在呈現某些資訊,可能是系統或某些特定本機或遠端來源。

      • 範例:

        • 在瀏覽器的網址列中顯示與瀏覽器實際在預設/常見案例中顯示的 網站URL不同的URL

        • 在瀏覽器的網址列上顯示視窗,其看起來與網址列相同,但在預設/常見案例中 顯示虛假數據

        • 在「您要執行此程式嗎?」中顯示不同的檔案名? 對話框比實際載入預設/常見案例中 實際載入的檔案對話框

        • 顯示「假」登入提示以收集用戶或帳戶認證

  • 竄改

    • 永久修改任何用戶數據或數據,以在重新啟動 OS/應用程式之後保存的常見或預設案例中做出信任決策。

      • 範例:

        • 網頁瀏覽器快取有害

        • 未經使用者同意修改重要的 OS/應用程式設定

        • 修改用戶數據

  • 安全性功能:中斷或略過提供的任何安全性功能

    • 範例:

      • 停用或略過防火牆,並通知使用者或取得同意

      • 重新設定防火牆並允許連線到其他進程

      • 使用弱式加密或將金鑰儲存在純文字中

      • AccessCheck 略過

      • Bitlocker 略過;例如,不加密磁碟驅動器的一部分

      • Syskey 略過,用來譯碼沒有密碼的 syskey

中等
  • 拒絕服務

    • 永久 DoS 需要冷重新啟動或造成藍色畫面/錯誤檢查。

      • 範例:

        • 開啟 Word 檔會導致電腦發生藍色畫面/錯誤檢查。

  • 資訊洩漏(目標)

    • 攻擊者可以從已知位置讀取系統上的資訊,包括未預期或設計為公開的系統資訊。

      • 範例:

        • 檔案的目標存在

        • 目標檔案版本號碼

  • 詐騙

    • 攻擊者能夠呈現與用戶習慣在特定案例信任的UI不同但以視覺方式呈現的UI。 「習慣信任」定義為使用者通常熟悉的操作系統或應用程式互動,但通常不會視為「信任決策」。

      • 範例:

        • 網頁瀏覽器快取有害

        • 未經使用者同意修改重要的 OS/應用程式設定

        • 修改用戶數據

  • 拒絕服務

    • 暫時 DoS 需要重新啟動應用程式。

      • 範例:

        • 開啟 HTML 檔會導致 Internet Explorer 當機

  • 詐騙

    • 攻擊者能夠呈現與較大攻擊案例中單一部分UI不同但視覺上相同的UI

      • 範例:

        • 用戶必須移至「惡意」網站,按兩下詐騙對話框中的按鈕,然後根據不同的瀏覽器錯誤容易受到弱點的影響

  • 竄改

    • 重新啟動 OS/應用程式之後,不會保存之任何資料的暫時修改。

    • 資訊洩漏(未設定目標)

      • 範例:

        • 隨機堆積記憶體流失

詞彙的定義

認證
任何必須包含網路驗證的攻擊。 這表示某些類型的記錄必須能夠發生,才能識別攻擊者。

匿名
任何不需要驗證才能完成的攻擊。

客戶
在單一計算機上本機執行的軟體,或透過網路存取伺服器所提供的共用資源的軟體。

default/common
任何現成可用的功能,或達到超過10%的使用者。

場景
任何需要特殊自定義或使用案例才能啟用的功能,達到不到 10% 的使用者。

伺服器
設定為執行軟體的計算機,會等候並滿足在其他電腦上執行的客戶端進程要求。

重大
一種安全性弱點,會評為具有最高潛在損害。

重要
一種安全性弱點,會評為具有重大損害潛力,但小於 [重大]。


安全性弱點,會評為有中度損害潛力,但小於重要。


一種安全性弱點,會評為損害的可能性很低。

目標資訊洩漏
能夠刻意選取 (目標) 所需的資訊。

暫存 DoS
暫時 DoS 是符合下列準則的情況:

  • 由於攻擊,目標無法執行正常作業。

  • 攻擊的回應大致與攻擊的大小相同。

  • 目標會在攻擊完成後不久回到一般功能層級。 應該針對每個產品評估「短期」的確切定義。

例如,當攻擊者持續透過網路傳送封包串流時,伺服器沒有回應,而伺服器會在封包數據流停止後的幾秒鐘內恢復正常。

使用放大的暫存 DoS

具有放大的暫時 DoS 是符合下列準則的情況:

  • 由於攻擊,目標無法執行正常作業。

  • 攻擊的回應超出攻擊的大小。

  • 攻擊完成後,目標會回到一般功能層級,但需要一些時間(也許幾分鐘)。

例如,如果您可以傳送惡意的10位元組封包,並在網路上造成2048k回應,您會藉由放大我們的攻擊工作來處理頻寬。

永久 DoS

永久 DoS 需要系統管理員啟動、重新啟動或重新安裝系統的所有或部分。 自動重新啟動系統的任何弱點也是永久的 DoS。

拒絕服務 (伺服器) 矩陣

已驗證與匿名攻擊 默認/一般與案例 暫存 DoS 與永久 評分
已驗證 默認/一般 持續性 中等
已驗證 默認/一般 使用放大的暫時 DoS 中等
已驗證 默認/一般 暫存 DoS
已驗證 案例 持續性 中等
已驗證 案例 使用放大的暫時 DoS
已驗證 案例 暫存 DoS
匿名 默認/一般 持續性 重要
匿名 默認/一般 使用放大的暫時 DoS 重要
匿名 默認/一般 暫存 DoS 中等
匿名 案例 持續性 重要
匿名 案例 使用放大的暫時 DoS 重要
匿名 案例 暫存 DoS

內容免責聲明

本文件並非 Microsoft SDL 做法的詳盡參考。 其他保證工作可由產品小組自行執行(但不一定記載)。 因此,此範例不應視為 Microsoft 遵循的確切程式來保護所有產品。

本檔提供「依目前」提供。 本文件中提供的資訊和檢視,包括URL 及其他網際網路網站參考資料,可能會依情況改變,恕不另行通知。 您必須承擔使用本文件的風險。

本檔不會為您提供任何 Microsoft 產品中任何智慧財產權的任何法律權利。 您可以複製和使用本文件,以參考為目的供內部使用。

© 2018 Microsoft Corporation. 著作權所有,並保留一切權利。

授權於Creative Commons 屬性-NonCommercial-ShareAlike 3.0 未移植