甲方安全建设之研发安全-SCA
前言
大多数企业或多或少的会去采购第三方软件,或者研发同学在开发代码时,可能会去使用一些好用的软件包或者依赖包,但是如果这些包中存在恶意代码,又或者在安装包时不小心打错了字母安装了错误的软件包,则可能出现供应链攻击。因此去识别采购或者自研项目中的软件包,来保证其版本足够新、不存在恶意代码是解决供应链的一项重要措施,而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.ymldocker-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:
https://github.com/CycloneDX/cyclonedx-python
python -m pip install cyclonedx-bompython3 -m cyclonedx_py -hpython3 -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会发现一些依赖的包:

相关文章:
甲方安全建设之研发安全-SCA
前言 大多数企业或多或少的会去采购第三方软件,或者研发同学在开发代码时,可能会去使用一些好用的软件包或者依赖包,但是如果这些包中存在恶意代码,又或者在安装包时不小心打错了字母安装了错误的软件包,则可能出现供…...
[html]网页结构以及常见标签用法
哎,我服了,明明之前学了html的,但时间一长我就忘记了,本来flask学到视图了,但涉及到了html我觉得还是需要重新回顾一下,,,,,, web开发技术栈一共有3门语言。分别是: HTML:译作超文本标记语言&am…...
【C语言】if语句选择题
前言 题目一: 题目二: 题目三: 题目四: 题目五: 题目六: 题目七: 题目八: 前言 关于if语句相关的选择题 题目一: 关于if语句说法正确是:( ) A .if语…...
ZLMediaKit ubantu 下编译
1、获取代码 #国内用户推荐从同步镜像网站gitee下载 git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit cd ZLMediaKit #千万不要忘记执行这句命令 git submodule update --init二、依赖库 Debian系(包括ubuntu)系统下安装依赖的方法: #除了…...
什么是stable diffusion
机器学习中的稳定扩散 在机器学习中,特别是在深度学习中,稳定扩散可能指的是通过特定的算法,例如深度学习模型,来稳定地生成数据或样本的过程。例如,一些生成模型能够稳定地从高斯分布中采样,以生成高质量的…...
C++ list链表模拟实现
目录 前言: 模拟实现: 迭代器的实现: list类功能函数实现: 初始化成空函数(empty_init): 构造函数: 拷贝构造函数: 尾插(push_back): 插入…...
LangChain - PromptTemplate
文章目录 关于 Prompt关于 PromptTemplate基本创建无变量输入1个变量多变量使用 from_template 自动推断 input_variables 聊天模板使用 from_template 方法构建使用 PromptTemplate 构建 MessagePromptTemplate使用一或多个 MessagePromptTemplates 构建一个 ChatPromptTempla…...
spring cloud gateway openfeign 联合使用产生死锁问题
spring cloud gateway openfeign 联合使用产生死锁问题,应用启动的时候阻塞卡住。 spring.cloud 版本如下 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><vers…...
【WPF应用37】WPF基本控件-DatePicker的详解与示例
WPF(Windows Presentation Foundation)是微软推出的一个用于构建桌面应用程序的图形子系统。在WPF中,DatePicker控件是一个常用的控件,用于用户选择日期。DatePicker控件提供了一个简洁直观的界面,使用户能够轻松选择日…...
GitHub教程:最新如何从GitHub上下载文件(下载单个文件或者下载整个项目文件)之详细步骤讲解(图文教程)
🐯 GitHub教程:最新如何从GitHub上下载文件(下载单个文件或者下载整个项目文件)之详细步骤讲解(图文教程) 📁 文章目录 🐯 GitHub教程:最新如何从GitHub上下载文件(下载单个文件或者下载整个项目文件)之详细步骤讲解(图…...
编译Nginx配置QUIC/HTTP3.0
1. 安装BoringSSL sudo apt update sudo apt install -y build-essential ca-certificates zlib1g-dev libpcre3 \ libpcre3-dev tar unzip libssl-dev wget curl git cmake ninja-build mercurial \ libunwind-dev pkg-configgit clone --depth1 https://github.com/google/b…...
【JavaWeb】Day38.MySQL概述——数据库设计-DQL
数据库设计——DQL 介绍 DQL英文全称是Data Query Language(数据查询语言),用来查询数据库表中的记录。 查询关键字:SELECT 查询操作是所有SQL语句当中最为常见,也是最为重要的操作。在一个正常的业务系统中,查询操作的使用频次…...
如何使用Java和RabbitMQ实现延迟队列(方式二)?
前言 昨天写了一篇关于Java和RabbitMQ使用插件实现延迟队列功能的文章,今天来讲下另外一种方式,不需要RabbitMQ的插件。 前期准备,需要安装好docker、docker-compose的运行环境。 需要安装RabbitMQ的可以看下面这篇文章。 如何使用PHP和R…...
String.valueOf() 将各种数据类型的值转换为它们的字符串
String.valueOf() 是 Java 中 String 类的一个静态方法,用于将各种数据类型的值转换为它们的字符串表示形式。这个方法在多种情况下都非常有用,特别是当你需要将非字符串类型的值转换为字符串时。 方法签名 String.valueOf() 方法有多个重载版本&#…...
2024-04-08 NO.6 Quest3 自定义交互事件
文章目录 1 交互事件——更改 Cube 颜色2 交互事件——创建 Cube2.1 非代码方式2.2 代码方式 在开始操作前,我们导入上次操作的场景,相关介绍在 《2024-04-08 NO.5 Quest3 手势追踪进行 UI 交互-CSDN博客》 文章中。 1 交互事件——更改 Cube 颜色 …...
素描进阶:深入探索如何表现石膏像的质感
素描进阶:深入探索如何表现石膏像的质感 素描,作为一种古老而经典的绘画方式,历来都被视为是艺术家们探索世界、理解形式与质感的重要工具。而在素描的过程中,如何精准地捕捉并表现物体的质感,是每位艺术家都需要深…...
flutter组件_AlertDialog
官方说明:A Material Design alert dialog. 翻译:一个材料设计警告对话框。 作者释义:显示弹窗,类似于element ui中的Dialog组件。 AlertDialog的定义 const AlertDialog({super.key,this.icon,this.iconPadding,this.iconColor,t…...
供应链领域主题:生产制造关键术语和系统
BOM(Bill of Material)物料清单 BOM(Bill of Material)物料清单,是计算机可以识别的产品结构数据文件,也是ERP的主导文件。BOM使系统识别产品结构,也是联系与沟通企业各项业务的纽带。ERP系统中…...
k8s_入门_kubelet安装
安装 在大致了解了一些k8s的基本概念之后,我们实际部署一个k8s集群,做进一步的了解 1. 裸机安装 采用三台机器,一台机器为Master(控制面板组件)两台机器为Node(工作节点) 机器的准备有两种方式…...
主干网络篇 | YOLOv5/v7 更换骨干网络之 HGNetv2 | 百度新一代超强主干网络
本改进已融入到 YOLOv5-Magic 框架。 论文地址:https://arxiv.org/abs/2304.08069 代码地址:https://github.com/PaddlePaddle/PaddleDetection 中文翻译:https://blog.csdn.net/weixin_43694096/article/details/131353118 文章目录 HGNetv2网络结构1.1 主干网络1.2 颈部…...
元宇宙中的软件开发和测试:新场景,新挑战
从二维平面到三维宇宙的范式跃迁我们正站在一个数字时代的分水岭上。元宇宙,这个融合了虚拟现实、增强现实、区块链、人工智能与物联网的复杂数字生态,正将软件测试的战场从熟悉的二维平面界面,推向一个充满无限可能的三维沉浸式宇宙。对于软…...
用Python+ddddocr搞定某税网滑块验证码,再拆解SM2/SM4/HMacSHA256加密全流程
Python实战:国密算法与滑块验证的自动化登录全解析 当开发者遇到集成了滑块验证和国密加密的复杂登录系统时,传统爬虫手段往往束手无策。本文将完整演示如何用Python构建一个从滑块识别到加密处理的自动化登录系统,重点解决SM2/SM4加密和HMac…...
【Python学习】海龟绘图(Turtle)
目录 一、教程概述 二、环境准备 2.1 安装Python(已安装可跳过) 2.2 启动海龟绘图环境 方式1:使用Python IDLE(自带编辑器) 方式2:使用命令行运行 三、海龟绘图核心概念 四、基础操作(必…...
蛋白质功能预测:从序列同源性到多模态深度学习
点击 “AladdinEdu,你的AI学习实践工作坊”,注册即送-H卡级别算力,沉浸式云原生集成开发环境,80G大显存多卡并行,按量弹性计费,教育用户更享超低价。 摘要:蛋白质功能预测是注释未知蛋白质、揭示…...
飞浆PaddleOCR实战:5分钟实现图片转文字+表格识别(Python代码可直接套用)
飞桨PaddleOCR极速入门:零基础实现高精度图片转文字与表格解析 在数字化办公和智能信息处理的大背景下,光学字符识别(OCR)技术正成为提升工作效率的利器。想象一下,当面对堆积如山的纸质文档、会议白板照片或是复杂的财…...
震惊!这几款 AI 论文生成器居然能自动匹配真实参考文献,导师都惊呆了!
还在为论文参考文献瞎编、格式错乱、找不到权威文献而熬夜秃头?普通 AI 论文工具动不动就 "文献幻觉",编出一堆查无此篇的假引用,被导师一眼戳穿,直接打回重写!2026 年实测精选,这几款真正能自动…...
Vue3+TS+Vite项目实战:5分钟搞定Mock数据接入(附完整代码)
Vue3TSVite项目实战:5分钟实现动态权限Mock系统 最近在重构后台管理系统时,遇到一个典型痛点:前端页面都开发完了,后端接口还在设计中。这种前后端进度不匹配的情况,相信每个前端开发者都深有体会。今天分享的这套Mock…...
从零构建:基于OpenCV与人体姿态分析的跌倒检测实战(附完整源码)
1. 为什么我们需要跌倒检测系统 想象一下家里的老人独自在客厅活动时突然摔倒的场景。这种意外在现实生活中并不罕见,尤其是对于行动不便的老年人群体。传统的解决方案往往依赖于佩戴式设备或紧急呼叫按钮,但这些方法要么需要用户主动操作,要…...
手把手教你用Docker一键部署encrypt-labs靶场(附国内镜像加速配置)
零基础实战:Docker快速部署encrypt-labs靶场全攻略 在网络安全学习过程中,靶场环境是必不可少的实践平台。encrypt-labs作为一个开源的网络安全实验环境,包含了从基础到进阶的各种加密与解密挑战。本文将带你从零开始,用Docker快速…...
告别锁相误差!基于DSOGI的正负序分离在Simulink中的建模与仿真全攻略
告别锁相误差!基于DSOGI的正负序分离在Simulink中的建模与仿真全攻略 电力电子系统的核心挑战之一,是如何在电网电压不平衡条件下实现精确的相位同步。去年参与某微电网项目时,我们团队曾因传统锁相环在电压跌落时产生的相位抖动损失了关键数…...
