快速了解DevSecOps:構(gòu)建安全軟件開發(fā)的基石近弟!
上篇文章,有同學(xué)私信想了解有哪些DevSecOps工具祷愉,這里整理出來二鳄,供大家參考(PS: 非專業(yè)安全人士,僅從DevOps建設(shè)角度髓窜,給出自己見解)
軟件中的漏洞和弱點很常見:84%的軟件漏洞都是利用應(yīng)用層的漏洞欺殿。軟件相關(guān)問題的普遍性是使用應(yīng)用安全測試(AST)工具的主要動機杨拐。通過使用AST工具擂啥,企業(yè)可以在軟件開發(fā)生命周期中快速地檢測潛在的安全問題,提高應(yīng)用程序的可靠性和安全性屋吨,降低安全風(fēng)險山宾。
「隨著越來越多的應(yīng)用安全測試工具的出現(xiàn)资锰,信息技術(shù)(IT)領(lǐng)導(dǎo)、開發(fā)人員和工程師可能會感到困惑——不知道哪些工具可以解決哪些問題直秆”廾耍」
靜態(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īng)用軟件的安全性問題,側(cè)重從系統(tǒng)外部接口來進行針對性的測試届惋,暴露應(yīng)用程序接口的安全性漏洞脑豹。
DAST 是一種自動黑盒測試技術(shù),「測試這主要從外部進行測試, ?它模仿黑客與您的 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)先級和開展補救工作译蒂。
此外谊却,「它們還可無縫集成到 CI/CD 流程中」,從構(gòu)建集成直至生產(chǎn)前的發(fā)布捕透,持續(xù)檢測新的開源漏洞碴萧。「大白話破喻,找出軟件里面的“科技與狠活”」
應(yīng)用程序安全測試編排
Application Security Testing Orchestration (ASTO),隨著數(shù)據(jù)中心規(guī)模的不斷增大嘉冒,網(wǎng)絡(luò)以及安全服務(wù)數(shù)量也隨之不斷的增長,安全運維更是難上加難讳推。面對越來越復(fù)雜的網(wǎng)絡(luò)和安全場景银觅,安全編排(Orchestration)工具應(yīng)運而生,能夠安全自動化和服務(wù)編排镊绪,如可以連接諸如Splunk洒忧、QRadar等安全數(shù)據(jù)分析工具,利用其提供的大量安全事件數(shù)據(jù)榄鉴,通過自動化的腳本蛉抓,采取一系列的方法進行安全事件的響應(yīng)。
應(yīng)用程序漏洞關(guān)聯(lián)
ASTO 將軟件開發(fā)生命周期內(nèi)的安全工具進行整合驶忌,尤其在 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ù)」族铆,進行分析哭尝,對補救方案進行優(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)用程序的運行時進行安全測試脓规,并提高漏洞的發(fā)現(xiàn)率凉敲;」
- 「DAST適用于應(yīng)用程序發(fā)布前進行黑盒測試绢陌;」
- 「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è)的要求是什么换薄?政府和機構(gòu)的要求是什么?
- 選擇的安全工具是否能融入DevOps流水線复旬?是否周邊生態(tài)插件豐富冲泥?是否支持二次開發(fā)凡恍?
- 是否有專業(yè)的安全人士,能夠使用選中的工具浮还,并駕馭闽巩?
個人看法
- 從實踐難易程度和成本最低來看担汤, “ 編碼階段“ 應(yīng)該是成本最低崭歧,工具最多(比如sonarqube 估計是下面圖中撞牢,你最熟悉的,爛大街的)播掷,離開發(fā)人員最近的階段撼班。
- 從”安全“左移的角度砰嘁,在”編碼階段“進行實施安全活動件炉,從DevOps角度斟冕,浪費也是相對較少的缅阳。唯一不足,就是代碼階段的掃描秀撇,誤報率稍微高向族,見仁見智件相。
- ”容器安全“,也是一個值得關(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
本文使用 文章同步助手 同步