DevSecOps之應(yīng)用安全測試工具及選型
上篇文章,有同學(xué)私信想了解有哪些DevSecOps工具,這里整理出來,供大家參考(PS: 非專業(yè)安全人士,僅從DevOps建設(shè)角度,給出自己見解)
軟件中的漏洞和弱點很常見:84%的軟件漏洞都是利用應(yīng)用層的漏洞。軟件相關(guān)問題的普遍性是使用應(yīng)用安全測試(AST)工具的主要動機(jī)。通過使用AST工具,企業(yè)可以在軟件開發(fā)生命周期中快速地檢測潛在的安全問題,提高應(yīng)用程序的可靠性和安全性,降低安全風(fēng)險。
隨著越來越多的應(yīng)用安全測試工具的出現(xiàn),信息技術(shù)(IT)領(lǐng)導(dǎo)、開發(fā)人員和工程師可能會感到困惑——不知道哪些工具可以解決哪些問題。

如上圖所示,從下往上,成熟度和實現(xiàn)難度依次增大。
靜態(tài)應(yīng)用程序安全測試
Static Application Security Testing (SAST),僅通過分析或者檢查應(yīng)用軟件源代碼或字節(jié)碼以發(fā)現(xiàn)應(yīng)用程序的安全性漏洞,側(cè)重檢查代碼安全,如C/C++緩沖區(qū)溢出、身份認(rèn)證與授權(quán)等, 避免產(chǎn)生可利用的弱點。
SAST 工具主要用于 SDLC 的編碼、構(gòu)建和開發(fā)階段。
動態(tài)應(yīng)用程序安全測試
Dynamic Application Security Testing (DAST),通過運(yùn)行程序來檢查應(yīng)用軟件的安全性問題,側(cè)重從系統(tǒng)外部接口來進(jìn)行針對性的測試,暴露應(yīng)用程序接口的安全性漏洞。
DAST 是一種自動黑盒測試技術(shù),測試這主要從外部進(jìn)行測試, 它模仿黑客與您的 Web 應(yīng)用或 API 交互的方式。它通過網(wǎng)絡(luò)連接和檢查應(yīng)用的客戶端渲染來測試應(yīng)用,就像滲透測試工具一樣。 DAST 工具不需要訪問您的源代碼或自定義來掃描堆棧。它們與您的網(wǎng)站交互,從而以較低的誤報率發(fā)現(xiàn)漏洞。
交互式應(yīng)用程序安全性測試
Interactive Application Security Testing (IAST),整合了SAST和DAST這兩種方法,可以發(fā)揮各自的優(yōu)勢、降低誤報率,發(fā)現(xiàn)更多安全漏洞,從而提高安全性測試效率。
交互式應(yīng)用安全測試就是通過把安全工具的代理嵌入到應(yīng)用程序里面,從而在測試應(yīng)用程序的時候,這個安全代碼能夠監(jiān)控到應(yīng)用系統(tǒng)的網(wǎng)絡(luò)內(nèi)容,堆棧等信息,從而嗅探出系統(tǒng)在動態(tài)行為下的安全漏洞, 內(nèi)容具體到發(fā)生漏洞的代碼行。
軟件構(gòu)成分析
Software Composition Analysis (SCA),專門用于分析開發(fā)人員使用的各種源碼、模塊、框架和庫,以識別和清點應(yīng)用系統(tǒng)(OSS)的組件及其構(gòu)成和依賴關(guān)系,并識別已知的安全漏洞或者潛在的許可證授權(quán)問題,把這些風(fēng)險排查在應(yīng)用系統(tǒng)投產(chǎn)之前,以加快確定優(yōu)先級和開展補(bǔ)救工作。
此外,它們還可無縫集成到 CI/CD 流程中,從構(gòu)建集成直至生產(chǎn)前的發(fā)布,持續(xù)檢測新的開源漏洞。大白話,找出軟件里面的“科技與狠活”
應(yīng)用程序安全測試編排
Application Security Testing Orchestration (ASTO),隨著數(shù)據(jù)中心規(guī)模的不斷增大,網(wǎng)絡(luò)以及安全服務(wù)數(shù)量也隨之不斷的增長,安全運(yùn)維更是難上加難。面對越來越復(fù)雜的網(wǎng)絡(luò)和安全場景,安全編排(Orchestration)工具應(yīng)運(yùn)而生,能夠安全自動化和服務(wù)編排,如可以連接諸如Splunk、QRadar等安全數(shù)據(jù)分析工具,利用其提供的大量安全事件數(shù)據(jù),通過自動化的腳本,采取一系列的方法進(jìn)行安全事件的響應(yīng)。
應(yīng)用程序漏洞關(guān)聯(lián)
ASTO 將軟件開發(fā)生命周期內(nèi)的安全工具進(jìn)行整合,尤其在 DevSecOps中發(fā)揮舉足輕重的作用,而AVC(Application Vulnerability Correlation,應(yīng)用程序漏洞關(guān)聯(lián))工具是指工作流與流程管理工具,讓軟件開發(fā)應(yīng)用漏洞測試和修復(fù)實現(xiàn)流線化。
這些工具將各種安全測試數(shù)據(jù)源(SAST、DAST、IAST、SCA 、滲透測試與代碼審核)融入到一個中央化的工具中,AVC 工具能夠?qū)踩毕菪纬?strong>中心化數(shù)據(jù),進(jìn)行分析,對補(bǔ)救方案進(jìn)行優(yōu)先級排序,實現(xiàn)應(yīng)用安全活動的協(xié)作。
上面5、6點,屬于比較綜合的方案,大白話,從“安全”的視角,去看看研發(fā)活動的產(chǎn)出 (代碼,制品,環(huán)境等等資產(chǎn))有沒有安全漏洞風(fēng)險,并且歸類融合去重統(tǒng)一,實現(xiàn)思路上,有點像DevOps流水線,劍走偏鋒。目前,國外類似的解決方案有一些,國內(nèi)很少,我也在持續(xù)跟蹤研究中。
安全測試工具適用階段
如下圖所示
- SAST適用于應(yīng)用程序開發(fā)早期或集成/構(gòu)建階段,提供代碼級別的反饋;
- IAST可以在應(yīng)用程序的運(yùn)行時進(jìn)行安全測試,并提高漏洞的發(fā)現(xiàn)率;
- DAST適用于應(yīng)用程序發(fā)布前進(jìn)行黑盒測試;
- SCA可以檢測應(yīng)用程序依賴的第三方軟件組件中的漏洞。
綜合使用這些工具,可以在應(yīng)用程序的開發(fā)、測試和部署階段及時發(fā)現(xiàn)和糾正潛在的安全漏洞。
如何選擇適合自己企業(yè)的安全工具
如下圖所示,根據(jù)研發(fā)活動的過程,我對相關(guān)的安全工作做了領(lǐng)域和業(yè)務(wù)的劃分,部分工具可能會貫穿多個階段。
選型原則
- 你需要解決什么問題?哪些階段是你關(guān)注的?
- 工具的成本,是否有資金支持采購商業(yè)軟件?雖然開源的安全工具很多,不過“安全”是個嚴(yán)肅且專業(yè)的領(lǐng)域,商業(yè)軟件還是有很多“硬核”實力
- 發(fā)現(xiàn)安全問題了,你是否能解決修復(fù)?這決定了,你是否會使用這些工具,更重要的是背后的運(yùn)營流程,否則工具只是工具
- 你所在的行業(yè)的要求是什么?政府和機(jī)構(gòu)的要求是什么?
- 選擇的安全工具是否能融入DevOps流水線?是否周邊生態(tài)插件豐富?是否支持二次開發(fā)?
- 是否有專業(yè)的安全人士,能夠使用選中的工具,并駕馭?
個人看法
- 從實踐難易程度和成本最低來看, “ 編碼階段“ 應(yīng)該是成本最低,工具最多(比如sonarqube 估計是下面圖中,你最熟悉的,爛大街的),離開發(fā)人員最近的階段。
- 從”安全“左移的角度,在”編碼階段“進(jìn)行實施安全活動,從DevOps角度,浪費(fèi)也是相對較少的。唯一不足,就是代碼階段的掃描,誤報率稍微高,見仁見智。
- ”容器安全“,也是一個值得關(guān)注的,由于云原生普及,周邊生態(tài)豐富,可以選擇的余地會多些,對于”中小企業(yè)“來說,成本最低。
- 如果你的組織不差錢,直接商業(yè)工具,這個不用質(zhì)疑,你的甲方爸爸也不會差錢,他要的是放心。
最后,安全工具僅僅是個開始,如何把工具融于流程,并且落地得到切實的執(zhí)行才是難點。”安全“是個即”嚴(yán)肅“,又”專業(yè)“,同時又容易”被忽略“的活動,任重而道遠(yuǎn)。
PS: 下面圖目前是V1.0版本,后續(xù)會持續(xù)更新 (圖中標(biāo)記的工具,可以做些嘗試,開源的;不差錢的,請直接商業(yè)工具,專業(yè)的人做專業(yè)的事情)
參考:
- https://www.synopsys.com/zh-cn/glossary/what-is-devsecops.html
- https://www.nist.gov/itl/ssd/software-quality-group/source-code-security-analyzers
- https://sdtimes.com/security/a-guide-to-devsecops-tools/
- 10 Types of Application Security Testing Tools: When and How to Use Them
- https://www.synopsys.com/zh-cn/software-integrity/security-testing/static-analysis-sast.html
- https://www.synopsys.com/software-integrity/security-testing/web-scanner.html
- https://www.synopsys.com/zh-cn/software-integrity/security-testing/interactive-application-security-testing.html
- https://www.synopsys.com/zh-cn/glossary/what-is-application-vulnerability-correlation.html


浙公網(wǎng)安備 33010602011771號