透过安全事件看软件组成分析SCA
前言
過去的一年里,SolarWinds和Kaseya以及Apache log4j漏洞等黑客入侵事件讓軟件供應(yīng)鏈風(fēng)險得到了更多的關(guān)注,也給人們敲響了新的警鐘:
無論是通過滲透軟件交付管道,還是利用開源組件中現(xiàn)有的漏洞,攻擊者都在利用供應(yīng)鏈控制的漏洞來危害組織及其客戶;安全漏洞威脅已然成為我們無法回避的問題。
開源軟件數(shù)量呈指數(shù)增長,導(dǎo)致我們根本無法單純通過人力對漏洞進行篩查;且龐大的開源數(shù)量群讓庫間關(guān)系越發(fā)復(fù)雜,我們很難察覺到漏洞的存在。
在快速發(fā)展的時代里,效率至上是大家默認的規(guī)則。為了盡快產(chǎn)出,研發(fā)人員必然會采用大量的開源組件和第三方庫。
與此同時,開發(fā)者更多關(guān)注自身編碼是否安全可行,卻忽略了這些“外來者”的風(fēng)險。顯而易見的是,當(dāng)?shù)谝粋€問題出現(xiàn),后續(xù)影響都會接踵而來,從而引發(fā)多米諾骨牌效應(yīng),造成難以估量的經(jīng)濟損失。
層出不窮的軟件安全事件也印證了這一點:黑客只需找到軟件供應(yīng)鏈中的一個漏洞就可以發(fā)起攻擊,開發(fā)人員卻要對整個軟件供應(yīng)鏈進行維護。一旦出現(xiàn)被攻擊的情況,留給研發(fā)人員的時間便會被壓縮。
我們必須對開源漏洞的審查完成更加自動化和高效化的要求。
為了解決開源應(yīng)用威脅這一問題,SCA技術(shù)應(yīng)運而生,這是目前對應(yīng)用程序進行安全檢測最有效的辦法之一。
SCA簡介
01??什么是SCA
SCA(Software Composition Analysis)軟件成分分析,通過檢測軟件許可證、依賴項以及代碼庫中的已知漏洞和潛在漏洞來分析開源組件,使?DevOps?能夠管理其安全風(fēng)險和許可證合規(guī)性。
簡單來說,SCA是一項通過分析軟件包含的一些信息和特征來實現(xiàn)對該軟件的識別、管理、追蹤的技術(shù)。
02??SCA發(fā)展歷程
2002年前后出現(xiàn)了第一個開源手動掃描器。盡管該掃描器對提升組織代碼庫的可見性起到了一定的效果,但同時也會導(dǎo)致很高的誤報率。這種錯誤需要人工干預(yù)來解決,與我們最初敏捷開發(fā)環(huán)境的需求相悖。
時間來到2011年,隨著技術(shù)的進步,已經(jīng)能夠?qū)崟r自動檢測漏洞和許可問題。與此同時,SCA技術(shù)與軟件開發(fā)工具(如存儲庫、構(gòu)建工具、包管理器和CI服務(wù)器)集成在一起,極大程度上幫助開發(fā)人員掌握開源管理和安全性。
在隨后的演進過程中,逐漸豐富了連續(xù)自動檢測和安全漏洞優(yōu)先級功能:當(dāng)軟件或者組件的已知漏洞較多時,通過自動識別最大風(fēng)險的安全漏洞,組織機構(gòu)可以首先解決優(yōu)先事項。
直到今天,SCA擁有能夠自動修復(fù)安全漏洞的技術(shù),可以幫助開發(fā)人員確定漏洞所在的位置,為修復(fù)提供有關(guān)影響構(gòu)建的可能性數(shù)據(jù),從而根據(jù)漏洞檢測、漏洞嚴重性、CVSS評分或發(fā)布新版本時觸發(fā)的安全漏洞策略啟動自動修復(fù)工作流,幫助研發(fā)人員不斷修補開源組件,減少已知漏洞數(shù)量,從而幫助我們遠離安全漏洞風(fēng)險。
?
03??SCA工作原理
SCA?工具可檢查包管理器、清單文件、源代碼、二進制文件、容器映像等。
其中,已識別的開源被編譯成物料清單(SBOM),然后將其與各種數(shù)據(jù)庫進行比較。但大多數(shù)情況下,SCA?掃描程序是從?CI/CD?管道中的生成目錄中讀取的,有時也會位于開發(fā)人員桌面或暫存于服務(wù)器上。
SCA可以采用多種策略識別代碼庫中來自第三方產(chǎn)品的文件,例如一個從已知軟件產(chǎn)品中的文件預(yù)先計算的哈希列表。當(dāng)掃描程序運行時,它會遍歷計算機軟件中所有文件的哈希值,并將它們與其列表進行匹配。因為每個文件的哈希值都是唯一的,所以當(dāng)哈希匹配時,程序便會知道檢測片段中裝載了哪些組件以及相關(guān)的組件信息。
此外,許多掃描程序可以解析源文件,可以方便定位囊括在自己的代碼中的專有代碼片段。
由于?SCA?掃描程序會更新其已知漏洞列表,即使代碼保持不變,每次運行掃描程序時也可能得到不同的結(jié)果。這意味著上述過程是可持續(xù)發(fā)展的,哪怕在軟件上線后的幾年時間里,人們依然可以依據(jù)經(jīng)常更新其已知漏洞列表去發(fā)現(xiàn)軟件中的缺陷,極大便利了研發(fā)人員對已發(fā)布軟件的維護。
04??SCA功能
軟件成分分析?(SCA)?是自動化對開源軟件?(Open Source Software)?使用的可見性的過程,用于風(fēng)險管理、安全性和許可證合規(guī)性。
隨著所有行業(yè)軟件中開源?(Open Source)?使用的興起,跟蹤組件的需求呈指數(shù)增長,以保護公司免受問題和開源漏洞的影響。由于大多數(shù)軟件創(chuàng)建都包括操作系統(tǒng),因此手動跟蹤很困難,需要使用自動化來掃描源代碼、二進制文件和依賴項。
SCA?解決方案允許在整個軟件供應(yīng)鏈中對開源使用進行安全風(fēng)險管理,從而使安全團隊和開發(fā)人員能夠:
- 為所有應(yīng)用創(chuàng)建準(zhǔn)確的物料清單?(SBOM)
SBOM?將描述應(yīng)用程序中包含的組件、所用組件的版本以及每個組件的許可證類型。SBOM?可幫助安全專業(yè)人員和開發(fā)人員更好地了解應(yīng)用程序中使用的組件,并深入了解潛在的安全和許可問題。
- 發(fā)現(xiàn)并跟蹤所有開源
開源軟件和許可證管理掃描工具允許公司發(fā)現(xiàn)源代碼、二進制文件、容器、構(gòu)建依賴項、子組件以及修改和開源組件中使用的所有開源。這一點尤其重要,因為公司會考慮廣泛的軟件供應(yīng)鏈,包括合作伙伴、第三方供應(yīng)商和其他開源項目。
- 制定和執(zhí)行政策
從開發(fā)人員到高級管理人員,開源軟件許可證合規(guī)性在組織內(nèi)的各個級別都至關(guān)重要。SCA?強調(diào)了制定策略、響應(yīng)許可證合規(guī)性和安全事件以及在整個公司范圍內(nèi)提供操作系統(tǒng)培訓(xùn)和知識的需求。許多解決方案能夠使審批流程自動化,并設(shè)置特定的使用和補救指南。
- 啟用主動和持續(xù)監(jiān)控
為了更好地管理工作負載并提高生產(chǎn)力,SCA?繼續(xù)監(jiān)控安全和漏洞問題,并允許用戶針對當(dāng)前和已發(fā)布產(chǎn)品中新發(fā)現(xiàn)的漏洞創(chuàng)建可操作的警報。
- 將開源代碼掃描無縫集成到構(gòu)建環(huán)境中
在?DevOps?環(huán)境中集成,以便掃描代碼并識別構(gòu)建環(huán)境中的依賴項。
SCA價值
01??SCA必要性
作為互聯(lián)網(wǎng)研發(fā)公司,我們很難避免使用開源軟件。但大多數(shù)開源軟件都存在漏洞,且許多開源產(chǎn)品經(jīng)過二次研發(fā)后,構(gòu)成了由多個不同組件或包組成的復(fù)雜生態(tài)系統(tǒng)。
例如,使用Linux,Apache或Node.js的公司很可能有數(shù)百甚至數(shù)千個不同的軟件包,這些軟件包不是統(tǒng)一的,每一個都有自己的許可要求。
盡管使用容易被攻擊的軟件或錯誤的許可證會造成嚴重的后果,但事實上,我們甚至不知道研發(fā)過程中使用哪些第三方軟件。
未知才是最大的風(fēng)險,誰也不知道這座沉寂的火山會在何時噴發(fā)。
為了避免安全漏洞帶來巨大的經(jīng)濟損失,我們必須進行軟件成分分析。目前無論是開源版本還是商業(yè)版本,SCA都能識別大多數(shù)第三方組件。因其能解決開源軟件所涉及的風(fēng)險,現(xiàn)已廣泛應(yīng)用于軟件研發(fā)的生命周期。
02??SCA重要性
SCA的重要性在于它提供的安全性和高效性。
手動跟蹤開源代碼理論上并非不可能,但這需要消耗不必要的人力和精力,面對當(dāng)前開源的數(shù)量絕對不是最佳的方案。
所以,隨著技術(shù)的進步,SCA技術(shù)逐漸完善自動化的高要求,以更好服務(wù)于軟件研發(fā)周期。
軟件成分分析是任何安全開發(fā)生命周期的標(biāo)準(zhǔn)基本部分。及早發(fā)現(xiàn)問題可以降低成本,提高敏捷性,使軟件更安全,并幫助開發(fā)人員學(xué)會將安全性納入其規(guī)劃和設(shè)計決策中,對于維護軟件安全起到了重要作用。
OpenSCA是懸鏡安全旗下源鑒OSS開源威脅管控產(chǎn)品的開源版本,繼承了源鑒OSS的多源SCA開源應(yīng)用安全缺陷檢測等核心能力。
OpenSCA用開源的方式做開源風(fēng)險治理,致力于做軟件供應(yīng)鏈安全的護航者,守護中國軟件供應(yīng)鏈安全。
OpenSCA的代碼會在GitHub和Gitee持續(xù)迭代,歡迎Star和PR,成為我們的開源貢獻者,也可提交問題或建議至Issues。我們會參考大家的建議不斷完善OpenSCA開源項目,敬請期待更多功能的支持。
GitHub:
https://github.com/XmirrorSecurity/OpenSCA-cli/
Gitee:
https://gitee.com/XmirrorSecurity/OpenSCA-cli/
OpenSCA官網(wǎng):
https://opensca.xmirror.cn/
關(guān)于懸鏡安全
懸鏡安全,DevSecOps敏捷安全領(lǐng)導(dǎo)者。由北京大學(xué)網(wǎng)絡(luò)安全技術(shù)研究團隊“XMIRROR”發(fā)起創(chuàng)立,致力以AI技術(shù)賦能敏捷安全,專注于DevSecOps軟件供應(yīng)鏈持續(xù)威脅一體化檢測防御。核心的DevSecOps智適應(yīng)威脅管理解決方案包括以深度學(xué)習(xí)技術(shù)為核心的威脅建模、開源治理、風(fēng)險發(fā)現(xiàn)、威脅模擬、檢測響應(yīng)等多個維度的自主創(chuàng)新產(chǎn)品及實戰(zhàn)攻防對抗為特色的政企安全服務(wù),為金融、能源、泛互聯(lián)網(wǎng)、IoT、云服務(wù)及汽車制造等行業(yè)用戶提供創(chuàng)新靈活的智適應(yīng)安全管家解決方案。更多信息請訪問懸鏡安全官網(wǎng):www.xmirror.cn
總結(jié)
以上是生活随笔為你收集整理的透过安全事件看软件组成分析SCA的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于如何把用手机查看原型
- 下一篇: html5制作当当图书榜页面,当当图书.