SDL 如何協助改善 Office 2010 的安全性
SDL 如何協助改善 Office 2010 的安全性
大家好,我是 Microsoft 安全性工程中心的安全性程式技術經理 Didier。我們主要的工作就是協助像是 Office 之類的小組,能達到比安全性開發生命週期 (Security Development Lifecycle,SDL) 所應具備之基本需求更好的境界。在 Office 2010 開發期間,我就曾與 Office TWC 小組成員密切地合作。Microsoft SDL 是專注於軟體開發的安全性品管程序。自 2004 年開始,整個公司即主動開始倡導 SDL,並強制施行此一政策,同時在針對 Microsoft 軟體及文化灌輸安全性與隱私權的精神方面,扮演了非常重要的角色。此一結合不僅是全面性的而且還實際地運用在工作上中,SDL 之目的在於降低軟體漏洞的數量及嚴重性。SDL 在開發程序的所有階段,皆施行了安全性與隱私權原則。
我想要於此特別說明在 Office 2010 開發期間,為維護客戶安全所成就的一些事項。
SDL 中有超過 50 項運用在開發程序各個階段的需求:訓練、需求、設計、實作、驗證、發行及意見 (發行後)。SDL 的需求與建議並非一成不變,它會根據新出現的威脅以及支援基礎結構、工具與程序的改善情況,而定期更動。下圖顯示 SDL 程序中的各個階段:
用以支援 SDL 程序的部分工具與技術都已發行在外。您可以從 Microsoft SDL 工具存放庫 (https://www.microsoft.com/security/sdl/getstarted/tools.aspx (可能為英文網頁)) 下載這些工具以及其他工具。
除了通過需符合 SDL 程序所需的「最終安全性檢查」之外,Office 2010 小組也需要符合其他新出現的 SDL 需求,例如整合改良後的整數溢位庫、利用強化的 GS 標幟加以編譯,以及執行遠遠超出 SDL 需求的一些模糊處理反覆運算。這些都是 Office 2010 所成就的其他 SDL 需求中影響層面最廣的部分。
訓練階段
Office TWC 小組在減少整數溢位、檔案模糊處理及 Web 安全性 (主要是跨網站指令碼 (XSS) 與跨網站要求偽造 (XSRF)) 方面,開發了自訂訓練。這些都是整個 Office 部門的強制訓練項目。除此之外,還設計並發表了更加專門的訓練,讓新取得的產品 FAST 能跟上 SDL 所需之各式工具與活動的速度。
需求階段
Office TWC 與 MSEC 努力重新調整安全性錯誤列及安全性錯誤分類程序,以納入更新的攻擊。有些部分的程序運用到 Office 及 TWC 部門的專長,檢查安全性錯誤。
設計階段
在設計階段期間,有幾個工作項目可加強 Office 文件的可靠度。這些工作項目藉由新增信任的文件 (可能為英文網頁)、檔案封鎖改良 (可讓使用者選擇要開啟哪些檔案或儲存在其網路上)、Office 檔案驗證及受保護的檢視,改進了信任中心。這些改進都已完成,所以客戶可以信任 Office 文件,而無須害怕受到攻擊。此外,另一項目標是在提供這項額外安全性的同時,避免出現疲勞轟炸式的不必要提示,而降低這些功能的安全性價值。若要進一步了解這些功能,請參閱 https://blogs.technet.com/b/office2010/archive/2009/07/21/office-2010-application-security.aspx (可能為英文網頁)。
Office TWC 在整個部門執行了大規模的威脅模型練習,建立並檢閱了超過 500 個威脅模型。透過威脅模型活動,該小組找出並修正了超過 1000 個潛在的安全性問題。
另一個改進的領域是 Office 2010 中的密碼編譯支援。這些改進包括支援 XAdES 數位簽章;讓 Office 用戶端應用程式能夠使用作業系統 (僅限 Windows Vista 以上的版本) 所提供的任何密碼編譯演算法,快速地進行密碼處理;以及可供企業啟用密碼加密的網域密碼原則 (可能為英文網頁) 的新功能。
實作階段
Office TWC 實作了自動化解決方案,可改進 Office 自動化程式碼檢閱 (Office Automated Code Review, OACR) 結果的報告方式,讓 MSEC 及 Office TWC 能夠在驗證階段之前,或是執行任何滲透測試之前,找出有程式碼品質問題的 Office 產品小組。如此可讓各小組將其努力專注於更有價值的領域。
依據針對舊版 Office 中送入報告漏洞所進行的分析,Office 2010 中開發並使用了改良版的 SafeInt (可能為英文網頁)
改良版的 GS (Visual Studio 2010 中提供的增強型 GS) 已於 Office 2010 開發週期間導入,並且以 Office 2010 的 3 個大型元件進行過測試,並沒有發現重大的迴歸問題,而且此功能將會整合在下一版的 Office 中。Office 2010 是第一次啟用「資料執行防止」功能,若您在 Windows 7 上使用 Office 2010,它將會使用 SEHOP,以避免使用結構化例外處理常式 (https://blogs.technet.com/b/srd/archive/2009/02/02/preventing-the-exploitation-of-seh-overwrites-with-sehop.aspx (可能為英文網頁))。
SharePoint 2010 中已加入其他緩解措施,以強化多位承租人代管及減少跨網站指令碼情況。最重要的安全性改善是混合使用程式碼存取安全性及自訂開發沙箱的沙箱化 SharePoint 解決方案。跨網站指令碼的另一項減緩措施是使用瀏覽器標頭以強制可能不安全的內容下載,然後我們再提出撰寫指令碼所需的權限。
驗證階段
從開發週期一開始,就執行分散式模糊處理,並且在所使用的模糊器上不斷調整。如此持續不斷的努力是 Office 為了增進 Office 剖析器安全性所投注的最大心力之一。現在分散式模糊處理架構的使用已擴展至整個公司,並將成為下一版 SDL 的主要元素之一。Office 2010 的模糊處理反覆運算數目已超過 8 億次重覆,橫跨 400 種以上的檔案格式,進而修正了超過 1800 項錯誤。除了檔案格式模糊處理之外,分散式模糊處理架構也廣泛運用在模糊處理 Office 2010 隨附的所有 ActiveX 控制項。
在 Office 2010 期間設立了自動化基礎結構,可在建置程序期間執行 SDL 所需的大部分驗證工具 (如 BinScope)。這讓 Office 小組能夠更常執行那些工具,以及時找出並更快解決問題。
內部及外部滲透測試都已於 Office 2010 開發週期間進行過。此測試的目標是在設計階段期間找出高風險的功能,並涵蓋用戶端及伺服器 SKU 中的數項產品。
希望結合所有投注之心力之後,能夠讓 Office 2010 更形完善,同時讓客戶在收到非信任來源的文件時,能夠更加安心。
除了這篇文章之外,Microsoft 在二個月前也發行了一份白皮書,說明 SDL 如何協助改善 2007 Microsoft Office System。您可以在 https://www.microsoft.com/downloads/en/details.aspx?FamilyID=c8413407-051f-4a5e-a96f-7cad477c49f2&displaylang=en (可能為英文網頁) 找到此份白皮書。
謝謝!
Didier Vandenbroeck
首席安全性程式技術經理
Microsoft 安全性工程中心
這是翻譯後的部落格文章。英文原文請參閱 How the SDL helped improve Security in Office 2010
!-->