一、DevSecOps產品
國內做的比較好的:
- 懸鏡安全:https://www.xmirror.cn/
- 默安科技:https://www.moresec.cn/
- 開源網安:https://www.seczone.cn/
容器安全:
- 小佑科技:https://www.dosec.cn/index.html
- 青藤:https://qingteng.cn/fc-home.html
基於DevOps,結合security的產品:
- 極狐GitLab:https://about.gitlab.cn/solutions/dev-sec-ops/
- 傑蛙XRAY:https://www.jfrogchina.com/xray/
synopsys(在gartner report中排第一的公司):https://www.synopsys.com/
gartner report(2021年):https://www.gartner.com/doc/reprints?id=1-267XOMMA&ct=210601&st=sb
二、DevSecOps技術工具
1.靜態應用程序安全測試(Static Application Security Testing)
靜態應用安全測試又稱白盒測試,是指在不運行程序本身的情況下,僅通過分析程序的語法、結構、過程、接口等來檢測程序的安全性。一般可用於DevOps流程的編碼、構建與測試環節。
優勢:代碼檢查更具有可視性、能精確定位到漏洞位置
劣勢:誤報率高、對集成系統中產生的漏洞難以檢測
開源工具:
- Semgrep是一款基於Facebook開源SAST工具pfff中的sgrep組件開發的開源SAST工具,目前由安全公司r2c統一開發維護,提供強於grep工具的代碼匹配檢索能力
- CodeQL是Semmle公司推出的一款靜態代碼分析工具(以前叫SemmleQL),后被Github收購,並成立了Security Lab支持Github的開源代碼安全檢查能力。
- SonarQubesonar是一款靜態代碼質量分析工具,支持25種以上的語言,而且能夠集成在IDE、Jenkins、Git等服務中,方便隨時查看代碼質量分析報告。
2.動態應用程序安全測試(Dynamic Application Security Testing)
動態應用安全測試又稱黑盒測試,在無需了解程序源代碼與邏輯結構的情況下,對程序進行安全測試。一般可用於DevOps流程的測試與發布環節。
優勢:攻擊者視角測試更貼近現實情況、無需源代碼
劣勢:覆蓋面較小、一定程度依賴人員安全能力、無法定位漏洞具體位置
開源工具:
- https://github.com/zaproxy/zaproxy
- https://github.com/andresriancho/w3af
- https://github.com/sullo/nikto
3.交互式應用程序安全測試(Interactive Application Security Testing)
交互式應用安全測試又稱灰盒測試,結合了SAST和DAST技術的優點,能夠模擬驗證代碼中的已知漏洞是否確實能夠在運行的環境中被攻擊者使用。通過部署探針或者流量監測等方式,持續分析程序測試時的實時數據,發現程序中存在的漏洞。
優勢:易於集成CI/CD、低誤報高檢出、低安全專家投入
劣勢:插樁模式難以檢測業務邏輯漏洞、流量模式的數據容易被污染降低檢測效果
4.移動應用安全測試(Mobile Application Security Testing)
移動APP同樣會存在安全漏洞,因此需要進行移動應用安全檢測。
開源工具:
5.模糊測試(Fuzz Testing)
模糊測試是一種介於手工滲透測試與完全自動化測試之間的安全性測試。通過將准備好的隨機或者半隨機生成的數據輸入程序,通過監視程序的異常狀態,發現潛在漏洞。
開源工具:
-
https://github.com/google/clusterfuzz (Scalable fuzzing infrastructure)
-
https://github.com/google/oss-fuzz (continuous fuzzing for open source software)
-
https://github.com/google/AFL (A security-oriented fuzzer)
-
https://github.com/google/honggfuzz (Security oriented software fuzzer)
-
https://github.com/ffuf/ffuf (Fast web fuzzer written in Go)
- https://github.com/xmendez/wfuzz (Web application fuzzer)
6.軟件成分分析(Software Composition Analysis)
在項目開發過程中會大量使用開源組件,而調查顯示,開源組件存在大量的安全隱患,導致應用也存在安全風險,因此需要對開源組件進行安全掃描。
開源工具:
7.運行時應用自我保護(Runtime Application Self-Protection)
不同於傳統的應用外的安全措施(如外層的防火牆),它將安全能力像疫苗一樣注入到應用程序中並與之融為一體,能夠自動化的實時監控、檢測或阻斷實際產生的安全攻擊,使應用程序具備自我保護能力。
開源工具:
- 字節開源的方案:https://github.com/bytedance/Elkeid
- 百度開源的方案:https://rasp.baidu.com/
- 火線洞態IAST:https://github.com/HXSecurity/DongTai-agent-java
8.容器安全
隨着容器技術的興起,越來越多的應用選擇容器部署,與此同時,容器的安全性問題也受到了越來越廣泛的關注。容器鏡像通常是來自docker hub或阿里雲等提供的第三方鏡像倉庫,然而相關報告顯示,無論是社區鏡像還是官方鏡像,都存在很多高危漏洞,如果基礎鏡像有安全漏洞,那么容器運行存在較大的安全風險。
開源工具:
- https://github.com/quay/clair
- https://github.com/aquasecurity/trivy
- https://github.com/anchore/grype
- https://github.com/cilium/cilium
三、漏洞庫
NVD:https://nvd.nist.gov/products/cpe
CNNVD:http://www.cnnvd.org.cn/web/xxk/xmlDown.tag
四、參考文章
“安全需要每個工程師的參與”-DevSecOps理念及思考
https://security.tencent.com/index.php/blog/msg/150
安全左移理念,騰訊DevSecOps如何實踐?
https://security.tencent.com/index.php/blog/msg/191
Fuzzing平台建設的研究與設計
https://security.tencent.com/index.php/blog/msg/143
代碼安全指南
https://github.com/Tencent/secguide
基於開源技術打造DevSecOps工具鏈
https://mp.weixin.qq.com/s/8chG8vobyurO4n_0bLa9-A
百度的 DevSecOps 實踐
https://www.infoq.cn/article/jfQGtKBHWZwA8HH2r8Zz