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

前言

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

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

image.png
帮助网安学习,全套资料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即可。

image.png

发现一个问题,就以python为例,DependencyTrack解析的是requirements等方式来获取的软件清单,相比于OpenSCA-cli少了很多,比如hostScan项目中的requirements.txt文件里面的包就是17个,DependencyTrack识别到的就是17个:

image.png

而OpenSCA-cli会发现一些依赖的包:

image.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/310181.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于SpringCloud,你了解多少?

Why SpringCloud? Spring cloud 是一系列框架的有序集合。它利用 spring boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 spring boot 的开发风格做到一…

用three.js做一个3D汉诺塔游戏(下)

本文由孟智强同学原创。 接上期:《用three.js做一个3D汉诺塔游戏(上)》 在上一期,我们成功地搭建了基础的 3D 场景。在本期中,我们将对场景进行优化,使其在视觉上更加真实,并为场景中的物体添加…

蓝桥杯物联网竞赛_STM32L071_16_EEPROM

仍然是没有考过的知识点 朴素的讲就是板子中一块不会因为断电重启而导致数值初始化的一片地址 要注意的是有时候容易把板子什么写错导致板子什么地址写坏了导致程序无法烧录,这个时候记得一直按flash键烧录,烧录时会报错,点击确定&#xff0…

活动预告|NineData 创始人CEO叶正盛将参加QCon全球软件开发大会,共话AI大模型技术在数据库DevOps的实践

4月13日下午,NineData创始人&CEO叶正盛即将参加InfoQ中国主办的『QCon全球软件开发大会北京站』的技术大会。在本次技术峰会上,叶正盛将以《AI大模型技术在数据库DevOps的实践》为主题,深入剖析AI大模型技术在数据库DevOps领域的最新进展…

idea新建一个springboot项目

本文分为几个部分, 首先是在idea中新建项目, 然后是配置 项目的目录(新建controller、service、dao等), 然后是自定义的一些工具类(比如启动后打印地址等)。 1.、创建篇 新建项目&#xff0…

概念解读稳定性保障

什么是稳定 百度百科关于稳定的定义: “稳恒固定;没有变动。” 很明显这里的“稳定”是相对的,通常会有参照物,例如 A 车和 B 车保持相同速度同方向行驶,达到相对平衡相对稳定的状态。 那么软件质量的稳定是指什么…

24年做抖音选什么赛道?比起带货,我更倾向你们做这个

我是王路飞。 谁能想到在18年的夏天给无数人留下美好回忆的抖音,如今已经成为了谁也绕不开的创业平台呢? 注意,我说的是“绕不开”。 毕竟在流量为王的时代,流量在哪,我们就要在哪。 而如今,流量全都集…

【热门话题】PyTorch:深度学习领域的强大工具

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 PyTorch:深度学习领域的强大工具一、PyTorch概述二、PyTorch核心特性…

EasyRecovery数据恢复软件2024百度云网盘下载链接

EasyRecovery数据恢复软件是一款功能强大的数据恢复工具,它能够帮助用户从各种存储设备中恢复丢失或误删除的文件数据。无论是由于意外删除、格式化、病毒攻击还是其他原因导致的数据丢失,EasyRecovery都能提供有效的解决方案。 该软件支持多种存储介质…

【攻防世界】mfw(.git文件泄露)

首先进入题目环境,检查页面、页面源代码、以及URL: 发现页面无异常。 使用 dirsearch 扫描网站,检查是否存在可访问的文件或者文件泄露: 发现 可访问界面/templates/ 以及 .git文件泄露,故使用 GItHack 来查看泄露的 …

有图片转成PDF文件格式的方法吗?分享图片转成PDF文件的方法

将图片转换为PDF文件是一个相对简单的过程,但也需要一定的步骤和注意事项。下面,我将详细介绍如何将图片转换为PDF文件,包括所需的工具、步骤以及可能遇到的问题和解决方案。 首先,我们需要一个能够将图片转换为PDF文件的工具。市…

docker-compose yaml指定具体容器网桥ip网段subnet;docker创建即指定subnet;docker取消自启动

1、docker-compose yaml指定具体容器网桥ip网段subnet docker-compose 启动yaml有时可能的容器网段与宿主机的ip冲突导致宿主机上不了网,这时候可以更改yaml指定subnet 宿主机内网一般是192**,这时候容器可以指定172* version: 3.9 services:coredns:…

爬虫 | 垃圾处理设施数据的获取与保存

Hi,大家好,我是半亩花海。本项目通过发送网络请求(requests),从指定的 URL 获取垃圾处理设施的相关数据,并将数据保存到 CSV 文件中,以供后续分析和利用。 目录 一、项目结构 二、详细说明 三…

string类——常用函数模拟(C++)

本篇中,将会详细的介绍 Cpp 中 string 的使用,以及 string 类常用函数的模拟实现。对于 string 的内置函数来说,存在很多很冗余的用法,很多函数都有很多种用法,本篇将会讲解常用内置函数的常用用法,模拟函数…

【御控物联】 Java JSON结构转换(2):对象To对象——属性重组

文章目录 一、JSON结构转换是什么?二、案例之《JSON对象 To JSON对象》三、代码实现四、在线转换工具五、技术资料 一、JSON结构转换是什么? JSON结构转换指的是将一个JSON对象或JSON数组按照一定规则进行重组、筛选、映射或转换,生成新的JS…

抽奖系统设计

如何设计一个百万级用户的抽奖系统? - 掘金 如何设计百万人抽奖系统…… 在实现抽奖逻辑时,Redis 提供了多种数据结构,选择哪种数据结构取决于具体的抽奖规则和需求。以下是一些常见场景下推荐使用的Redis数据结构: 无序且唯一奖…

RabbitMQ消息模型之Direct消息模型

Direct消息模型 * 路由模型: * 一个交换机可以绑定多个队列 * 生产者给交换机发送消息时,需要指定消息的路由键 * 消费者绑定队列到交换机时,需要指定所需要消费的信息的路由键 * 交换机会根据消息的路由键将消息转发到对应的队…

LabVIEW和2D激光扫描的受电弓滑板磨耗精确测量

LabVIEW和2D激光扫描的受电弓滑板磨耗精确测量 在电气化铁路运输中,受电弓滑板的健康状况对于保障列车安全行驶至关重要。受电弓滑板作为连接电网与列车的直接介质,其磨损情况直接影响到电能的有效传输及列车的稳定运行。精确、快速测量受电弓滑板磨损情…

数据接口测试工具 Postman 介绍!

此文介绍好用的数据接口测试工具 Postman,能帮助您方便、快速、统一地管理项目中使用以及测试的数据接口。 1. Postman 简介 Postman 一款非常流行的 API 调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如 Jmeter…

算法:双指针

算法:双指针 双指针快慢指针对撞指针总结 双指针 LeetCode 283.移动零 以上题目要求我们把所有0移动到数组的末尾,也就是说,我们要把数组转化为以下状态: [ 非0区域 ] [ 0区域 ] 像这种把一个数组划分为多个区域的题型&#xff0…