共用方式為


SDL 安全性 Bug 列 (範例)

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

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

伺服器

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

當用戶互動涉及利用過程時,伺服器列通常不適用。 如果一個嚴重漏洞僅存在於伺服器產品上,且被利用的方式需要使用者互動並導致伺服器被控制,根據在用戶端嚴重性樞紐開始時所提出的 NEAT/data 廣泛用戶互動定義,該漏洞的嚴重性可能會從嚴重降為重要。

伺服器

關鍵

伺服器摘要:涉及網路蠕蟲或伺服器被「不可避免地」「控制」的案例。

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

    • 遠端匿名使用者

      • 範例:

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

        • 執行任意程序代碼

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

    • 遠端匿名可呼叫程式碼中的所有寫入存取違規、具有惡意利用可能性的讀取存取違規,或整數溢位

重要

伺服器摘要:存在可協助防止重大案例的緩解措施的非預設重大情境或案例。

  • 拒絕服務攻擊:必須是透過發送少量數據就能「容易利用」或快速引發。

    • 匿名

      • 持續性 DoS

        • 範例:

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

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

      • 暫時性放大效應的 DoS

        • 範例:

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

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

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

    • 已驗證

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

        • 範例:

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

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

    • 遠端驗證的使用者

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

      • 範例:

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

        • 執行任意程序代碼

    • 所有寫入 AV、可被利用的讀取 AV 或程式代碼中的整數溢位,這些程式代碼可被遠端或本機驗證的非系統管理員使用者存取(系統管理員的情境雖然依定義沒有安全性考慮,但仍然是可靠性問題)。

  • 資訊披露(針對性)

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

      • 範例:

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

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

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

  • 詐騙

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

      • 範例:

        • 網頁伺服器不當使用用戶端憑證驗證(SSL),使攻擊者能夠冒充任何他/她選擇的使用者身份。

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

  • 竄改

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

    • 對任何在一般或預設情境中使用的使用者或系統數據進行永久或持續修改

      • 範例:

        • 在一般或預設情境中,修改應用程式數據檔案或資料庫,例如經認證的 SQL 注入攻擊。

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

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

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

    • 範例:

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

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

中等
  • 拒絕服務

    • 匿名

      • 在預設/一般安裝中,暫時性的拒絕服務攻擊,不涉及流量放大。

        • 範例:

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

    • 已驗證

      • 持續性 DoS

        • 範例:

          • 登入的 Exchange 使用者可以傳送特定的郵件訊息,導致 Exchange Server 當機,但導致當機的原因 是因為寫入 AV、可被利用的讀取 AV 或整數溢位問題。

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

        • 範例:

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

  • 資訊揭露(針對性)

    • 攻擊者能輕易從特定位置讀取系統訊息,包括系統資訊,這些並非原本要公開或設計成可被公開的。

      • 範例:

        • 匿名數據的針對性洩漏

        • 檔案存在的定向公開

        • 針對性揭露檔案版本號碼

  • 詐騙

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

      • 範例:

        • 客戶端正確地驗證到伺服器,但伺服器卻交還來自另一個同時連接到伺服器的隨機使用者的會話。

  • 竄改

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

      • 範例:

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

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

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

    • 在一般或預設情況中暫時修改數據,這些修改在重新啟動 OS/應用程式/會話後將不會保存。

  • 安全性保證:

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

      • 範例:

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

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

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

    • 執行階段資訊

      • 範例:

        • 隨機堆記憶體洩漏

  • 竄改

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

客戶

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

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

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

  • 「廣泛」包括使用者手動瀏覽至特定網站(例如輸入一個URL),或通過點擊來完成是/否決策。

  • 「範圍不廣」包含使用者按一下電子郵件中的連結。

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

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

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

    • 採取行動的(使用者是否可以採取一組步驟,在良性和惡意情況下做出正確的決策?)

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

  • 釐清: 請注意,廣泛用戶互動的效果不僅僅是嚴重性減少一個層級,而是在某些情況下(當錯誤列中出現「廣泛用戶互動」這個片語時),嚴重性曾經且依然會減少。 其意圖是協助客戶區分快速傳播和會蠕蟲化的攻擊與由於需要用戶互動而使攻擊速度減緩的那些攻擊。 由於用戶互動,這個錯誤列不允許您將權限提升等級降至「重要」以下。

客戶

重大

用戶端摘要:

  • 網路蠕蟲或不可避免的常見瀏覽/使用案例,其中用戶端被控制,沒有任何警告或提示。

  • 提升權限(遠端):具有執行任意程式碼獲得超出預期的權限的能力

    • 範例:

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

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

      • 所有寫入 AV、可被利用的讀取 AV、堆疊溢出或遠端可呼叫程式碼中的整數溢出 (不需 大量的使用者操作)

