前言
大多數企業或多或少的會去採購第三方軟體,或者研發同學在開發程式碼時,可能會去使用一些好用的軟體包或者依賴包,但是如果這些包中存在惡意程式碼,又或者在安裝包時不小心打錯了字母安裝了錯誤的軟體包,則可能出現供應鏈攻擊。因此去識別採購或者自研專案中的軟體包,來保證其版本足夠新、不存在惡意程式碼是解決供應鏈的一項重要措施,而SCA(軟體成分分析)可以幫助完成這一動作。
OpenSCA-cli
下載地址:https://github.com/XmirrorSecurity/OpenSCA-cli 使用方法:首先使用了Docker的方式,快速掃描本地:docker run -ti --rm -v ${PWD}:/src opensca/opensca-cli
筆者選擇了一個自身的python專案,沒發現風險:
不知道是不是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 ${待檢測目標路徑}
雲端還是能掃出不少東西的:
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登入:
【----幫助網安學習,以下所有學習資料免費領!加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即可。
發現一個問題,就以python為例,DependencyTrack解析的是requirements
等方式來獲取的軟體清單,相比於OpenSCA-cli少了很多,比如hostScan專案中的requirements.txt
檔案裡面的包就是17個,DependencyTrack識別到的就是17個:
而OpenSCA-cli會發現一些依賴的包:
更多網安技能的線上實操練習,請點選這裡>>