現(xiàn)代軟件開發(fā)是一個高度復雜的工程,而軟件開發(fā)的敏捷化(DevOps)則給其安全控制帶來了全新挑戰(zhàn)。隨著安全威脅的不斷增長,開發(fā)者必須將安全控制融合到軟件開發(fā)的整個生命周期中(DevSecOps),將安全測試工具與研發(fā)流程整合,在軟件發(fā)布、部署之前,投入生產(chǎn)之后針對漏洞進行大量嚴格測試。
為了加快軟件安全的測試過程,匹配安全與敏捷需求,企業(yè)安全團隊也應該遵循DevSecOps敏捷安全思維模式,實踐DevOps安全持續(xù)生命周期方法,通過自動化工具大大簡化代碼安全測試。
以下,我們將簡要介紹三種主要的DevSecOps測試方法(SAST、DAST和SCA)及其開源(含免費)工具。
靜態(tài)應用安全測試(SAST)
靜態(tài)應用程序安全測試(SAST)通常在編碼階段分析軟件源代碼或二進制文件的語法、結(jié)構(gòu)、過程、接口中存在的安全漏洞,是公司在軟件開發(fā)生命周期的早期階段進行的一種白盒安全測試。SAST通常會在不同的時間間隔或需要添加或更改代碼庫時重新運行。
作為DevSecOps產(chǎn)品,為自動化量身定制的SAST工具會逐行篩查代碼以識別已知漏洞和薄弱環(huán)節(jié)。
自動化SAST工具的主要缺點之一是誤報,而且該工具的智能化程度不足以分析處于早期階段且無法編譯的代碼。通過人工智能技術(shù)可以大大減少SAST工具的誤報事件。
OWASP發(fā)布了開源、免費和商業(yè)SAST工具的列表,以下是可以添加到集成開發(fā)環(huán)境中的流行開源SAST工具:
Bandit
Flawfinder
GitHub Advanced Security
OWASP Automated Software Security Toolkit
動態(tài)應用安全測試(DAST)
SAST從內(nèi)部查看源代碼,而動態(tài)應用程序安全測試(DAST)則從外部分析軟件的安全性。作為一種黑盒安全測試工具,DAST可識別整個企業(yè)基礎(chǔ)架構(gòu)中的網(wǎng)絡、系統(tǒng)和操作系統(tǒng)漏洞。
DAST通常在測試或運行階段分析應用軟件的動態(tài)運行狀態(tài),要求應用程序完全編譯和運行,因此DAST測試通常在生產(chǎn)之前的測試/開發(fā)環(huán)境中運行,自動啟動多個爬取活動和相關(guān)的滲透測試以檢測漏洞。DAST降低了將有安全漏洞的軟件交到業(yè)務用戶手中的風險。
DAST的主要缺點是測試難以覆蓋整個攻擊面,從而導致一些漏洞被遺漏。
OWASP推薦了一系列開源和商業(yè)DAST工具。其中流行的開源工具如下:
Deepfence ThreatMapper
Nikto
OpenVAS
OWASP Zed Attack Proxy
軟件成分分析(SCA)
軟件成分分析(SCA)技術(shù)用于檢測軟件中的開源組件是否帶有已知的安全漏洞或功能漏洞,或需要恰當授權(quán)許可的商業(yè)軟件或第三方產(chǎn)品。
隨著軟件供應鏈安全威脅的不斷增長,軟件成分分析(SCA)的重要性正不斷提升,對于部分或者全部依賴開源軟件的開發(fā)項目,SCA工具可用于自動識別整個容器映像、打包的二進制文件和源代碼中的漏洞。SCA工具對于識別和管理軟件許可,以及實現(xiàn)最佳代碼集成也很有用。
SCA工具提供了一種可靠的方法來及時自動識別漏洞和利用。SCA工具可掃描一個或多個相關(guān)數(shù)據(jù)庫中的管理器、文件和圖像,從中查找已知漏洞,可快速識別開源軟件和可重用代碼中的安全問題。越來越多的企業(yè)意識到,需要使用軟件物料清單(SBOM)來跟蹤代碼并幫助防止可見性問題。
G2列出了許多提供免費試用版的SCA工具,其中包括:
GitLab
ThreatWorx
JFrog Xray