威脅建模:架構、攻擊場景與防護措施

Sytance · 更新於

威脅建模是一種從產品架構出發,識別可能的攻擊並確定防護措施的分析方法。它需要説明攻擊如何發生、哪些數據或功能會受影響,以及如何驗證所選措施是否有效。

產品版本與部署場景

威脅模型針對具體的產品版本和部署方式。接入互聯網的網關,與僅在隔離維護網絡中使用的同一網關,可能具有不同的攻擊入口和運行條件。

邀請熟悉架構、研發、產品使用和安全的人員參與。會議前收集足夠資料,以便從頭到尾説明一次正常業務操作。

  • 產品版本、支持的部署方式和預期用戶。
  • 系統架構、外部接口和交換的數據。
  • 各類用戶、服務和本地進程具有的權限。
  • 需要保護的敏感數據、憑據和產品功能。
  • 已經實施的控制措施,以及尚待確認的假設。

數據流與信任邊界

數據流圖(DFD)表示外部實體、處理過程、數據存儲及數據流向。信任邊界表示信任程度或權限發生變化的位置,例如瀏覽器與接口之間、不同系統賬户之間,或設備與遠程服務之間。

為每條數據流註明方向、數據內容和保護方式。如果多個雲端服務使用不同身份和權限,只畫一個“雲端”方框會掩蓋關鍵差異。影響分析的差異應在圖中展開。

以工業網關為例,先畫出操作員瀏覽器、網關管理接口、本地配置存儲、本地控制器、遙測服務和更新服務。管理連接和遙測連接使用 TLS;更新包簽名驗證先列為擬採用的措施,待確認實現後再調整狀態。

從 STRIDE 分類到攻擊場景

STRIDE 將威脅分為身份假冒、數據篡改、抵賴、信息泄露、拒絕服務和權限提升六類,幫助團隊逐項檢查可能的攻擊。應結合具體處理過程和數據流分析,分類名稱本身不能説明攻擊如何發生。

例如:只讀用戶直接向管理接口發送修改配置的請求。如果接口只檢查是否登入,沒有檢查操作權限,該用戶就可能改寫網關配置。這個場景明確了攻擊者、入口、缺失的控制措施及可能造成的影響。

每個場景應關聯到架構圖中的具體接口、處理過程或數據流。攻擊條件和處理措施不同的場景需要分別分析。對於尚未確認的條件,例如本地控制器接口是否啓用認證,可以先列為待確認事項。

風險優先級與防護措施

風險優先級取決於攻擊所需的訪問條件和能力、成功的可能性,以及對產品的影響。採用共同認可的風險評估方法,有助於保持這些判斷一致。風險分數背後的分析依據,便於其他人員複核。

選擇能夠落實到研發任務的措施。對於越權修改配置場景,可以要求管理接口在每次寫操作時檢查調用者權限,並明確責任人、目標版本和驗證方法。

TLS 保護傳輸連接,但不能證明已登入用戶具有修改配置的權限。每項措施都應對應它要阻止的攻擊步驟。決定接受剩餘風險時,應保留理由和有權作出該決定的人員信息。

措施驗證與模型更新

擬採用的措施與已經驗證的措施應使用不同狀態。控制措施實現後,應記錄具體修改及相應的驗證結果。例如,以只讀身份發送寫請求,同時確認接口拒絕請求、配置未發生變化。

接口、權限、組件、部署方式或更新機制變化時,重新檢查模型。新漏洞信息也可能推翻此前的假設。保留歷史版本,才能説明某項決定適用於哪些產品版本。

延伸閲讀