0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

漫談軟件成分分析(SCA)安全測(cè)試技術(shù)

科技怪授 ? 來(lái)源:科技怪授 ? 作者:科技怪授 ? 2022-10-13 09:02 ? 次閱讀

1 、什么是SCA

SCA(Software Composition Analysis)軟件成分分析,通俗的理解就是通過(guò)分析軟件包含的一些信息和特征來(lái)實(shí)現(xiàn)對(duì)該軟件的識(shí)別、管理、追蹤的技術(shù)。我們知道在當(dāng)今軟件開發(fā)中,引入開源軟件( 注1 )到你的項(xiàng)目中,避免重復(fù)造輪子是大家都再熟悉不過(guò)的了,比如開源庫(kù)中開源軟件按每年21%速度在增長(zhǎng)( 來(lái)源Forrester報(bào)告 ),開源安全威脅成為企業(yè)組織無(wú)法回避的話題,而應(yīng)用SCA技術(shù)對(duì)應(yīng)用程序進(jìn)行安全檢測(cè),實(shí)現(xiàn)安全管理是最行之有效的方法之一。

2、基本原理

  1. SCA理論上來(lái)說(shuō)是一種通用的分析方法,可以對(duì)任何開發(fā)語(yǔ)言對(duì)象進(jìn)行分析,Java、C/C++、Golang、Python、JavaScript等等,它對(duì)關(guān)注的對(duì)象是從文件層面的文件內(nèi)容,以及文件與文件之間的關(guān)聯(lián)關(guān)系以及彼此組合成目標(biāo)的過(guò)程細(xì)節(jié)。從SCA 分析的目標(biāo)程序形式上分,既可以是源代碼也可以是編譯出來(lái)的各種類型的二進(jìn)制文件,分析的數(shù)據(jù)對(duì)象對(duì)程序架構(gòu),編譯方式都是不敏感的,比如:類名稱、方法/函數(shù)名稱、常量字符串等等,不管目標(biāo)程序運(yùn)行在x86平臺(tái)還是ARM平臺(tái),不管是windows程序還是Linux程序,都是一樣的,簡(jiǎn)而言之SCA 是一種跨開發(fā)語(yǔ)言的應(yīng)用程序分析技術(shù)。
  2. SCA分析過(guò)程:首先對(duì)目標(biāo)源代碼或二進(jìn)制文件進(jìn)行解壓,并從文件中提取特征,再對(duì)特征進(jìn)行識(shí)別和分析,獲得各個(gè)部分的關(guān)系,從而獲得應(yīng)用程序的畫像—–組件名稱+版本號(hào),進(jìn)而關(guān)聯(lián)出存在的已知漏洞清單。
  3. 由于SCA分析過(guò)程中不需要把目標(biāo)程序運(yùn)行起來(lái),因此具有分析過(guò)程對(duì)外部依賴少,分析全面,快捷、效率高的優(yōu)點(diǎn);

3、業(yè)界TOP SCA工具分析

根據(jù)Forrester最新SCA報(bào)告,F(xiàn)orrester通過(guò)10個(gè)維度(注3)對(duì)不同工具進(jìn)行打分,最后根據(jù)綜合得分評(píng)選出如下業(yè)界TOP 10 SCA工具魔力象限圖):

image.png

image.png

注:圖片和數(shù)據(jù)引用來(lái)自Forrester報(bào)告

3.1工具概覽分析

  1. TOP 10 SCA工具中有5款支持軟件包(注2)開源軟件SCA檢查能力(synopsys/Sonatype/Veracode/Jfrog/GitLab),其他工具只支持源代碼SCA檢查能力。
  2. 5款支持軟件包SCA檢查工具中,對(duì)C/C++、Java、.Net語(yǔ)言支持的比較好,但對(duì)Golang、python、JavaScript語(yǔ)言支持能力偏弱,比如:synopsys支持的組件對(duì)象中前面3種語(yǔ)言占大頭90%+,相應(yīng)的檢測(cè)率也高,而Golang語(yǔ)言的組件檢出率則低很多。
  3. SCA已從主要用作對(duì)開源軟件的檢測(cè)向應(yīng)用程序的典型編碼問題檢測(cè)趨勢(shì)擴(kuò)展,比如Veracode工具,它能提供了對(duì)諸如緩沖器溢出、命令行注入、死鎖、重復(fù)釋放、整形數(shù)溢出、UAF、格式化字符串漏洞,SQL注入等典型編碼問題的檢測(cè)能力。