重要

用戶端摘要:

  • 常見的流覽/使用情境中,用戶端可能受到警告或提示的控制,或通過無需提示的大量操作而被控制。 請注意,這不是在區分提示的品質或可用性,或使用者點擊提示的可能性,而只是確認有某種形式的提示存在。

  • 提高權限 (遠端)

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

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

  • 提高權限 (本機)

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

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

  • 資訊揭露(針對性)

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

    • 範例:

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

      • 洩漏個人識別資訊

        • 洩漏個人識別資訊(電子郵件地址、電話號碼)

      • 撥打電話回家案例

  • 拒絕服務

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

      • 範例:

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

    • 隨機性 DoS 攻擊

      • 準則:

        • 未驗證的系統 DoS

        • 預設曝光

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

        • 沒有用戶互動

        • 沒有稽核和懲罰過程

        • 範例:

          • 驅動式攻擊的藍牙系統 DoS 或 SMS 在行動電話中

  • 詐騙

    • 攻擊者能夠呈現不同於但視覺上與用戶必須依賴的UI不同的UI,以在預設/常見案例做出有效的信任決策。 用戶在進行操作時,若相信某些資訊是由特定實體(如系統或某些特定的本地或遠程來源)提供的,這便構成了一個信任決策。

      • 範例:

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

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

        • 在「您要執行此程式嗎?」中顯示不同的檔案名? 對話框在預設或常見情況下,比實際載入檔案時的對話框更...

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

  • 竄改

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

      • 範例:

        • 網頁瀏覽器快取中毒

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

        • 修改用戶數據

  • 安全性功能:破解或繞過任何提供的安全性功能

    • 範例:

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

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

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

      • AccessCheck 略過

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

      • Syskey 繞過,一種在沒有密碼的情況下解碼 syskey 的方法

中等
  • 拒絕服務

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

      • 範例:

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

  • 資訊揭露(目標)

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

      • 範例:

        • 檔案的目標存在

        • 目標檔案版本號碼

  • 詐騙

    • 攻擊者可以呈現一個與用戶在特定情境中習慣信任的UI不同但在視覺上相同的UI。 「習慣信任」被定義為根據使用者與操作系統或應用程式的正常互動,他們通常熟悉的事物,但不會將其視為「信任決策」。

      • 範例:

        • 網頁瀏覽器快取中毒

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

        • 修改用戶數據

  • 拒絕服務

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

      • 範例:

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

  • 詐騙

    • 攻擊者能夠展示一個用戶介面,該介面在某些功能上異於但在外觀上與較大攻擊方案中的一個單一部分相同

      • 範例:

        • 用戶必須移至「惡意」網站,點擊詐騙對話框中的按鈕,然後會因不同的瀏覽器錯誤而容易遭受漏洞攻擊。

  • 竄改

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

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

      • 範例:

        • 隨機堆積記憶體洩漏

詞彙定義

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

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

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

預設/通用
任何一出廠便啟用的功能,或吸引超過10%使用者的功能。

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

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

重大
被評為具有最高潛在損害的安全性弱點。

重要
一種安全性弱點,被評估為具顯著損害潛力,但未達到「高危險」等級。

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


一個被評估為損害可能性很低的安全漏洞。

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

暫存 DoS
暫時性拒絕服務 (DoS) 是符合下列準則的情況:

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

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

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

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

具有放大作用的暫時性 DoS

臨時的放大 DoS 攻擊是指符合下列準則的情況:

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

  • 對攻擊的回應遠遠超過攻擊的規模。

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

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

永久 DoS

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

拒絕服務 (伺服器) 矩陣

已驗證與匿名攻擊 默認/一般與情境 暫存 DoS 與永久 評分
已驗證 默認/一般 持續性 中等
已驗證 默認/一般 使用放大的暫時 DoS 中等
已驗證 默認/一般 暫時性 DoS
已驗證 場景 持續性 中等
已驗證 場景 利用放大技術的暫時性服務阻斷攻擊
已驗證 情境 暫存 DoS
匿名 默認/一般 持續性 重要
匿名 默認/一般 使用放大的暫時 DoS 重要
匿名 默認/一般 暫存 DoS 中等
匿名 情境 持續性 重要
匿名 情境 使用放大技術的暫時性拒絕服務攻擊 重要
匿名 情境 暫存 DoS

內容免責聲明

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

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

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

© 2018 Microsoft Corporation. 保留所有權利

根據創用CC 姓名標示-非商業性-相同方式分享 3.0 未移植版授權