甲方安全建設之研發安全-SCA

合天网安实验室發表於2024-04-08

前言

大多數企業或多或少的會去採購第三方軟體,或者研發同學在開發程式碼時,可能會去使用一些好用的軟體包或者依賴包,但是如果這些包中存在惡意程式碼,又或者在安裝包時不小心打錯了字母安裝了錯誤的軟體包,則可能出現供應鏈攻擊。因此去識別採購或者自研專案中的軟體包,來保證其版本足夠新、不存在惡意程式碼是解決供應鏈的一項重要措施,而SCA(軟體成分分析)可以幫助完成這一動作。

OpenSCA-cli

下載地址:https://github.com/XmirrorSecurity/OpenSCA-cli 使用方法:首先使用了Docker的方式,快速掃描本地:docker run -ti --rm -v ${PWD}:/src opensca/opensca-cli筆者選擇了一個自身的python專案,沒發現風險:

image.png

不知道是不是Docker中沒漏洞資料庫還是Docker中的自帶的漏洞資料庫太少導致。再次嘗試使用Docker連線其SAAS雲端的方式進行掃描,發現可能是Docker內應用程式問題,導致TLS驗證失敗:

Get "https://opensca.xmirror.cn/oss-saas/api-v1/open-sca-client/aes-key?clientId=SxxxZVL&ossToken=xx-xx-xx-xx-xx": tls: failed to verify certificate: x509: certificate signed by unknown autho

反正核心都是使用opensca-cli ,因此直接使用Github下載的二進位制檔案進行了本地掃描:

 -token xe43dxxf55-xx-xx-xx-xxx -proj "" -path ${待檢測目標路徑}

雲端還是能掃出不少東西的:

image.png

DependencyTrack

下載地址:https://github.com/DependencyTrack/dependency-track參考官方文件:https://docs.dependencytrack.org/getting-started/deploy-docker/這裡使用Docker啟動,且先不使用資料庫:

curl -LO https://dependencytrack.org/docker-compose.yml
​
docker-compose up -d

根據docker-compose.yml內容,frontend前端埠是8080,訪問8080,使用admin/admin登入:

image.png

【----幫助網安學習,以下所有學習資料免費領!加vx:dctintin,備註 “部落格園” 獲取!】

 ① 網安學習成長路徑思維導圖
 ② 60+網安經典常用工具包
 ③ 100+SRC漏洞分析報告
 ④ 150+網安攻防實戰技術電子書
 ⑤ 最權威CISSP 認證考試指南+題庫
 ⑥ 超1800頁CTF實戰技巧手冊
 ⑦ 最新網安大廠面試題合集(含答案)
 ⑧ APP客戶端安全檢測指南(安卓+IOS)

這裡依然以python專案為例,使用python-sbom生成工具生成sbom:https://github.com/CycloneDX/cyclonedx-python

python -m pip install cyclonedx-bom
​
python3 -m cyclonedx_py -h
​
python3 -m cyclonedx_py  requirements -o out.json

然後到Projects->Create project->Components->Upload BOM上傳生成的BOM即可。

image.png

發現一個問題,就以python為例,DependencyTrack解析的是requirements等方式來獲取的軟體清單,相比於OpenSCA-cli少了很多,比如hostScan專案中的requirements.txt檔案裡面的包就是17個,DependencyTrack識別到的就是17個:

image.png

而OpenSCA-cli會發現一些依賴的包:

image.png

更多網安技能的線上實操練習,請點選這裡>>

相關文章