共用方式為


WPF 安全性策略 – 安全性工程

高可信度電腦運算是一項 Microsoft 開發案,用於確保生產安全的程式碼。 Trustworthy Computing 計劃的關鍵元素是 Microsoft 安全性開發生命週期 (SDL)。 SDL 是一種工程實務,可與標準工程程式搭配使用,以利傳遞安全程序代碼。 SDL 包含十個階段,這些階段結合了最佳做法與正規化、可測量性和其他結構,包括:

  • 安全性設計分析

  • 以工具為基礎的品質檢查

  • 滲透測試

  • 最終安全性檢閱

  • 產品發行後安全性管理

WPF 特性

WPF 工程小組同時套用並擴充 SDL,其組合包括下列主要層面:

威脅模型

安全性分析和編輯工具

測試技術

重要程式碼管理

威脅模型

威脅模型化是 SDL 的核心元件,可用來分析系統以判斷潛在的安全性弱點。 一旦識別出漏洞,威脅模型也可確保適當的安全防護已就位。

高階的威脅模型牽涉到下列重要步驟,藉由使用雜貨店做為範例:

  1. 識別資產。 雜貨店的資產可能包含員工、保險箱、收銀機和庫存。

  2. 列舉進入點。 雜貨店的進入點可能包含前門和後門、窗戶、卸貨平台和空調設備。

  3. 使用進入點調查針對資產的攻擊。 一次可能的攻擊或許會經由「空調」進入點,以雜貨店的「保險箱」資產為攻擊目標;空調設備可能被拆下,讓保險箱能從中被拖出來,搬到商店外。

威脅模型化會在 WPF 中套用,並包含下列專案:

  • XAML 剖析器如何讀取檔案、將文字對應至對應的物件模型類別,以及建立實際的程式代碼。

  • 如何建立視窗控制代碼 (hWnd)、傳送訊息,以及用來呈現視窗的內容。

  • 資料繫結如何取得資源,並與系統互動。

在開發過程中,這些威脅模型對於識別安全性設計需求和威脅的安全防護相當重要。

來源分析和編輯工具

除了 SDL 的手動安全性程式代碼檢閱元素之外,WPF 小組還使用數個工具進行來源分析和相關聯的編輯,以減少安全性弱點。 使用廣泛的來源工具,包含下列項目:

  • FXCop:尋找在 Managed 程式碼中的常見安全性問題,從程式碼存取安全性之使用狀況的繼承規則,到如何安全地相互操作 Unmanaged 程式碼。 請參閱 FXCop

  • Prefix/Prefast:找出 Unmanaged 程式碼中的安全性漏洞及常見安全性問題,例如緩衝區滿溢、格式字串問題和錯誤檢查。

  • 禁止的應用程式開發介面:搜尋原始程式碼,來識別已知會造成安全性問題之函式的意外使用,例如 strcpy。 識別之後,這些函式會取代為更安全的替代方案。

測試技術

WPF 使用各種安全性測試技術,包括:

  • Whitebox 測試:測試人員檢視原始程式碼,然後建置惡意探索測試。

  • 黑箱測試:測試人員藉由檢查應用程式開發介面和功能,試著找出安全性漏洞,然後嘗試攻擊產品。

  • 從其他產品減輕安全性問題:如果相關,則測試來自相關產品的安全性問題。 例如,已識別 Internet Explorer 大約六十個安全性問題的適當變體,並嘗試其 WPF 適用性。

  • 透過檔案模糊測試進行以工具為基礎的滲透測試:檔案模糊測試是透過各種輸入來惡意探索檔案讀取器的輸入範圍。 WPF 中有一個使用這項技術的範例是檢查影像譯碼中的失敗。

重要程式碼管理

針對 XAML 瀏覽器應用程式 (XBAP),WPF 會使用 .NET Framework 支援來建立安全性沙盒,以標記和追蹤提高許可權的安全性關鍵程式代碼(請參閱 WPF 安全性策略 - 平臺安全性的安全性關鍵方法)。 假設在安全性關鍵程式碼上的安全性需求很高,這類程式碼會接收額外層級的來源管理控制和安全性稽核。 大約 5% 到 10% 的 WPF 是由安全性關鍵程式代碼所組成,由專用檢閱小組檢閱。 原始程式碼和簽入程序是由追蹤安全性關鍵程式碼來管理,以及對應每個重要的實體 (也就是一個包含關鍵程式碼的方法) 至其登出狀態。 登出狀態包含一或多個檢閱者的名稱。 WPF 的每個每日組建都會比較重要程式碼與先前組建中的程式代碼,以檢查未經核准的變更。 如果工程師修改未經檢閱小組核准的關鍵程式碼,它會被識別並被立即修正。 此程式可讓您對 WPF 沙箱程式代碼進行特別高水平的審查和維護。

警告

XBAP 需要舊版瀏覽器才能運作,例如 Internet Explorer 和 Firefox。 Windows 10 和 Windows 11 通常不支援這些舊版瀏覽器版本。 由於安全性風險,新式瀏覽器不再支援 XBAP 應用程式所需的技術。 不再支援啟用 XBAP 的外掛程式。

另請參閱