應用安全與微軟SDL-IT流程
在過去的十幾年里,隨著信息技術的高速發展和企業信息化步伐的深入,企業在利用信息技術實現其商業目標的同時也變得越來越依賴于信息技術。以銀行業為例,為了降低運營成本,提高用戶滿意度,今天的銀行普遍利用信息技術支持的電話銀行、ATM及網絡銀行系統為客戶提供個性化、差異化的服務。另外,銀行也在不斷利用信息技術收集和分析大量的與客戶有關的數據和信息,為新產品開發提供決策支持,從而達到提高盈利水平的目標。在今天的企業信息環境里,如何保證信息系統以及信息本身的安全性已然變得至關重要了。事實上,在今天具有一定規模的企業的IT環境里往往存在著少則幾百個多則上千個大大小小的業務應用(Line of Business Applications),小到支持幾個人的小規模團隊的協同應用,大到貫穿于一個企業生產、經營、管理全過程的企業級應用。如何降低信息技術給企業帶來的各種安全風險呢?無疑已成為當今所有企業面臨的新挑戰。
企業信息安全的涵蓋面非常廣,涉及到人員、流程和技術等諸多方面的因素。正因為如此,一方面信息安全越來越受到廣泛的關注,并且企業在信息安全方面的投入不斷增加,而另一方面各種給企業造成負面影響的安全事件卻層出不窮。單純的技術手段往往無法幫助企業徹底消除存在的諸多安全問題,只有建立起一整套安全策略和流程,通過合理地資源配置并且充分利用各種技術和非技術手段,企業才有可能更加有效地管理各類安全風險。
信息安全包括安全體系的構建和管理、物理和環境安全、數據中心和網絡安全、系統開發和維護安全等多方面內容。今天我們在這里討論的話題將主要圍繞安全系統開發,即企業在業務應用的開發過程中應該如何應對各種可能對應用造成影響的安全性問題。微軟看來,保證和提高應用安全性的最佳時機是在應用的開發階段。微軟信息安全部門的ACE團隊通過多年來在應用安全領域的實踐經驗,創建了一整套安全開發流程,即信息技術安全開發生命周期流程(Secure Development Lifecycle for Information Technology,縮寫為SDL-IT)。該流程包含有一系列的最佳實踐和工具,多年以來不僅被用于微軟內部業務應用的開發過程中,而且也被成功地應用在許多微軟客戶的開發項目中。
SDL-IT流程涵蓋了軟件開發生命周期的整個過程。目的是通過在軟件開發生命周期的每個階段執行必要的安全控制或任務,保證應用安全最佳實踐得以很好地應用。SDL-IT強調在業務應用的開發和部署過程中對應用安全給予充分的關注,通過預防、檢測和監控措施相結合的方式,從而降低應用安全開發和維護的總成本。
SDL-IT流程的第一步首先是對所要開發的應用進行安全風險評估。根據應用的風險和影響程度確定在整個軟件開發生命周期過程中需要采取的安全控制。在對應用進行安全風險評估時需要考慮的因素包括應用本身,應用存儲和處理的數據類型(比如是否涉及高業務影響數據或個人身份信息等)以及應用的部署環境(比如Internet、Intranet或Extranet應用)等。評估通常是以問卷形式開展的,根據開發團隊調查問卷的結果計算加權得分,確定應用的安全風險等級。微軟的安全策略明確規定了不同安全風險等級的應用所需采取的安全控制。