4、影響SCA分析準(zhǔn)確性的因素分析

  1. 從SCA原理可以知道影響分析準(zhǔn)確性的因素分兩個(gè)方面:其一是SCA工具支持組件的數(shù)量和檢測(cè)算法,其二是應(yīng)用程序引用開源軟件的方式。
  2. 因?yàn)镾CA工具是根據(jù)樣本組件特征來(lái)匹配被測(cè)程序中的特征來(lái)判斷應(yīng)用程序是否引用該組件的,因此支持組件的數(shù)量越多,那么檢測(cè)率也就越高,支持的組件數(shù)量越少,越會(huì)導(dǎo)致檢測(cè)遺漏;另外檢測(cè)算法和特征設(shè)計(jì)是否合理也直接影響到分析的準(zhǔn)確性和分析效率,不同SCA工具廠商有不同的解決方案,就好比在手機(jī)上識(shí)別指紋/人臉一樣,不同廠商識(shí)別的靈敏度和準(zhǔn)確度都不一樣。
  3. 應(yīng)用程序在引用開源軟件時(shí),不同的應(yīng)用程序即使引用同一個(gè)組件也存在引用不同的功能,引用功能的多少也各不相同,這樣帶來(lái)的結(jié)果就是在應(yīng)用程序中包含該組件的特征數(shù)量也是大小不同的,引用功能多包含的特征一般也多,引用的功能少包含的特征也少。而應(yīng)用程序包含組件特征的多少直接影響到SCA工具的檢測(cè)的準(zhǔn)確性,組件特征越少SCA工具檢測(cè)越困難,因此即使兩個(gè)不同應(yīng)用都引用了相同組件,可能一個(gè)應(yīng)用可以檢測(cè)到,另外一個(gè)應(yīng)用則無(wú)法檢測(cè)出該組件。這種場(chǎng)景對(duì)SCA工具檢測(cè)二進(jìn)制文件尤其明顯。
  4. 由于存在上述SCA分析準(zhǔn)確性,在極限情況下如果無(wú)法檢測(cè)出組件,那么也就無(wú)法知道應(yīng)用程序中是否存在該組件的漏洞了。

5、總結(jié):

  1. 不管是源代碼文件的SCA檢測(cè)工具還是二進(jìn)制文件的SCA檢測(cè)工具,他們是一種互補(bǔ)的關(guān)系,各有各的優(yōu)缺點(diǎn),比如二進(jìn)制文件的SCA檢測(cè)能發(fā)現(xiàn)構(gòu)建過(guò)程中工具鏈引入的安全問題,而源代碼的SCA則不能,SolarWinds事件就很好的說(shuō)明了這一點(diǎn)。
  2. 目前SCA工具檢測(cè)開源軟件的已知漏洞是基于組件名稱+版本號(hào)來(lái)關(guān)聯(lián)出已知漏洞的,對(duì)部分編譯場(chǎng)景(只有部分組件代碼被編譯到二進(jìn)制文件中)和patch打補(bǔ)丁場(chǎng)景(漏洞已修復(fù)),誤報(bào)率高。
  3. SCA工具掃描效率和準(zhǔn)確性是一對(duì)矛盾體,這是工具廠商需要權(quán)衡考慮的地方,而既能提升準(zhǔn)確率又不會(huì)降低掃描效率的技術(shù)永遠(yuǎn)是SCA工具廠商研究的課題和追求的目標(biāo)。

注1:Top 10開源軟件編程語(yǔ)言:JavaScript(51%)、C++(10%)、Java(7%)、Python(7%)、Ruby(%5)、Go(4%)、C(4%)、PHP(4%)、TypeScript(4%)、C#(3%)、Perl(2%)、Shell(1%)

