
引言
隨著越來(lái)越多的公司意識(shí)到將安全性集成到其DevOps流水線(xiàn)的重要性,對(duì)DevSecOps產(chǎn)品的需求一直在強(qiáng)勁增長(zhǎng)。但是,投入DevSecOps市場(chǎng)尋求選擇的IT和DevOps專(zhuān)業(yè)人員很快意識(shí)到,DevSecOps工具和框架的數(shù)量眾多且令人困惑。選擇過(guò)多,往往使他們陷入決策疲勞和分析癱瘓的境地,因?yàn)樗麄冊(cè)噲D了解選擇哪種安全解決方案以及如何將其集成到他們的軟件開(kāi)發(fā)流水線(xiàn)中。
但是,為什么首先將DevSecOps成為如此關(guān)注的焦點(diǎn)呢?為了跟上創(chuàng)新的步伐,開(kāi)發(fā)人員已成倍地增加了對(duì)開(kāi)源軟件(OSS)的使用,使其現(xiàn)已廣泛應(yīng)用于應(yīng)用程序開(kāi)發(fā)交付過(guò)程中。隨著越來(lái)越多的源代碼來(lái)自“外部”,如今,收集和理解其內(nèi)容的需求變得至關(guān)重要。
在這篇文章中,我們將研究在減輕OSS中可能包含的漏洞方面最成功的工具和技術(shù)類(lèi)型。然后,我們將分享一些技巧,這些技巧將幫助您從市場(chǎng)上脫穎而出,并在評(píng)估市場(chǎng)上的許多不同選項(xiàng)時(shí)做出更好,更明智的決策,尤其是在軟件組成分析(SCA)領(lǐng)域。
開(kāi)發(fā)的現(xiàn)實(shí)&現(xiàn)狀
如今,典型的應(yīng)用程序使用多達(dá)90%的OSS組件,這些組件取自公開(kāi)可用的開(kāi)源庫(kù)。這種趨勢(shì)使得應(yīng)用程序中存在的漏洞數(shù)量不斷增加,進(jìn)而導(dǎo)致漏洞攻擊和破壞。公司通過(guò)載DevOps流水線(xiàn)中添加更多安全檢查集成來(lái)做出反應(yīng)。
但是,安全專(zhuān)業(yè)人員和開(kāi)發(fā)人員真正需要哪種類(lèi)型的工具來(lái)確保其生產(chǎn)軟件的安全性和穩(wěn)定性?公平地說(shuō),有多種廣泛的DevOps安全工具可以解決軟件開(kāi)發(fā)生命周期(SDLC)的不同領(lǐng)域:
1、代碼分析(靜態(tài)和動(dòng)態(tài))
2、軟件組成分析(針對(duì)第三方OSS)
3、運(yùn)行時(shí)安全性分析(包括容器)
理想情況下,團(tuán)隊(duì)?wèi)?yīng)該致力于采用所有這些領(lǐng)域的工具,以實(shí)現(xiàn)完整的SDLC安全性,但是對(duì)于本博客,我們將專(zhuān)注于軟件組成分析,該軟件的目標(biāo)是緩解OSS開(kāi)源組件和二進(jìn)制文件中的漏洞和違反許可證合規(guī)性。
DevSecOps的七個(gè)必備條件
選擇DevSecOps工具時(shí),需要確保以下7點(diǎn):
1、可以本地管理和理解所有制品的工具
在團(tuán)隊(duì)在沒(méi)有完成確定哪個(gè)OSS組件具有漏洞的任務(wù)之前,他們首先需要一個(gè)通用的DevOps平臺(tái),該平臺(tái)可以作為一個(gè)基本要求,在集中位置管理所有組件和二進(jìn)制制品文件,而不論其技術(shù)棧類(lèi)型如何。DevOps平臺(tái)需要知道項(xiàng)目使用了哪些組件以及它們之間的依賴(lài)關(guān)系,還有項(xiàng)目創(chuàng)建了哪些制品文件。
2、使用最好的燃料
最有效的解決方案將需要像VulnDB這樣的世界一流的漏洞情報(bào)源的力量,以確保它具有最新的漏洞知識(shí)庫(kù)。世界上最好的汽車(chē)如果他們沒(méi)有最好的燃料來(lái)推動(dòng)他們什么也不是
3、堅(jiān)持可見(jiàn)性和影響分析
DevSecOps的“贏(yíng)家”不僅能夠了解您的二進(jìn)制文件使用了哪些OSS庫(kù)和組件,而且還能了解如何解壓和掃描它們并查看所有底層和依賴(lài)項(xiàng),甚至包括打包在Docker映像和zip文件中的那些底層和依賴(lài)項(xiàng)。能夠了解組織中制品文件和依賴(lài)關(guān)系結(jié)構(gòu)的解決方案可以為企業(yè)提供軟件交付可見(jiàn)性,并在交付過(guò)程中的任何地方發(fā)現(xiàn)其漏洞或許可證違規(guī)的影響范圍。
4、需要支持容器和云原生框架
解決方案應(yīng)支持基于容器的發(fā)布框架,容器框架已迅速成為云原生部署的事實(shí)上的標(biāo)準(zhǔn)。對(duì)容器技術(shù)的深入,遞歸的理解以及深入探究每一層layer的能力將確保漏洞不會(huì)被掩蓋。不幸的是,某些掃描工具不支持容器,或者對(duì)它們的所有不同層和可傳遞依賴(lài)項(xiàng)了解不足。
5、自動(dòng)化治理
與公司安全部自動(dòng)化協(xié)作管理的能力是DevSecOps的重要籌碼。治理系統(tǒng)必須能夠自動(dòng)執(zhí)行公司策略,并在不進(jìn)行干預(yù)的情況下采取相應(yīng)的措施。主要功能應(yīng)包括:
a、通過(guò)不同的渠道(例如電子郵件,即時(shí)消息或需求管理系統(tǒng)如Jira)來(lái)通知違反安全性或合規(guī)性問(wèn)題,
b、自動(dòng)阻止包含問(wèn)題(漏洞或許可證違規(guī))制品的下載
c、使依賴(lài)脆弱組件(包含高危漏洞)的構(gòu)建失敗
d、防止部署易受攻擊的交付件
6、遍及整個(gè)流水線(xiàn)
DevSecOps中的差異化點(diǎn)是如何將制品的詳細(xì)數(shù)據(jù)與橫跨制品倉(cāng)庫(kù),構(gòu)建,部署,運(yùn)行等階段的安全掃描結(jié)合起來(lái)。即使在生產(chǎn)部署之后(運(yùn)行時(shí)),一個(gè)可以覆蓋整個(gè)SDLC并持續(xù)檢測(cè)和監(jiān)視漏洞和合規(guī)性違規(guī)的平臺(tái)將脫穎而出。
7、混合動(dòng)力
即使您尚未維護(hù)混合型的基礎(chǔ)架構(gòu)?,F(xiàn)在選擇支持您的持續(xù)云計(jì)算旅程和基礎(chǔ)架構(gòu)混合的工具和解決方案,將確保您無(wú)論在何處的DevSecOps流水線(xiàn)中都具有一致性和標(biāo)準(zhǔn)。
總結(jié)
DevSecOps將不再停留在CIO的心愿單。現(xiàn)在它是必須執(zhí)行的IT戰(zhàn)略,它必須成為任何組織SDLC不可或缺的一部分。即使組織選擇了合適的DevSecOps解決方案,領(lǐng)導(dǎo)者也需要確保他們?cè)诟鱾€(gè)團(tuán)隊(duì)之間實(shí)施完善的DevSecOps流程。這包括需要繼續(xù)就應(yīng)用程序安全最佳實(shí)踐對(duì)開(kāi)發(fā)人員和DevOps從業(yè)人員進(jìn)行培訓(xùn)。開(kāi)發(fā)人員安和全專(zhuān)業(yè)人員比例通常是250:1,因此在開(kāi)發(fā)團(tuán)隊(duì)之間分享安全知識(shí)是彌補(bǔ)安全缺失的基礎(chǔ)。
選擇一個(gè)可以管理存儲(chǔ)庫(kù),二進(jìn)制文件,CI / CD自動(dòng)化和OSS組件分析并支持容器化發(fā)布框架的DevSecOps平臺(tái)似乎是一項(xiàng)艱巨的任務(wù)。此外,支持本地,云,多云和混合部署是一個(gè)額外的挑戰(zhàn)。但是,解決方案需求清單是一個(gè)很好的起點(diǎn)。我們希望這七個(gè)技巧將為您向供應(yīng)商提出正確的問(wèn)題,消除市場(chǎng)噪音以及做出明智的決定奠定堅(jiān)實(shí)的基礎(chǔ)。