很多組織正在采用DevSecOps方法開發(fā)應(yīng)用程序,但是安全性測(cè)試所有權(quán)和開源代碼漏洞仍然存在一些問題。
在過去幾年中,DevOps文化的出現(xiàn)從根本上改變了軟件開發(fā)的方式,使企業(yè)可以更快地推送代碼,并自動(dòng)擴(kuò)展支持新功能和創(chuàng)新所需的基礎(chǔ)設(shè)施。而將DevSecOps投入到開發(fā)和運(yùn)營(yíng)渠道中的安全性日益增強(qiáng),現(xiàn)在正在改變應(yīng)用程序安全性的狀態(tài),但是一份最新發(fā)布的行業(yè)調(diào)查報(bào)告表明,這種差距仍然存在。
安全測(cè)試所有權(quán)
調(diào)研機(jī)構(gòu)Enterprise Strategy Group(ESG)公司最近發(fā)布的一份調(diào)查報(bào)告對(duì)北美地區(qū)的378位應(yīng)用程序開發(fā)人員和應(yīng)用程序安全專業(yè)人員進(jìn)行了調(diào)查,發(fā)現(xiàn)盡管許多組織認(rèn)為自己的應(yīng)用程序安全程序很可靠,但仍繼續(xù)將具有已知漏洞的代碼用于生產(chǎn)環(huán)境。
發(fā)布易受攻擊的代碼并不是什么好事,但知道有漏洞總比毫不知情要好,因?yàn)槠髽I(yè)的決策通常涉及一些風(fēng)險(xiǎn)評(píng)估和修復(fù)計(jì)劃,也許還有一些應(yīng)對(duì)措施。一半的受訪者表示他們的組織經(jīng)常這樣做,三分之一的受訪者表示他們的組織偶爾也這樣做。他們提到的一些原因通常是在截止日期之前出現(xiàn)漏洞,或在發(fā)布周期中發(fā)現(xiàn)問題為時(shí)已晚。
這份報(bào)告強(qiáng)調(diào)了組織在開發(fā)過程中盡早地集成安全測(cè)試是很重要的原因,而且發(fā)布易受攻擊的代碼并不一定表示沒有良好的安全程序,因?yàn)檫@可能有多種不同的原因,并且沒有一種單一類型的安全測(cè)試能夠捕獲所有的錯(cuò)誤。然而,調(diào)查還發(fā)現(xiàn),許多組織仍在擴(kuò)展其應(yīng)用程序的安全性,只有33%的組織表示其程序覆蓋了代碼庫(kù)的75%以上,33%的組織表示其程序覆蓋了不到一半的代碼。
調(diào)查發(fā)現(xiàn),將易受攻擊的代碼投入生產(chǎn)的決策者可能因組織而異。28%的組織的決策是由開發(fā)經(jīng)理和安全分析師共同做出的,24%的組織中的決策是由開發(fā)經(jīng)理單獨(dú)做出的,21%的組織的決策是由安全分析師做出的。
這實(shí)際上可能是應(yīng)用程序安全性成熟的標(biāo)志,因?yàn)镈evSecOps是關(guān)于在開發(fā)管道中盡早進(jìn)行安全測(cè)試,而在過去,安全測(cè)試只屬于組織安全團(tuán)隊(duì)的范圍,他們通常在產(chǎn)品完成后執(zhí)行安全測(cè)試。
在組織中,開發(fā)團(tuán)隊(duì)由于集成到他們的流程中而進(jìn)行了安全測(cè)試。因此與安全團(tuán)隊(duì)合作,由開發(fā)經(jīng)理做出可接受漏洞的決策是正常的,而團(tuán)隊(duì)的安全負(fù)責(zé)人通常是一位具有應(yīng)用程序安全知識(shí)和經(jīng)驗(yàn)的開發(fā)人員。但是,這種決策仍應(yīng)基于制定組織策略的首席信息安全官(CISO)做出,他最終負(fù)責(zé)管理組織整體的信息安全風(fēng)險(xiǎn),并且可以確定哪些應(yīng)用程序更容易受到攻擊,或者確定黑客可能攻擊的更敏感信息。這些應(yīng)用程序在打補(bǔ)丁時(shí)可能有更嚴(yán)格的規(guī)則。
如果沒有正確評(píng)估風(fēng)險(xiǎn),則采用帶有已知漏洞的代碼可能會(huì)造成嚴(yán)重后果。60%的受訪者承認(rèn),在過去12個(gè)月里,他們的應(yīng)用程序受到了OWASP Top-10列出的漏洞進(jìn)行攻擊。OWASP Top-10包含了Web應(yīng)用程序最關(guān)鍵的安全風(fēng)險(xiǎn),其中包括SQL注入、破壞身份驗(yàn)證、泄露敏感數(shù)據(jù)、破壞訪問控制、安全性錯(cuò)誤配置、使用具有已知漏洞的第三方組件等問題。這些問題通常不應(yīng)該允許存在于生產(chǎn)代碼中。
根據(jù)ESG公司的這份調(diào)查報(bào)告,很多組織使用的各種應(yīng)用程序安全測(cè)試工具包括:API安全漏洞(ASV)掃描(56%)、防止錯(cuò)誤配置的基礎(chǔ)設(shè)施代碼安全工具(40%)、靜態(tài)應(yīng)用程序安全測(cè)試(SAST)工具(40%)、軟件組成分析(SCA)測(cè)試工具(38%)、交互式應(yīng)用程序安全測(cè)試(IAST)工具(38%)、動(dòng)態(tài)應(yīng)用程序安全測(cè)試(DAST)工具(36%)、可以幫助識(shí)別和解決安全問題用于集成開發(fā)環(huán)境的插件(29%),掃描容器和存儲(chǔ)庫(kù)以及微服務(wù)中使用的圖像的工具(29%)、模糊測(cè)試工具(16%)、容器運(yùn)行的配置安全工具(15%)。
然而在使用這些工具面臨的挑戰(zhàn)中,其中包括,缺乏發(fā)現(xiàn)并解決問題的開發(fā)人員(29%),沒有使用組織有效投資工具的開發(fā)人員(24%),安全測(cè)試工具增加難度并減慢了開發(fā)速度周期(26%),以及來自不同供應(yīng)商的應(yīng)用程序安全工具之間缺乏集成(26%)。
盡管將近80%的組織表示,他們的安全分析師通過直接工作以審查功能和代碼,與開發(fā)人員合作進(jìn)行威脅建模,或者參加開發(fā)Scrum會(huì)議,但他們自己似乎沒有接受更多的安全培訓(xùn)。這就是只有19%的組織的應(yīng)用程序安全測(cè)試任務(wù)是由開發(fā)人員正式擁有的原因,26%的組織是由開發(fā)經(jīng)理負(fù)責(zé)的。三分之一的組織仍然將這項(xiàng)任務(wù)分配給專門的安全分析師,另有29%的組織由開發(fā)和安全團(tuán)隊(duì)共同擁有。
在三分之一的組織中,只有不到一半的開發(fā)人員接受過安全培訓(xùn);只有15%的組織表示,其開發(fā)人員都進(jìn)行了這種培訓(xùn)。不到一半的組織要求開發(fā)人員每年參加一次以上的安全培訓(xùn),其中16%的組織希望開發(fā)人員進(jìn)行自我教育,而20%的組織只在開發(fā)人員加入團(tuán)隊(duì)之后才提供培訓(xùn)。
此外,即使在提供或需要安全培訓(xùn)的情況下,大多數(shù)組織也無法有效跟蹤這種培訓(xùn)的有效性。只有40%的組織對(duì)開發(fā)團(tuán)隊(duì)或開發(fā)人員跟蹤安全問題和進(jìn)行持續(xù)改進(jìn)。
針對(duì)供應(yīng)鏈攻擊的開源組件
任何成熟的應(yīng)用安全程序也應(yīng)該涵蓋開源組件和框架,因?yàn)檫@些組件和框架在現(xiàn)代應(yīng)用程序代碼庫(kù)中占有很大比例,并且存在繼承漏洞和供應(yīng)鏈攻擊的風(fēng)險(xiǎn)。在ESG公司的調(diào)查中,幾乎一半的受訪者表示,開源組件占到他們代碼庫(kù)的50%以上;8%的受訪者表示,他們?nèi)种拇a是由開源組件組成的。盡管如此,只有48%的組織投資于處理開源漏洞。
開源治理服務(wù)提供商Sonatype公司在其《2020年軟件供應(yīng)鏈狀況報(bào)告》中指出,針對(duì)開源軟件項(xiàng)目的網(wǎng)絡(luò)攻擊同比增長(zhǎng)430%。這些網(wǎng)絡(luò)攻擊不再是被動(dòng)的,因?yàn)榫W(wǎng)絡(luò)攻擊者在這些漏洞公開披露之后就利用了這些漏洞。而網(wǎng)絡(luò)攻擊者試圖破壞惡意軟件并將其注入上游開放源代碼項(xiàng)目中,然后由開發(fā)人員將其代碼提取到自己的應(yīng)用程序中。
GitHub安全團(tuán)隊(duì)就名為Octopus Scanner的惡意軟件攻擊活動(dòng)在今年5月發(fā)出了警告,該軟件是NetBeans IDE項(xiàng)目的后門程序。而受到攻擊或感染的組件也已定期分發(fā)到軟件包存儲(chǔ)庫(kù)(如npm或PyPi)中。
復(fù)雜的依存關(guān)系網(wǎng)絡(luò)使處理這個(gè)問題變得更加困難。達(dá)姆施塔特大學(xué)的研究人員在2019年分析了npm生態(tài)系統(tǒng),它是JavaScript組件的主要來源。他們發(fā)現(xiàn),一個(gè)典型的軟件包從平均39個(gè)不同的維護(hù)者中加載了79個(gè)其他第三方軟件包。npm上排名前五位的軟件包覆蓋了134774到166086個(gè)其他軟件包。
Sonatype公司在報(bào)告中說:“當(dāng)惡意代碼被有意地和秘密地向上游注入開源項(xiàng)目時(shí),除了植入它的人員以外,幾乎沒人會(huì)知道惡意軟件在那里。這種方法可以使對(duì)手秘密地在上游設(shè)置陷阱,一旦漏洞通過供應(yīng)鏈蔓延,然后在下游進(jìn)行攻擊。”
該公司稱,在2015年2月至2019年6月,用戶報(bào)告了216起這種供應(yīng)鏈攻擊,但從2019年7月至2020年5月,有929起攻擊被記錄在案,因此這已成為一種非常流行的攻擊媒介。
對(duì)于黑客利用組件中已知漏洞的傳統(tǒng)攻擊而言,很多組織似乎沒有足夠的準(zhǔn)備能夠迅速地做出響應(yīng)。就Apache Struts2漏洞最終導(dǎo)致2017年的Equifax公司的泄漏事件來說,網(wǎng)絡(luò)攻擊者在這個(gè)漏洞公開之后的72小時(shí)內(nèi)便開始利用該漏洞進(jìn)行攻擊。最近,SaltStack公司報(bào)告的一個(gè)漏洞在公開后的三天內(nèi)也被利用,導(dǎo)致許多組織措手不及。
Sonatype公司對(duì)679位軟件開發(fā)專業(yè)人員的調(diào)查表明,只有17%的組織在漏洞公開披露一天之后才得知。三分之一的組織在一周內(nèi)得知,而將近一半的組織在一周之后得知。此外,大約一半的組織在了解到這一漏洞之后在一個(gè)多星期之后才對(duì)漏洞進(jìn)行響應(yīng),其中一半的組織花費(fèi)一個(gè)多月的時(shí)間。
開源組件的可用性和使用量在逐年增加。在過去的一年中,JavaScript社區(qū)引入了50多萬個(gè)新組件版本,將npm目錄推至130萬個(gè)軟件包。直到今年5月,開發(fā)人員從npm下載的軟件包達(dá)到860億次。Sonatype公司預(yù)計(jì)到今年年底,這一數(shù)字將達(dá)到1萬億次。令人擔(dān)憂的是,達(dá)姆施塔特大學(xué)去年發(fā)布的研究報(bào)告表明,所有npm軟件包中將近40%包含或依賴具有已知漏洞的代碼,而npm軟件包中的66%漏洞仍未修復(fù)。
在Java生態(tài)系統(tǒng)中,開發(fā)人員在2019年從Maven中央存儲(chǔ)庫(kù)中下載的開源軟件組件達(dá)到2,260億次,與2018年相比增長(zhǎng)了55%。根據(jù)2020年的統(tǒng)計(jì)數(shù)據(jù),Sonatype公司估計(jì),Java組件下載量每年將達(dá)到3,760億次。該公司維護(hù)中央存儲(chǔ)庫(kù),并對(duì)數(shù)據(jù)有深刻見解,該公司報(bào)告說,10%的下載是針對(duì)具有已知漏洞的組件進(jìn)行的。
對(duì)1,700個(gè)企業(yè)應(yīng)用程序的進(jìn)一步分析表明,它們平均包含135個(gè)第三方軟件組件,其中90%是開源的。這些開源組件中的11%至少具有一個(gè)漏洞,但是應(yīng)用程序平均從這些組件繼承了38個(gè)已知漏洞。而由2,000到4,000個(gè)開源組件組合而成的應(yīng)用程序并不少見,這凸顯了開源生態(tài)系統(tǒng)在現(xiàn)代軟件開發(fā)中的主要作用。
在.NET生態(tài)系統(tǒng)和微服務(wù)生態(tài)系統(tǒng)中觀察到了類似的組件使用趨勢(shì),其中DockerHub在過去一年中收到了2.2個(gè)容器映像,并且有望在今年看到開發(fā)人員提出960億個(gè)映像拉取請(qǐng)求。公開報(bào)告的供應(yīng)鏈攻擊涉及托管在DockerHub上的惡意容器映像,并且存在配置錯(cuò)誤或漏洞的映像的可能性也很高。
基礎(chǔ)設(shè)施即代碼需要進(jìn)行修正
DevOps運(yùn)動(dòng)從根本上改變了軟件開發(fā),并使得新的微服務(wù)架構(gòu)成為可能,在這種架構(gòu)中,傳統(tǒng)的整體應(yīng)用程序被分解為在各自容器中運(yùn)行的單獨(dú)維護(hù)的服務(wù)。應(yīng)用程序不再僅包含其功能所需的代碼,還包含指示其在云平臺(tái)上的部署并自動(dòng)進(jìn)行部署的配置文件,以及所需的資源。通過DevSecOps,開發(fā)團(tuán)隊(duì)不僅負(fù)責(zé)編寫安全代碼,還負(fù)責(zé)部署安全基礎(chǔ)設(shè)施。
云計(jì)算安全廠商Accurics公司在最近發(fā)布一份調(diào)查報(bào)告中稱,該公司運(yùn)營(yíng)著一個(gè)平臺(tái),可以檢測(cè)基礎(chǔ)設(shè)施中易受攻擊的配置,例如代碼模板和云部署,41%的組織在其配置中擁有硬編碼密鑰,這些密鑰用于提供計(jì)算資源,89%的部署配置了資源,并且運(yùn)行時(shí)使用了過度寬松的身份和訪問管理(IAM)策略,而且?guī)缀跛胁呗远加绣e(cuò)誤配置的路由規(guī)則。
該公司表示, CenturyLink公司在2019年9月發(fā)生的泄露事件中泄露了280萬條客戶記錄;Imperva公司在2019年8月發(fā)生的泄露事件中,泄露了包含電子郵件、哈希密碼的數(shù)據(jù)庫(kù)快照;Capital One公司在2019年7月發(fā)生的泄露事件影響了1億以上的美國(guó)人,這是利用其中一個(gè)漏洞進(jìn)行攻擊造成的。
Accurics公司首席技術(shù)官Om Moolchandani說:“策略即代碼的實(shí)施應(yīng)確保采用最佳實(shí)踐,如加密數(shù)據(jù)庫(kù)、旋轉(zhuǎn)訪問密鑰和實(shí)現(xiàn)多因素身份驗(yàn)證。然而,自動(dòng)威脅建模對(duì)于確定權(quán)限增加和路由更改等是否會(huì)在云部署中創(chuàng)建破壞路徑也是必要的。因此,當(dāng)在開發(fā)過程中定義基礎(chǔ)設(shè)施(基礎(chǔ)設(shè)施即代碼)時(shí),組織必須將策略作為代碼,安全性作為代碼進(jìn)行擴(kuò)充。”
他表示,一種稱為“代碼修復(fù)”的新實(shí)踐正在興起,安全工具不僅檢查云配置模板或正在運(yùn)行的部署本身的漏洞,還會(huì)生成自動(dòng)修復(fù)問題所需的代碼,并將其提交給開發(fā)人員。這可能會(huì)縮短組織進(jìn)行補(bǔ)救的時(shí)間,這是一個(gè)主要問題,因?yàn)榈侥壳盀橹梗@一過程基本上都是人工完成的,導(dǎo)致許多問題被忽略。
在過去的幾年中,許多應(yīng)用程序和基礎(chǔ)設(shè)施安全供應(yīng)商一直在致力于重新設(shè)計(jì)他們的產(chǎn)品,以便他們能夠很好地與開發(fā)工具集成,因?yàn)殚_發(fā)人員的期望和工作方式與安全團(tuán)隊(duì)不同。許多開源工具也可用于測(cè)試云部署。
滲透測(cè)試機(jī)構(gòu)Bishop Fox公司在美國(guó)黑帽大會(huì)期間發(fā)布了一個(gè)名為Smogcloud的工具,該工具可以幫助安全工程師和云計(jì)算管理員找到他們?cè)贏WS云平臺(tái)泄露的數(shù)據(jù)資產(chǎn),其中包括面向互聯(lián)網(wǎng)的FQDN和IP、配置錯(cuò)誤或漏洞、不再使用的資產(chǎn)、當(dāng)前未監(jiān)控的服務(wù),以及其他影子IT。
版權(quán)聲明:本文為企業(yè)網(wǎng)D1Net編譯,轉(zhuǎn)載需注明出處為:企業(yè)網(wǎng)D1Net,如果不注明出處,企業(yè)網(wǎng)D1Net將保留追究其法律責(zé)任的權(quán)利。