注2:軟件包是指產(chǎn)品用來(lái)安裝、運(yùn)行的發(fā)布包,里面包含了產(chǎn)品編譯好的可以運(yùn)行的二進(jìn)制文件,比如.so/.jar/.exe/.dll/.pyc
審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 軟件
    +關(guān)注

    關(guān)注

    69

    文章

    4982

    瀏覽量

    87802
  • SCA
    SCA
    +關(guān)注

    關(guān)注

    1

    文章

    36

    瀏覽量

    11993
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4807

    瀏覽量

    68802
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    什么是熱重分析(TGA)

    什么是熱重分析(TGA)熱重分析(TGA)在專業(yè)領(lǐng)域扮演著至關(guān)重要的角色。該技術(shù)通過(guò)精確測(cè)量樣品在受控溫度變化下的質(zhì)量變化,來(lái)分析材料的熱穩(wěn)定性、分解行為和
    的頭像 發(fā)表于 01-09 11:02 ?90次閱讀
    什么是熱重<b class='flag-5'>分析</b>(TGA)

    掃描電鏡與氬離子拋光技術(shù)在樣品成分分析的作用

    功能材料分析的關(guān)鍵工具場(chǎng)發(fā)射掃描電鏡(FE-SEM)是現(xiàn)代科學(xué)研究中不可或缺的工具,尤其在功能材料分析、微納結(jié)構(gòu)觀測(cè)以及結(jié)構(gòu)組分分析等領(lǐng)域。高分辨場(chǎng)發(fā)射掃描電鏡的優(yōu)勢(shì)與傳統(tǒng)的掃描電鏡相比,高分辨場(chǎng)
    的頭像 發(fā)表于 12-31 11:57 ?121次閱讀
    掃描電鏡與氬離子拋光<b class='flag-5'>技術(shù)</b>在樣品<b class='flag-5'>成分分析</b>的作用

    使用Phase Lab鎳基動(dòng)力學(xué)數(shù)據(jù)庫(kù)計(jì)算多組分合金的成分分布曲線

    鎳基動(dòng)力學(xué)數(shù)據(jù)庫(kù) 計(jì)算多組分合金的成分分布曲線 ? ? ?眾所周知,擴(kuò)散是固體材料中的一個(gè)重要現(xiàn)象,是固相中唯一的物質(zhì)遷移方式,廣泛存在于材料的制備和使用過(guò)程中,如熱處理中的相變、動(dòng)態(tài)回復(fù)再結(jié)晶
    的頭像 發(fā)表于 12-13 15:40 ?750次閱讀
    使用Phase Lab鎳基動(dòng)力學(xué)數(shù)據(jù)庫(kù)計(jì)算多組分合金的<b class='flag-5'>成分分</b>布曲線

    電池(包級(jí))測(cè)試系統(tǒng)的技術(shù)原理和應(yīng)用

    原理以及數(shù)據(jù)采集與分析技術(shù)。 電化學(xué)原理: 通過(guò)模擬電池的充放電過(guò)程,測(cè)試系統(tǒng)可以評(píng)估電池的電化學(xué)性能,如電池容量、內(nèi)阻、開路電壓、循環(huán)壽命等。 這些測(cè)試有助于了解電池在不同條件下的
    發(fā)表于 12-09 15:40

    導(dǎo)航分析儀的技術(shù)原理和應(yīng)用場(chǎng)景

      導(dǎo)航分析儀的技術(shù)原理  信號(hào)接收與處理:信號(hào)接收:導(dǎo)航分析儀能夠接收來(lái)自導(dǎo)航衛(wèi)星、地面導(dǎo)航基站等發(fā)射的導(dǎo)航信號(hào)。這些信號(hào)包含了衛(wèi)星的位置、時(shí)間等信息,以及地面基站的相關(guān)導(dǎo)航指引信息。例如
    發(fā)表于 11-19 15:13

    LED的TEM分析

    每一項(xiàng)測(cè)試結(jié)果的準(zhǔn)確性和可靠性。不同類型的芯片結(jié)構(gòu)在工藝設(shè)計(jì)上有所不同,金屬電極與外延各層成分分析與厚度測(cè)量常常需要通過(guò)TEM分析才能獲得更加精確的信息。電極結(jié)構(gòu)是
    的頭像 發(fā)表于 11-15 11:11 ?206次閱讀
    LED的TEM<b class='flag-5'>分析</b>

    Simcenter Testlab測(cè)試分析軟件

    SimcenterTestlabSimcenterTestlab是一個(gè)將數(shù)據(jù)采集與測(cè)試分析工具相結(jié)合的集成式解決方案,能夠有效提高測(cè)試效率并提供更可靠的結(jié)果。SimcenterTestlab
    的頭像 發(fā)表于 11-12 16:10 ?349次閱讀
    Simcenter Testlab<b class='flag-5'>測(cè)試</b><b class='flag-5'>分析</b><b class='flag-5'>軟件</b>

    什么是成分分析

    解析成分分析技術(shù)成分分析技術(shù)涵蓋了多種科學(xué)方法,用于精確地鑒定和測(cè)量產(chǎn)品或樣本中的組成成分,包括它們的定性與定量
    的頭像 發(fā)表于 11-08 12:29 ?468次閱讀
    什么是<b class='flag-5'>成分分析</b>?

    陸地移動(dòng)無(wú)線電調(diào)制分析儀的技術(shù)原理和應(yīng)用場(chǎng)景

    系統(tǒng)中的傳輸情況,確保列車之間的通信安全。 現(xiàn)場(chǎng)維護(hù)和技術(shù)支持:對(duì)于數(shù)字集群通信(LMR)和專業(yè)移動(dòng)射頻(PMR)技術(shù)人員來(lái)說(shuō),陸地移動(dòng)無(wú)線電調(diào)制分析儀是現(xiàn)場(chǎng)維護(hù)和
    發(fā)表于 11-05 14:28

    參數(shù)分析儀的技術(shù)原理和應(yīng)用場(chǎng)景

    儀,如硬度測(cè)試儀,通過(guò)施加一定的壓力于樣品表面,然后測(cè)量樣品的變形或恢復(fù)程度來(lái)評(píng)估其力學(xué)性能。這種測(cè)試通常基于壓入法或劃痕法等測(cè)量技術(shù)。 傳感器技術(shù): 現(xiàn)代參數(shù)
    發(fā)表于 10-17 14:42

    鑒源論壇丨軌交軟件測(cè)試技術(shù)詳述

    作者 |劉艷青 上??匕?b class='flag-5'>安全測(cè)評(píng)部測(cè)試經(jīng)理 版塊 |鑒源論壇 · 觀通 社群 |添加微信號(hào)“TICPShanghai”加入“上??匕?1fusa安全社區(qū)” 01 集成測(cè)試
    的頭像 發(fā)表于 05-14 16:38 ?360次閱讀
    鑒源論壇丨軌交<b class='flag-5'>軟件</b><b class='flag-5'>測(cè)試</b><b class='flag-5'>技術(shù)</b>詳述

    國(guó)產(chǎn)化自動(dòng)測(cè)試軟件ATECLOUD提供于研發(fā)、生產(chǎn)測(cè)試方案

    國(guó)產(chǎn)軟件的發(fā)展對(duì)于減少對(duì)外依賴、維護(hù)國(guó)家信息安全、促進(jìn)經(jīng)濟(jì)社會(huì)發(fā)展具有重要作用。ATECLOUD的研發(fā)和應(yīng)用,能夠在確保測(cè)試準(zhǔn)確性和高效性的同時(shí),保障技術(shù)數(shù)據(jù)的
    的頭像 發(fā)表于 03-13 14:09 ?746次閱讀
    國(guó)產(chǎn)化自動(dòng)<b class='flag-5'>測(cè)試</b><b class='flag-5'>軟件</b>ATECLOUD提供于研發(fā)、生產(chǎn)<b class='flag-5'>測(cè)試</b>方案

    首樣免費(fèi)掃描電鏡SEM-EDS測(cè)試分析【博仕檢測(cè)】

    ?形貌觀察,鍍層厚度測(cè)量,錫須長(zhǎng)度測(cè)量等; 材料微觀結(jié)構(gòu)觀察,如金屬材料的晶粒及晶界分析, 鑄鐵材料石墨形態(tài)分析、鋼鐵材料的金相觀察, 納米材料分析等; 區(qū)成分分析,利用電子束與物質(zhì)作
    發(fā)表于 03-01 18:59

    知語(yǔ)云全景監(jiān)測(cè)技術(shù):現(xiàn)代安全防護(hù)的全面解決方案

    是一種先進(jìn)的安全防護(hù)手段,它集成了大數(shù)據(jù)分析、人工智能、云計(jì)算等尖端技術(shù),能夠?qū)崟r(shí)監(jiān)測(cè)網(wǎng)絡(luò)環(huán)境中的各種安全風(fēng)險(xiǎn),為企業(yè)和個(gè)人的數(shù)據(jù)安全提供堅(jiān)
    發(fā)表于 02-23 16:40