開(kāi)源吞噬軟件
“軟件吞噬世界,開(kāi)源吞噬軟件”已經(jīng)不是一句玩笑話了。根據(jù)Synopsys發(fā)布的《2021年開(kāi)源安全和風(fēng)險(xiǎn)分析報(bào)告》顯示,98%的樣本代碼庫(kù)中包含開(kāi)源代碼,75%的樣本代碼庫(kù)是由開(kāi)源代碼組成的。上述結(jié)果是通過(guò)對(duì)1500+商業(yè)代碼庫(kù)進(jìn)行分析得出的,開(kāi)源不僅存在于大家熟知的互聯(lián)網(wǎng)領(lǐng)域,更在各個(gè)行業(yè)都有滲透,且使用率都非常高。各行業(yè)代碼庫(kù)中開(kāi)源代碼占比的詳情可查看下圖:
圖片來(lái)源:Synopsys《2021年開(kāi)源安全和風(fēng)險(xiǎn)分析報(bào)告》
開(kāi)源軟件供應(yīng)鏈安全
開(kāi)源軟件供應(yīng)鏈
供應(yīng)鏈(Supply chain)不是一個(gè)新詞,一般指產(chǎn)品的多階段生產(chǎn)過(guò)程:每個(gè)階段都從前一階段獲得投入,然后增加自己的技能和貢獻(xiàn),再為后一個(gè)階段進(jìn)行生產(chǎn)。初始階段一般是基礎(chǔ)的組件(如原材料),生產(chǎn)的最終階段是用戶或消費(fèi)者。
百度百科對(duì)于供應(yīng)鏈的定義是:供應(yīng)鏈(Supply chain)是指生產(chǎn)及流通過(guò)程中,涉及將產(chǎn)品或服務(wù)提供給最終用戶活動(dòng)的上游與下游企業(yè)所形成的網(wǎng)鏈結(jié)構(gòu)。維基百科對(duì)于軟件供應(yīng)鏈的定義是:在商業(yè)和金融中,供應(yīng)鏈?zhǔn)且粋€(gè)組織,人員,活動(dòng),信息和資源的系統(tǒng),涉及向消費(fèi)者提供產(chǎn)品或服務(wù)。供應(yīng)鏈活動(dòng)涉及將自然資源,原材料和組件轉(zhuǎn)換為成品并交付給最終客戶。
一言以蔽之:供應(yīng)鏈就是將“原材料”(不同行業(yè)的原材料不同)通過(guò)某種方式(組裝、合并等)變?yōu)橛杏玫漠a(chǎn)品,最終交付給終端用戶使用的過(guò)程中所構(gòu)建一個(gè)有效系統(tǒng)(如鏈條一樣,環(huán)環(huán)相扣)。對(duì)于軟件供應(yīng)鏈來(lái)說(shuō)就是將“原材料”(代碼)進(jìn)行加工(修改、編譯等)交付(分發(fā)或再分發(fā))給用戶的過(guò)程。根據(jù)前面所寫,開(kāi)源已經(jīng)成為了軟件行業(yè)的主旋律,已經(jīng)很少有企業(yè)或者組織從零開(kāi)始去開(kāi)發(fā)一款軟件了,幾乎都是利用開(kāi)源代碼來(lái)快速構(gòu)建軟件。所以,軟件供應(yīng)鏈也可以認(rèn)為是“開(kāi)源軟件供應(yīng)鏈”,示意圖如下:
開(kāi)源軟件供應(yīng)鏈的規(guī)模在擴(kuò)大,速度在變快。Synopsys的報(bào)告指出,四大開(kāi)源生態(tài)系統(tǒng)(Java、JavaScritp、Python以及.Net)過(guò)去一年發(fā)布了6,302,733個(gè)新版本,并且引入了723,570個(gè)新項(xiàng)目。這些社區(qū)現(xiàn)在擁有37,451,682個(gè)不同版本的組件,意味著全球的開(kāi)源供應(yīng)鏈年增長(zhǎng)率達(dá)到了20%。
開(kāi)源軟件供應(yīng)鏈攻擊
軟件攻擊一般是指企業(yè)或組織的軟件漏洞被利用,從而導(dǎo)致系統(tǒng)被破壞,進(jìn)而造成經(jīng)濟(jì)損失的行為或過(guò)程。由于開(kāi)源成了現(xiàn)代社會(huì)所需軟件的基石,所以傳統(tǒng)的軟件攻擊模式也發(fā)生了變化,已經(jīng)從集中攻擊已被公開(kāi)披露的漏洞,逐漸轉(zhuǎn)向?qū)﹂_(kāi)源軟件的攻擊,因?yàn)殚_(kāi)源軟件位于軟件供應(yīng)鏈的上游(upstream),一旦某個(gè)開(kāi)源項(xiàng)目被攻擊,則會(huì)直接影響到整個(gè)使用此開(kāi)源項(xiàng)目的下游(upstream),這就造成了非常大的攻擊面。
關(guān)于軟件供應(yīng)鏈攻擊的案例也屢見(jiàn)不鮮。Sonatype在其《2021年軟件供應(yīng)鏈現(xiàn)狀》報(bào)告中列舉了過(guò)去兩年的一些軟件供應(yīng)鏈攻擊案例,如下:
圖片來(lái)源:Sonatype《2021年軟件供應(yīng)鏈現(xiàn)狀》
這里面就有非常著名的SolarWinds。
SolarWinds是一家創(chuàng)立于1999年的美國(guó)公司,主要為企業(yè)或組織提供IT管理軟件。在2020年12月13日,F(xiàn)ireEye發(fā)布了關(guān)于SolarWinds軟件供應(yīng)鏈攻擊的公告。公告指出SolarWinds旗下的Orion軟件包中被植入了惡意代碼,這些惡意代碼會(huì)繞過(guò)SolarWinds的數(shù)字證書驗(yàn)證,然后與第三方發(fā)起通信,而且這種通信會(huì)被偽裝成Orion Improvement Program(OIP)協(xié)議,讓自己變得“合法”,從而達(dá)到隱藏自己的目的。由于SolarWinds擁有眾多客戶,甚至包括美國(guó)政府部門。在補(bǔ)救的過(guò)程中,眾多用戶不得不關(guān)閉受影響的設(shè)備。此次攻擊的波及面大、持續(xù)時(shí)間長(zhǎng),造成了很大的影響。而根據(jù)時(shí)間分析,惡意代碼是在2019年的部分Orion產(chǎn)品中被注入的,惡意代碼在結(jié)束休眠期后,開(kāi)始發(fā)動(dòng)攻擊。這也是軟件供應(yīng)鏈攻擊的一個(gè)特點(diǎn):主動(dòng)注入攻擊漏洞,而非傳統(tǒng)的針對(duì)既有漏洞進(jìn)行集中攻擊。
軟件供應(yīng)鏈攻擊在 2021 年呈現(xiàn)爆炸式增長(zhǎng),2015 年 2 月到 2019 年 6 月,216 次軟件供應(yīng)鏈攻擊事件被記錄;2019 年 7 月到 2020 年 5 月,929 次被記錄,而在過(guò)去的一年,攻擊事件爆炸式的增長(zhǎng),增長(zhǎng)率達(dá)到了恐怖的?650%。
圖片來(lái)源:Sonatype《2021年軟件供應(yīng)鏈現(xiàn)狀》
這一點(diǎn)在Anchore發(fā)布的《Anchore 2021年軟件供應(yīng)鏈安全報(bào)告》中也得到了印證。報(bào)告提到 64% 的受訪者表示在過(guò)去的12個(gè)月中受到過(guò)不同程度的軟件供應(yīng)鏈攻擊。
圖片來(lái)源:Anchore《Anchore 2021年軟件供應(yīng)鏈安全報(bào)告》?
開(kāi)源軟件供應(yīng)鏈安全
現(xiàn)狀
開(kāi)源的發(fā)展如火如荼,但是安全問(wèn)題也凸顯。Synopsys的《2021 年開(kāi)源安全和風(fēng)險(xiǎn)分析報(bào)告》提到,84%?的樣本庫(kù)中至少包含一個(gè)公開(kāi)的開(kāi)源漏洞,這一數(shù)字在上一年是 75%,而且最近三年都呈逐漸上升趨勢(shì);65%?的樣本庫(kù)存在許可證沖突的問(wèn)題,也就是意味著這些代碼存在許可證合規(guī)的風(fēng)險(xiǎn)。所以,軟件供應(yīng)鏈的安全不是很樂(lè)觀。
特點(diǎn)
-
復(fù)雜性
安全的復(fù)雜性與生俱來(lái)。不僅僅指軟件研發(fā)的復(fù)雜(涉及到的環(huán)節(jié)多,人員多,流程多),更是指在軟件成為現(xiàn)代化社會(huì)的基石后,軟件的開(kāi)發(fā)模式、交互模式、交付模式都發(fā)生了巨變。這一切都是一個(gè)復(fù)雜的生態(tài)系統(tǒng)。能理清楚整個(gè)系統(tǒng)本身就是一個(gè)很具復(fù)雜性的挑戰(zhàn),更別說(shuō)維護(hù)整個(gè)生態(tài)的安全了。
-
易忽略
安全也是最容易被忽視的,一方面,大家還沒(méi)有充分養(yǎng)成良好的安全防護(hù)意識(shí),諸如在編碼時(shí)考慮自己引入的第三方包是否是安全的,應(yīng)用程序上線時(shí),API是否做了權(quán)限驗(yàn)證,訪問(wèn)鏈接是否是 https 的(至今還能看到大量的網(wǎng)站用的是 http);二者,安全需要一定的投入,包括招聘安全專業(yè)人員,建立良好的安全防護(hù)體系,在某些角度看,是屬于“投入產(chǎn)出比”比較低的,在極力追求商業(yè)利益的今天,安全的優(yōu)先級(jí)往往靠后;再者,人都有僥幸心理:安全漏洞、攻擊怎么可能發(fā)生在自己身上。所有這些都很容易忽略安全。
-
影響廣
由于開(kāi)源成為軟件開(kāi)發(fā)的主流,很多軟件都是由開(kāi)源組件組成,很多開(kāi)源組件都是共享共用的,一旦某個(gè)組件發(fā)生了安全問(wèn)題,影響的不僅僅是某一款軟件,某一企業(yè)或組織,很有可能是眾多款軟件,眾多企業(yè)或組織??梢哉f(shuō)是一個(gè)點(diǎn)影響到了一個(gè)面。影響范圍大、影響程度深。
好處
-
降低成本
安全問(wèn)題最直接的影響就是造成直接或間接的經(jīng)濟(jì)損失。攻擊常常會(huì)導(dǎo)致文件被鎖、系統(tǒng)被毀,導(dǎo)致整個(gè)用戶服務(wù)中斷,這會(huì)造成巨大的經(jīng)濟(jì)損失。而且在供應(yīng)鏈中,如果上游遭受了攻擊,則下游受到的攻擊面可能是指數(shù)級(jí)的。正如前面的 SolarWinds 攻擊一樣,整個(gè)攻擊導(dǎo)致數(shù)萬(wàn)用戶受到影響,更可怕的是,很多用戶不知道自己所用的軟件中包含被攻擊的組件,所以不會(huì)采取補(bǔ)救措施,但是攻擊威脅一直存在。這也是軟件供應(yīng)鏈攻擊的可怕之處,軟件組件被多次分發(fā)、包裝,當(dāng)攻擊發(fā)生的時(shí)候,不能第一時(shí)間判斷出受影響的系統(tǒng)范圍,從而不能夠及時(shí)制定補(bǔ)救措施,當(dāng)潛在威脅變成真正攻擊的時(shí)候,那就是災(zāi)難。所以,保證軟件供應(yīng)鏈安全能夠降低企業(yè)的運(yùn)營(yíng)成本。
-
建立信任
安全之所以一直是老大難問(wèn)題,原因之一就是互不信任,導(dǎo)致團(tuán)隊(duì)之間、上下游存在壁壘。軟件供應(yīng)鏈安全背后的一個(gè)重要邏輯就是要有足夠的透明性,比如軟件的組件組成透明化(也是現(xiàn)在常說(shuō)的軟件物料清單Software bill of materials,也即 SOBM),軟件的交付透明化(比如可以采用CI/CD)等。足夠的透明化是能夠建立信任的。信任的建立也將打破團(tuán)隊(duì)之間、上下游之間的壁壘,讓團(tuán)隊(duì)、上下游的協(xié)作、溝通高效運(yùn)行起來(lái)。
-
加速創(chuàng)新
如果安全不再是軟件研發(fā)、交付的最大阻礙,而且有完整的手段來(lái)確保軟件研發(fā)、交付的全流程安全時(shí),軟件研發(fā)的生命周期會(huì)大大縮短,也就能夠在敏銳把握市場(chǎng)動(dòng)向的時(shí)候把軟件快速推向市場(chǎng),讓市場(chǎng)檢驗(yàn)產(chǎn)品,由于交付快速、安全,能夠帶來(lái)更大的容錯(cuò)空間,也讓創(chuàng)新成為可能。畢竟嘗試,不斷地嘗試是創(chuàng)新的重要方法。
縱深防御:極狐GitLab DevSecOps
極狐GitLab DevSecOps 是極狐GitLab 旗艦版的重要功能,包含七大主要安全功能:容器鏡像掃描、靜態(tài)應(yīng)用安全測(cè)試 (SAST)、動(dòng)態(tài)應(yīng)用安全掃描(DAST)、密鑰檢測(cè)、License合規(guī)、依賴項(xiàng)掃描以及模糊測(cè)試。安全能力覆蓋軟件開(kāi)發(fā)的全生命周期(從編碼到上線運(yùn)維),涵蓋代碼從靜態(tài)(編碼)到動(dòng)態(tài)(運(yùn)行上線)轉(zhuǎn)變過(guò)程的安全保障。所有安全功能都是開(kāi)箱即用,而且可以很容易和極狐GitLab CI/CD集成起來(lái)。這樣就能做到真正的DevSecOps:安全持續(xù)左移 & 安全持續(xù)自動(dòng)化。
極狐GitLab DevSecOps七大安全功能各有功能特性與覆蓋范圍與保障階段:
-
容器鏡像掃描:能夠?qū)?yīng)用環(huán)境中的容器鏡像進(jìn)行靜態(tài)掃描,使用開(kāi)源掃描工具(Trivy、Grype)來(lái)對(duì)各種鏡像進(jìn)行掃描。同時(shí)還能將報(bào)告嵌入MR(合并請(qǐng)求)中展示,亦或Security的Dashboard中單獨(dú)展示。關(guān)于容器鏡像掃描的使用可以查看文章極狐GitLab DevSecOps七劍下天山之容器鏡像安全掃描。
-
靜態(tài)應(yīng)用安全測(cè)試(SAST):對(duì)代碼進(jìn)行“白盒”掃描分析,找出已知的安全漏洞。并出具漏洞報(bào)告,內(nèi)容詳細(xì),一目了然。SAST屬于靜態(tài)測(cè)試,往往發(fā)生在軟件開(kāi)發(fā)生命周期的開(kāi)發(fā)或者構(gòu)建階段,越早發(fā)現(xiàn)安全問(wèn)題,修復(fù)安全問(wèn)題所需要的成本就越低。
-
動(dòng)態(tài)應(yīng)用安全掃描(DAST):屬于“黑盒”測(cè)試,模擬攻擊者的行為,來(lái)對(duì)軟件進(jìn)行模擬攻擊,以發(fā)現(xiàn)潛在的安全漏洞。極狐GitLab能夠進(jìn)行被動(dòng)和主動(dòng)掃描,并且支持HTTP憑據(jù)來(lái)測(cè)試密碼保護(hù)部分,最終出具漏洞報(bào)告。DAST往往發(fā)生在測(cè)試階段。
-
密鑰檢測(cè):密鑰檢測(cè)可掃描代碼倉(cāng)庫(kù)內(nèi)容,找出那些不應(yīng)該提交的敏感信息(諸如無(wú)意提交的Token、API key等)。同樣會(huì)出具檢測(cè)報(bào)告。密鑰檢測(cè)能夠防止被提交的敏感信息遭到泄漏,從而增加系統(tǒng)被攻擊的風(fēng)險(xiǎn)。關(guān)于容器鏡像掃描的使用可以查看文章極狐GitLab DevSecOps七劍下天山之敏感信息檢測(cè)。
-
License合規(guī):能夠搜索掃描項(xiàng)目依賴項(xiàng)中包含的相關(guān)license,展示掃描信息,并對(duì)標(biāo)記為拒絕或者新增的license進(jìn)行標(biāo)識(shí)。license是開(kāi)源的法律武器,license合規(guī)能夠讓企業(yè)或個(gè)人避免陷入開(kāi)源的法務(wù)糾紛中。
-
依賴項(xiàng)掃描:可以分析依賴項(xiàng)中的已知安全漏洞,出具漏洞報(bào)告,從而確保應(yīng)用程序中依賴項(xiàng)的安全。
-
API模糊測(cè)試:這是極狐GitLab DevSecOps特有的一項(xiàng)安全功能。掃描工具可以向API操作發(fā)送隨機(jī)輸入來(lái)觸發(fā)例外或崩潰,做進(jìn)一步的“探索性“測(cè)試,以用來(lái)防治其他手段或者工具可能遺漏的漏洞。此功能和其他手段一起使用,將大大降低漏洞漏檢的概率,盡可能的發(fā)現(xiàn)應(yīng)有的安全漏洞。
此外,極狐GitLab DevSecOps還具備以下功能:
-
和極狐GitLab CI無(wú)縫集成,構(gòu)建起完整的DevSecOps CI/CD流水線,實(shí)現(xiàn)安全的持續(xù)自動(dòng)化,任何一步出現(xiàn)安全漏洞,都會(huì)終止流水線(是否終止可自由設(shè)置),避免有漏洞的代碼部署上線;
-
漏洞報(bào)告可以嵌入在MR(Merge Request)中,給代碼審查提供更多依據(jù),進(jìn)一步保證代碼質(zhì)量;此外報(bào)告還可以在CI/CD構(gòu)建日志、Security Dashboard等地方展示,可下載,可瀏覽;
-
可以和極狐GitLab的Issue功能關(guān)聯(lián)起來(lái),當(dāng)任意階段檢測(cè)出漏洞,可以直接創(chuàng)建issue,然后可利用Epic、Roadmap等功能實(shí)現(xiàn)漏洞的管理;文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-773221.html
-
版本迭代快,功能特性多。僅僅極狐GitLab14版本就上線了諸如動(dòng)態(tài)安全掃描DAST預(yù)設(shè)置、DAST界面配置工具、項(xiàng)目級(jí)動(dòng)態(tài)安全掃描DAST和密鑰檢測(cè)掃描的執(zhí)行策略、追蹤依賴性掃描和模糊測(cè)試的使用情況等功能。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-773221.html
極狐GitLab是一個(gè)一體化的DevSecOps平臺(tái),其豐富的安全功能,可以在不同階段使用不同的安全手段來(lái)保障應(yīng)用程序的安全,進(jìn)而構(gòu)建起軟件供應(yīng)鏈安全屏障。
到了這里,關(guān)于開(kāi)源時(shí)代:極狐GitLab如何保證軟件供應(yīng)鏈安全的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!