安全開發流程(SDL)學習概述

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實戰經驗運維

  • 與項目經理進行充分溝通,排出足夠的時間
  • 規範公司的立項流程,確保全部項目都能通知到安全團隊,避免遺漏
  • 樹立安所有門的權威,項目必須由安所有門審覈完成後才能發佈
  • 將技術方案寫入開發、測試的工做手冊中
  • 給工程師培訓安全方案
  • 記錄全部的安全bug,激勵程序員編寫安全的編碼

 

4.需求分析與設計函數

引用一份以前看到的美的執行SDL的checklist。以下:工具

 

5.開發與測試測試

  • 使用安全的函數,好比 OWASP ESAPI
  • 代碼審計工具--Fortify SCA
  • 測試階段--漏洞掃描器 appscan,awvs,webinspect

 

攻防驅動SDL:

事前基線:安全編碼標準、安全設計
事中措施:代碼審計、發佈前的安全測試、系統上線流程規範
過後機制:http全流量ids、web日誌分析、流量實時審計等
事件驅動:發現了新問題就督促開發部門趕忙修復

 

 

 

6.總結:

聽了不少安全同仁的想法,中小企業不建議推進SDL,能夠作攻防驅動類型的SDL,由於SDL每每須要從上往下推進,歸根到底仍是「人」的問題。SDL的成功實施,與管理層支持力度有不少關係。

 

 

 

 參考文獻:

《白帽子講Web安全》

 https://mp.weixin.qq.com/s/MR3SmOLj834LK4RBMcZ2pg?

 https://xz.aliyun.com/t/226

相關文章
相關標籤/搜索