安全开发流程(SDL)学习概述
1.簡介
SDL的全稱是Security Development Lifecycle,即:安全開發(fā)生命周期。由微軟最早提出,是一種專注于軟件開發(fā)的安全保障流程。為實現保護最終用戶為目標,它在軟件開發(fā)流程的各個階段引入安全和隱私問題。
2.流程
SDL大致如下,包括了以下七個階段:
• 安全培訓:安全培訓體系:安全意識+安全測試+安全開發(fā)+安全運維+安全產品
• 需求分析:確定安全需求和投入占比,尋找安全嵌入的最優(yōu)方式
• 系統(tǒng)設計:確定設計要求,分析攻擊面,威脅建模
• 實現:使用標準的工具,棄用不安全的函數,靜態(tài)分析(安全開發(fā)規(guī)范+代碼審計)
• 驗證:黑白盒測試,攻擊面評估
• 發(fā)布:安全事件響應計劃、周期性安全評估
• 響應:應急響應,BUG跟蹤
培訓的內容應包括以下方面:
Part 1:安全設計:包括減小攻擊面、深度防御、最小權限原則、服務器安全配置等
Part 2:威脅建模:概述、設計意義、基于威脅建模的編碼約束
Part 3:安全編碼:緩沖區(qū)溢出(針對C/C++)、整數算法錯誤(針對C/C++)、XSS/CSRF(對于Web類應用)、SQL注入(對于Web類應用)、弱加密
Part 4:安全測試:安全測試和黑盒測試的區(qū)別、風險評估、安全測試方法(代碼審計、fuzz等)
Part 5:隱私與敏感數據:敏感數據類型、風險評估、隱私開發(fā)和測試的最佳實踐
Part 6:高級概念:高級安全概念、可信用戶界面設計、安全漏洞細節(jié)、自定義威脅緩解
3.SDL實戰(zhàn)經驗
與項目經理進行充分溝通,排出足夠的時間
規(guī)范公司的立項流程,確保所有項目都能通知到安全團隊,避免遺漏
樹立安全部門的權威,項目必須由安全部門審核完成后才能發(fā)布
將技術方案寫入開發(fā)、測試的工作手冊中
給工程師培訓安全方案
記錄所有的安全bug,激勵程序員編寫安全的編碼
4.需求分析與設計
引用一份之前看到的美的執(zhí)行SDL的checklist。如下:
5.開發(fā)與測試
使用安全的函數,比如 OWASP ESAPI
代碼審計工具--Fortify SCA
測試階段--漏洞掃描器 appscan,awvs,webinspect
攻防驅動SDL:
事前基線:安全編碼標準、安全設計
事中措施:代碼審計、發(fā)布前的安全測試、系統(tǒng)上線流程規(guī)范
事后機制:http全流量ids、web日志分析、流量實時審計等
事件驅動:發(fā)現了新問題就督促開發(fā)部門趕緊修復
6.總結:
聽了很多安全同仁的想法,中小企業(yè)不建議推動SDL,可以做攻防驅動類型的SDL,因為SDL往往需要從上往下推動,歸根到底還是“人”的問題。SDL的成功實施,與管理層支持力度有很多關系。
參考文獻:
《白帽子講Web安全》
https://mp.weixin.qq.com/s/MR3SmOLj834LK4RBMcZ2pg?
https://xz.aliyun.com/t/226
總結
以上是生活随笔為你收集整理的安全开发流程(SDL)学习概述的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 御宝羊奶粉怎么样(御宝羊奶粉最新事件)
- 下一篇: 冰晶和普通冰块的区别 一块冰晶可以用多久