Office 2010帶給我們的五個安全教訓
原創【51CTO.com快譯自12月7日外電頭條】雖然仍然是測試版,但Office 2010不斷的給我驚喜。除了用戶界面更加適合于現實世界中的數據之外,微軟在安全性上也做出了另一個重大改進。最新版的Office結構復雜,功能豐富,也成為了惡意軟件和其他安全隱患的目標。由于巨大和多樣化的用戶群,微軟必須把安全考慮放在首位,因此即使是犧牲一些現有功能來換取安全性也無可厚非。今年9月份曾經有一個Office的0day,造成了一股掛馬風。
然而,Office 2010的開發團隊并沒有這樣做,他們給出了一套新的安全戰略,通過分析過去的漏洞來了解漏洞是如何被利用的,還要如何做才能防止今后出現類似的情況。Office 2010基于五個基本準則建立了新的多層次的安全模型,這是任何一個開發者都應該記住的:
1.在執行之前驗證所有用戶輸入
任何一個好的程序員都知道輸入驗證是關鍵的步驟之一,未經驗證的文本框可能會導致緩沖區溢出、代碼注入攻擊和其他軟件缺陷。但往往程序員只考慮到驗證表單字段、文本輸入框和其他用戶界面元素,而忽略了對文檔進行驗證。
Office 2010通過使用文檔模式庫來預先驗證文檔,避免了不必要的安全問題。新的Office將能夠識別特定的文件類型,在開始解釋代碼之前實施積極的安全措施,比如在發現要打開的文檔符合庫中已知的宏病毒的特點時會提早禁用宏功能。51CTO.com編者按:宏病毒、CIH病毒、蠕蟲病毒和木馬病毒四大類曾經是計算機用戶的噩夢,但到目前為止,除了CIH之外,另外三個依然在威脅網民的計算機安全。
2.查找隨機缺陷和不典型使用案例
精心設計的Use cases在軟件測試時至關重要,但即使是最好的質量工程師也不能想到一切,錯誤可能來自意想不到的地方,有時一些字節也會觸發這些bug。
Office團隊使用一種叫做“模糊文件(file fuzzing)”的技術來查找意外的使用情況。例如通過交換參數和改變字段內容把文件模糊化處理,或者把隨機垃圾數據引入文件中。
理想情況下Office應用應該能夠順利處理文件。但在最壞的情況打開一個模糊文件會導致應用崩潰,這時可能會檢測出安全漏洞。據微軟說Office 2010處理模糊文件的能力超過Office 2007十倍。
3.不要相信第三方庫
和其他應用一樣,現實中的Office文檔不僅僅包含簡單的ASCII數據,它們可能還包含著圖片、音頻、視頻等等從其他應用嵌入的數據。經過多年對Office 2007的測試,微軟的工程師得出了出人意料的結論:他們發現嚴重的安全漏洞大多不是Office代碼本身的錯,而是那些用來渲染JPEG、GIF和其他圖形的核心第三方代碼庫出現了問題。
因此在Office 2010中微軟轉向了自己的圖像處理庫Windows Imaging Component。對于其他應用的開發者,這個教訓再明白不過:絕不要認為廣泛使用的第三方類庫是完美無缺的。
4.不要把安全措施推給用戶
非常多的桌面應用喜歡使用對話框式的安全模型,在碰到問題時詢問用戶:“你的操作可能帶來安全風險,是否要繼續進行(Y/N)?”這種做法不僅懶惰而且危險,因為在缺乏任何有意義的指導下,普通用戶都會選擇“Yes”,即使是更詳細的警告信息也不會有什么幫助。
Office 2010采取了積極主動的做法。文件驗證過程會在后臺進行,而不是繼續使用對話框與用戶對抗,在用戶交互之前先進行基礎并且理性的后臺決策,增強了漏洞管理。
5.選擇降一級的用戶體驗,而不是全盤否定
從前的Office遇到安全風險時用戶真正只有兩個選擇:無視威脅照常打開文檔;或者再也不打開文檔,這兩個都不是理想的選擇。
Office 2010試圖通過為用戶提供一種中立的立場。例如,如果Word 2010碰到文檔中包含有風險的宏,它會在打開文件時停用宏。用戶仍然會得到一個警告消息,但無論如何文檔被打開了,這時文本是可見的,但想要使用宏需要額外的確認步驟。
這種“一半滿足用戶”的哲學是新Office的安全模型中最重要的理念之一,在用戶和軟件的拉鋸戰之間建立一個折中的局面。通過新的漸進的多層次安全模式,Office 2010試著與用戶建立起安全性的伙伴關系,這個教訓任何應用開發者都應該牢記在心。——51CTO.com編者按:在文末順便再多說一句,雖然大部分人都認為Office沒有OpenOffice之類的免費產品安全,但是法國軍方卻認為OpenOffice不比Office更安全,而持這種意見的人還有很多。
原文:Five security lessons learned from Office 2010 作者:Neil McAllister
【51CTO.COM 獨家翻譯,轉載請注明出處及作者!】
【編輯推薦】