目前國内據我所知企業軟體安全開發建設大緻分為3類,一類走SDL路線,起源于微軟,一類走DevSecOps,起源于Gartner 研究公司的分析師 David Cearley,“它是糅合了開發、安全及營運理念以建立解決方案的全新方法”。第三類無拘無束,走企業自己的路,SDL内容和DevSecOps内容都借鑒也都不走尋常路(基本還是原始管理方式加前兩者的改進)。我這裡介紹的參考了SDL和DevSevOps内容。
下圖是DevSecOps的常見模型,
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbwxCdh1mcvZ2LcV2Zh1Wa9M3clN2byBXLzN3btg3Pr1WZ1Z0VkhXM5pVdC5GT3lERatmRXplaspmWwUVbNlGZU9EMnRVToZFROlXTH5UMNpWT4lEVZBTQ6xEd5ITW1NWbixGaykVdWhVZ2AnbMVnRXRGeOdlW6lTeMZTTINGMShUYvwlbj5yZtlmbkN3YuQnclZnbvN2Ztl2Lc9CX6MHc0RHaiojIsJye.jpg)
研究DevSecOps需要先了解DevOps是幹啥的,DevOps(Development和Operations的組合詞)是一種重視“軟體開發人員(Dev)”和“IT運維技術人員(Ops)”之間溝通合作的文化、運動或慣例。透過自動化“軟體傳遞”和“架構變更”的流程,來使得建構、測試、釋出軟體能夠更加地快捷、頻繁和可靠(引自維基百科)。說人話就是DevOps是讓企業開發自己的軟體更有産出,
但是Sec也是就是安全部分仍然相對獨立在項目流程外,DevSecOps就是解決安全融入項目品質提高的過程。為什麼要這麼搞也很好了解——省錢,就目前曆史教科書上對王朝統治者搞了啥動作大部分的解釋都可以收束為——維護王朝統治,企業搞一切動作都要有個收益問題,之前安全部門不能和群衆們打成一片就會影響效率,降低收益。
這裡經常提到的一個概念就是安全左移,什麼是安全左移呢?結合下圖對DevSecOps和SDL進行對比圖示來介紹:
這裡是完整的兩個流程對比,從實踐上講SDL對發揮人的作用更對,DevSecOps對工具的作用更重視,但是兩者都是把安全的關注點放到了項目的最初部分,也就是說傳統廠商對我自己釋出一個軟體是不是安全如何确定?入場标準檢測也就是對應市場入場标準,市場讓我進去了,能賣了,能賺錢了,安全就到位了。市場審查查到我哪裡不安全,達不到标準就打回來——查問題,各部門全家上陣改問題。時間和錢都得花很多。再之後,廠商學乖了,把入場标準搞一份,在出場的時候就搞安全審查,這樣我自己企業内部溝通總比被有關部門查出來再改容易。安全就從進入市場标準左移到了企業内部出廠标準。出場标準之後,還是有問題——如上圖場景二,自己内部安全審查回報給研發和測試也花時間和銀子啊——核心問題就被注意到了:代碼品質不行啊,十行代碼十五個洞,給企業内外安全測試人員當内鬼呢?是以安全還得左移——讓研發把代碼品質提上去,産出可信的産品提供給市場。這裡給推薦任正非老闆的一個企業内部信可以去看下。安全左移到開發之後通過繼續的探索——有些問題不是我代碼有問題,是架構的問題,設計的憨批操作導緻了這種安全漏洞,這裡給大家推薦婦科聖手TK的一個演講"代碼未寫,漏洞已出"。左移就移到項目架構設計部分來解決。
總結下,安全建設企業要搞,為啥要搞?賺錢不搞不行!為啥搞SDL和DevSecOps,通過搞SDL和DevSecOps能節省成本提高整體賺錢能力。商業就是要搞錢,花錢是為了賺更多錢!資本永不眠~
扯了挺多,下面介紹,甲方怎麼搞企業軟體安全建設的一些參考,主要涉及各流程的一些開源工具,道術法,SDL和DevSecOps更多算術一層面,具體搞起來還是看——法,具體做法。下面介紹的不必全搞,也沒總結全,按實際需求進行采納。希望對關注這個領域的師傅們有所幫助。
Plan
安全知識庫搭建
文檔借鑒:OWASP NIST CAPEC
Security-Portal(安全知識管理)
知識庫産物:
安全威脅庫
Cigital ARA
MS Treat Modeling
安全編碼規範
Confluence
安全需求&安全設計庫
Jira
供應商評估
VSAQ
安全需求
來源:法律法規 行業監管 公司内部要求 業界安全實踐
方法:OWASP ASVS checklist
Create
标準化與加強
CIS Benchmark
CI自動內建工具
Jenkins
威脅模組化
過程:
1·識别資産
2·訪談架構設計開發人員 了解應用程式架構 應用程式分解 繪制資料流圖(信任邊界劃分 關鍵點)
3· 威脅分析 風險評估
4·制定緩解措施 威脅優先級排序
工具:微軟系列 Threat Modeling Tool Threat Dragon(OWASP) ThreatModeler(自動化 輕量)
模組化方法:STRIDE (仿冒、篡改、抵賴、資訊洩露、拒絕服務、特權提升)
源代碼安全掃描
IDE安全插件(IAST 互動式源碼安全掃描)
Java Find Security Bugs
SAST源代碼安全掃描 (靜态)
Sonarqube 指令行 開發根據建議改 安全調優掃描規則
DAST 動态 黑盒安全測試(FUZZ)
Web ZAP (OWASP)
IBM APPScan
AWVS
Mantra (OWASP)
SCA開源元件安全掃描
Dependency-check(OWASP 依據NVD) Black-Duck-Hub
容器安全掃描
clair(支援和鏡像倉庫內建 harbor) Nessus-for-Docker
主機安全掃描&配置基線加強安全掃描
Tenable-Nessus
專向掃描工具
BurpSuite Pro
SQLMap
Metasploit
Infection Monkey
自動化滲透測試工具集
Verify
MAST 移動引用安全測試
MOBSF(Android ios)提供API接口
安全加強 (安全配置基線)
CIS Benchmarks 基線配置腳本化
漏洞跟蹤管理
DefectDojo(OWASP) 支援API接口自動化內建
RASP 運作時應用自我保護
OpenRASP 百度 開源 識别運作時應用異常
Monitoring&Analytics
應用資産風險感覺&漏洞聚合平台
Kibana 可視化資源管理 研發品質可視化
ThreadFix
代碼品質管理平台
SonarQube
威脅監控
ELK 開源
logstash日志統一管理
Zeek【Bro】 suricata 流量管理
ET 開源規則 清洗
ES 庫
Kibana 可視化示範
Preproduction
主機環境驗證測試
Tennable Nessus
資料庫安全掃描
APPDetective
Release
安全風險評估記錄
Jira/Confluence
制品庫
Jfrog/Nexus
漏洞修複計劃
Jira
FW開通
ITSM tool
資産管理平台
us
資料庫安全掃描
APPDetective
Release
安全風險評估記錄
Jira/Confluence
制品庫
Jfrog/Nexus
漏洞修複計劃
Jira
FW開通
ITSM tool
資産管理平台
以上是内容基本是對概念做了簡單映射到工具的總結,每一個工具落地是否對企業口味因人而異。