应用安全与微软SDL-IT流程
生活随笔
收集整理的這篇文章主要介紹了
应用安全与微软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應用)等。評估通常是以問卷形式開展的,根據開發團隊調查問卷的結果計算加權得分,確定應用的安全風險等級。微軟的安全策略明確規定了不同安全風險等級的應用所需采取的安全控制(如下圖所示)。 接下來SDL-IT流程要求為應用建立安全威脅模型。安全威脅建模的目的是幫助應用開發團隊在應用的設計階段充分了解應用中存在的各種安全威脅并指導應用開發團隊選擇適當的應對措施。應對措施的建議可能涉及技術層面,比如如何改進應用的設計或者如何在代碼編寫過程中避免某些代碼安全漏洞的出現等,也可能涉及流程和人員培訓等方面。安全威脅建模的目的是對應用可能帶來的風險進行管理。因此,在確定處理安全威脅的優先級和選擇適當的應對措施時既要考慮安全威脅可能造成影響的大小,同時也要考慮安全威脅發生的可能性(如下圖所示)。 這里將大致介紹一下微軟安全威脅建模的流程。首先是定義應用的安全目標和需要保護的信息資產。微軟看來,一個安全威脅如果不能夠被證明會對企業的信息資產造成損害,它就不構成一個真正的安全威脅。接下來需要了解應用的體系架構,包括子系統、信任邊界和數據流,并且通過對應用體系架構的進一步細化,定義應用的角色、模塊、數據和使用案例。在對應用的安全目標、體系架構、實現細節和技術應用有了清楚的了解以后,安全人員就可以幫助開發團隊找出應用中可能存在的安全風險和漏洞,并且提出應對措施建議。同時,安全團隊還會對所有的安全風險按照保密性、完整性和可用性(Confidentiality、Integrity﹠Availability,縮寫為CIA)進行歸類,以便更好地幫助開發團隊了解安全漏洞可能造成的影響。最后,針對各種安全風險,開發團隊綜合考慮各方面因素確定是否接受、避免、降低或轉移安全風險。 如果使用微軟安全威脅建模工具(Threat Analysis & Modeling Tool),開發團隊可以利用工具本身提供的報表功能生成面向應用開發以及測試人員的報告。開發團隊可以利用報告中的有針對性的安全編程最佳實踐和安全檢查清單輔助進行安全開發和測試。從而實現從安全人員到應用開發人員的應用安全推動。此外,在應用的開發過程中,微軟要求開發團隊內部成員間應該進行代碼安全審核。 在應用投產前,微軟要求由獨立的安全團隊對應用的安全性進行綜合評估。主要內容包括對應用進行代碼安全審核(即白盒安全測試)以及對應用的部署及環境進行安全審核。投產前安全審核的主要目的是檢驗在前面階段定義的安全措施是否在應用的開發過程中被正確實施。安全人員會利用代碼分析工具(Code Analysis Tool)結合對關鍵應用模塊的源代碼進行人工逐行掃描的方式,找出應用中存在的安全漏洞并提出應對措施建議。開發團隊根據嚴重性級別對安全漏洞進行修復。應用部署及環境審核的目的則是降低應用的受***面,確保不會因為部署環境特別是服務器的安全性而影響到整個應用的安全性。 在應用投產后對應用及其運行環境進行實時監控也是保障應用安全的必要措施。一方面應用本身及其部署環境可能會發生改變,使得以前的某些安全性方面的假設不再有效。另一方面,新的******手段和方法也會不斷地出現,也可能給應用帶來新的安全威脅。此外,某些行業的企業可能還會有合規性管理(比如ISO、PCI、SOX等)方面的需要,要求企業對其IT環境的技術標準遵從狀況進行監控和管理。 以上關于SDL-IT流程的描述主要是針對正在或將要開發的應用。那么如何利用SDL-IT,特別是在有限的資源和預算條件下,提高企業IT環境中已投產應用的安全性呢?微軟建議企業應遵循SEE(Secure、Enhance﹠Empower)框架: Secure:對關鍵應用進行安全設計審核和代碼安全審核 Enhance:對全部應用進行風險分析和威脅建模 Empower:幫助所有開發人員了解最常見安全漏洞的成因和修復方法 在企業越來越注重投資回報的今天,SDL-IT的成本是企業最關注的問題。另外,如何處理好應用安全性和易用性的矛盾并實現兩者之間的平衡也是企業需要面對的實際問題。SDL-IT會在一定程度和一定階段增加應用開發的成本,但是卻可以有效地幫助企業提高開發、部署和投產的應用的安全性和質量。通過對SDLC前期的必要投入(比如安全威脅建模和設計審核等),SDL-IT可以有效地幫助企業降低在應用投產后發現和修復安全漏洞的成本以及可能帶來的其它損失,比如生產力損失或者對企業聲譽、法規遵從造成影響等。關于應用安全方面投資回報的討論是一個復雜的話題,在這里就不做更深入地討論了。需要強調的是:應用的安全性和其它需求一樣,是應用的一部分。從前“尋找安全漏洞”的做法并不能真正保證應用的安全性。企業有必要改進軟件開發流程,做到在應用開發的整個過程中自始至終地關注應用安全。最后借用Bill Malick的一句話“Security is like the brakes on your car. Their function is to slow you down. But their purpose is to allow you to go fast.” 瀏覽更多精彩文章>> 訂閱軟件安全電子期刊>>
轉載于:https://blog.51cto.com/broadviewsec/132512
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的应用安全与微软SDL-IT流程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 架WSUS服务器 内网自动打补丁
- 下一篇: eclipse工作空间在哪里配置?