甲方安全建设之研发安全-SCA

前言

大多数企业或多或少的会去采购第三方软件,或者研发同学在开发代码时,可能会去使用一些好用的软件包或者依赖包,但是如果这些包中存在恶意代码,又或者在安装包时不小心打错了字母安装了错误的软件包,则可能出现供应链攻击。因此去识别采购或者自研项目中的软件包,来保证其版本足够新、不存在恶意代码是解决供应链的一项重要措施,而SCA(软件成分分析)可以帮助完成这一动作。

OpenSCA-cli

下载地址:github.com/XmirrorSecu... 使用方法:首先使用了Docker的方式,快速扫描本地:docker run -ti --rm -v ${PWD}:/src opensca/opensca-cli笔者选择了一个自身的python项目,没发现风险:

不知道是不是Docker中没漏洞数据库还是Docker中的自带的漏洞数据库太少导致。再次尝试使用Docker连接其SAAS云端的方式进行扫描,发现可能是Docker内应用程序问题,导致TLS验证失败:

vbnet 复制代码
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下载的二进制文件进行了本地扫描:

bash 复制代码
 -token xe43dxxf55-xx-xx-xx-xxx -proj "" -path ${待检测目标路径}

云端还是能扫出不少东西的:

DependencyTrack

下载地址:github.com/DependencyT...参考官方文档:docs.dependencytrack.org/getting-sta...这里使用Docker启动,且先不使用数据库:

arduino 复制代码
curl -LO https://dependencytrack.org/docker-compose.yml​docker-compose up -d

根据docker-compose.yml内容,frontend前端端口是8080,访问8080,使用admin/admin登录:

帮助网安学习,全套资料S信领取:

① 网安学习成长路径思维导图

② 60+网安经典常用工具包

③ 100+SRC漏洞分析报告

④ 150+网安攻防实战技术电子书

⑤ 最权威CISSP 认证考试指南+题库

⑥ 超1800页CTF实战技巧手册

⑦ 最新网安大厂面试题合集(含答案)

⑧ APP客户端安全检测指南(安卓+IOS)

这里依然以python项目为例,使用python-sbom生成工具生成sbom:github.com/CycloneDX/c...

csharp 复制代码
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会发现一些依赖的包:

相关推荐
广州华水科技11 小时前
单北斗GNSS变形监测系统在水利工程安全保障中的应用与优势分析
前端
yqcoder11 小时前
CSS 外边距重叠(Margin Collapsing):现象、原理与完美解决方案
前端·css
山楂树の12 小时前
图像标注大坑:img图片 + Canvas 叠加标注,同步放大后标注位置偏移、对不齐?详解修复方案及亚像素处理原理
前端·css·学习·canva可画
本山德彪12 小时前
我做了一个拼豆图纸生成器,把照片秒变图纸
前端
DTrader13 小时前
用TS无法实盘量化? - 实盘均线策略
前端·api
进击的夸父13 小时前
vfojs:Vue 超集架构,外壳React灵魂Vue
前端
编程老船长13 小时前
解决不同项目需要不同 Node.js 版本的问题
前端·vue.js
Wect13 小时前
LeetCode 5. 最长回文子串:DP + 中心扩展
前端·算法·typescript
漫游的渔夫13 小时前
前端开发者做 Agent:别写成一次请求,用 5 步受控循环防止 AI 乱跑
前端·人工智能·typescript
kyriewen14 小时前
Webpack vs Vite:一个是“老黄牛”,一个是“猎豹”,你选谁?
前端·webpack·vite