1.簡介程序員
SDL的全稱是Security Development Lifecycle,即:安全開發生命週期。由微軟最先提出,是一種專一於軟件開發的安全保障流程。爲實現保護最終用戶爲目標,它在軟件開發流程的各個階段引入安全和隱私問題。web
2.流程算法
SDL大體以下,包括瞭如下七個階段:安全
• 安全培訓:安全培訓體系:安全意識+安全測試+安全開發+安全運維+安全產品
• 需求分析:肯定安全需求和投入佔比,尋找安全嵌入的最優方式
• 系統設計:肯定設計要求,分析攻擊面,威脅建模
• 實現:使用標準的工具,棄用不安全的函數,靜態分析(安全開發規範+代碼審計)
• 驗證:黑白盒測試,攻擊面評估
• 發佈:安全事件響應計劃、週期性安全評估
• 響應:應急響應,BUG跟蹤服務器
培訓的內容應包括如下方面:
Part 1:安全設計:包括減少攻擊面、深度防護、最小權限原則、服務器安全配置等
Part 2:威脅建模:概述、設計意義、基於威脅建模的編碼約束
Part 3:安全編碼:緩衝區溢出(針對C/C++)、整數算法錯誤(針對C/C++)、XSS/CSRF(對於Web類應用)、SQL注入(對於Web類應用)、弱加密
Part 4:安全測試:安全測試和黑盒測試的區別、風險評估、安全測試方法(代碼審計、fuzz等)
Part 5:隱私與敏感數據:敏感數據類型、風險評估、隱私開發和測試的最佳實踐
Part 6:高級概念:高級安全概念、可信用戶界面設計、安全漏洞細節、自定義威脅緩解 app
3.SDL實戰經驗運維
4.需求分析與設計函數
引用一份以前看到的美的執行SDL的checklist。以下:工具
5.開發與測試測試
攻防驅動SDL:
事前基線:安全編碼標準、安全設計
事中措施:代碼審計、發佈前的安全測試、系統上線流程規範
過後機制:http全流量ids、web日誌分析、流量實時審計等
事件驅動:發現了新問題就督促開發部門趕忙修復
6.總結:
聽了不少安全同仁的想法,中小企業不建議推進SDL,能夠作攻防驅動類型的SDL,由於SDL每每須要從上往下推進,歸根到底仍是「人」的問題。SDL的成功實施,與管理層支持力度有不少關係。
參考文獻:
《白帽子講Web安全》
https://mp.weixin.qq.com/s/MR3SmOLj834LK4RBMcZ2pg?
https://xz.aliyun.com/t/226