使用Google OSV工具扫描依赖安全漏洞

39111d0ddb4b5fa4e423a1aa6d58ab5f.png


安全漏洞是软件工程化能力的试金石

2021年年底,Log4j的漏洞陆续被公开。因为该框架被大量的开源软件依赖,所以,漏洞影响面非常大。

面对这个漏洞,我们遇到的第一个问题是:如何知道我们哪些工程使用了Log4j?

在我看来,这个漏洞是企业软件工程化的一颗非常好的试金石。因为:

  1. 1. 如何第一时间了解到这个漏洞,反应这家企业的安全能力;

  2. 2. 如何第一时间能找到所有使用了Log4j的位置,体现了这家企业第三方软件依赖管理能力;

  3. 3. 替换Log4j的速度,体现企业的持续集成、持续部署的能力。

Google的开源软件安全漏洞扫描工具

今天介绍的OSC-Scanner,能加强我们第1项和第2项能力。

OSV-Scanner是Google在2022年12月13日推出的一款免费的安全扫描工具。它具有以下特点:

  1. 1. 支持多生态系统,包括:Go、PyPI、RubyGens、Linux、Maven等16个生态系统;

  2. 2. 同时支持直接依赖的扫描和间接依赖的扫描;

  3. 3. 采用标准的漏洞记录格式;

  4. 4. 从当前最大的开源软件漏洞数据库(https://osv.dev/)获取信息。这也是DenpencyTrack和Flutter安全工具的漏洞数据库。

OSV-Scanner是一款命令行工具,我们可以将它集成到我们的构建工具或者CICD Pipeline中。目前它已经被集成到Scorecard中。Scorecard是一款为开发源软件的安全健康度打分的开源软件。我们可以在Github Actions中使用它:https://github.com/ossf/scorecard/tree/main?tab=readme-ov-file#scorecard-github-action

OSV-Scanner的安装

Windows:

scoop install osv-scanner

Mac Homebrew:

brew install osv-scanner

也可以直接下载二进制包:https://github.com/google/osv-scanner/releases

具体安装文档:https://google.github.io/osv-scanner/installation/

OSV-Scanner的使用

Keras是一个使用Python编写的开源人工神经网络库。我们以它为例。命令行里运行以下命令:

./osv-scanner_1.3.6_linux_amd64 --format json keras/

af7aa85e91bf06b60033b38e20ebab71.png


输出内容说明:keras存在一个“潜在内存泄漏”的漏洞。

当拿到json结果后,我们的DevOps平台就可以进行一些告警监控的操作。

后记

osv-scanner目前需要连osv.dev,才能使用。但是,已经开放实验功能,允许用户离线使用osv-scanner。这是自建DevOps平台的福音!

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

用python画最简单的图案,用python画小猫简单代码

本篇文章给大家谈谈用python画小猫简单100行代码,以及用python画最简单的图案,希望对各位有所帮助,不要忘了收藏本站喔。 Source code download: 本文相关源码 from turtle import * #两个函数用于画心 defcurvemove():for i in range(200): …

电池充电器、监控器和控制器AD7284WBSWZ、LT8490EUKJ、LTC4162EUFD-FAD、LTC4162IUFD-LAD【电源管理】

1、AD7284WBSWZ 8通道锂离子电池监控系统 IC 64LQFP AD7284 8通道锂离子电池监控系统包括对堆叠式锂离子电池进行通用监控所需的全部功能。AD7284具有支持四到八个电池管理单元的多路复用单元电压和辅助模数转换器 (ADC) 测量通道。设计人员可以使用四个辅助ADC输入通道进行温…

lag-llama源码解读(Lag-Llama: Towards Foundation Models for Time Series Forecasting)

Lag-Llama: Towards Foundation Models for Time Series Forecasting 文章内容: 时间序列预测任务,单变量预测单变量,基于Llama大模型,在zero-shot场景下模型表现优异。创新点,引入滞后特征作为协变量来进行预测。 获得…

Power Apps 学习笔记 - IOrganizationService Interface

文章目录 1. IOrganization Interface1.1 基本介绍1.2 方法分析 2. Entity对象2.1 Constructor2.2 Properties2.3 Methods 3. 相关方法3.1 单行查询 Retrive3.2 多行查询 RetriveMultiple3.3 增加 Create3.4 删除 Delete3.5 修改 Update 1. IOrganization Interface 1.1 基本介…

rax3000m刷openwrt固件

rax3000m刷机过程(nand版本) 刷机准备文件https://www.123pan.com/s/X5m9-6Ynj.html提取码:VtBW 接线关系:路由器lan口接电脑 1.上传配置开启ssh的配置文件(登录路由器后台管理界面在找到配置管理,上传配置文件rax3…

[NCTF 2022] web题解

[NCTF 2022]calc 考点:python环境变量注入 打开题目,F12有hint 访问一下得到源码 app.route("/calc",methods[GET]) def calc():ip request.remote_addrnum request.values.get("num")log "echo {0} {1} {2}> ./tmp/log…

【Unity美术】Unity工程师对3D模型需要达到的了解【一】

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:Uni…

后端程序员React初接触1

后端程序员React初接触 学习react基础与相关库的使用学习 包括react基础 路由 组件库等等 react是用于构建用户界面的JavaScript库 发送请求获取数据处理数据操作dom呈现页面(react帮忙操作dom) 数据渲染为视图 有facebook打造并开源 解决的问题 dom操…

集群部署篇--Redis 哨兵模式

文章目录 前言一、哨兵模式介绍:1.1 介绍:1.2 工作机制: 二、哨兵模式搭建:2. 1 redis 主从搭建:2.2 setinel 集群搭建:2.2.1 配置: sentinel.conf :2.2.2 运行容器:2.2.…

jQuery日历签到插件下载

jQuery日历签到插件下载-遇见你与你分享

【MySQL】数据库之存储过程(“SQL语句的脚本“)

目录 一、什么是存储过程? 二、存储过程的作用 三、如何创建、调用、查看、删除、修改存储过程 四、存储过程的参数(输入参数,输出参数,输入输出参数) 第一种:输入参数 第二种:输出参数 …

Leetcode算法系列| 10. 正则表达式匹配

目录 1.题目2.题解C# 解法一:分段匹配法C# 解法二:回溯法C# 解法三:动态规划 1.题目 给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。 1.‘.’ 匹配任意单个字符 2.‘.’ 匹配任意单个字…

【DevOps 工具链】日志管理工具 - 22种 选型(读这一篇就够了)

文章目录 1、简述2、内容分类3、归纳对比表(排序不分先后)4、日志管理主要目的5、日志管理工具 22种 详细(排序不分先后)5.1、ManageEngine EventLog Analyzer5.1.1、简介5.1.2、效果图5.1.3、日志管理架构5.1.4、EventLog Analyz…

HarmonyOS 路由传参

本文 我们来说两个page界面间的数据传递 路由跳转 router.pushUrl 之前我们用了不少了 但是我们只用了它的第一个参数 url 其实他还有个params参数 我们第一个组件可以编写代码如下 import router from ohos.router Entry Component struct Index {build() {Row() {Column() …

交互式笔记Jupyter Notebook本地部署并实现公网远程访问内网服务器

最近,我发现了一个超级强大的人工智能学习网站。它以通俗易懂的方式呈现复杂的概念,而且内容风趣幽默。我觉得它对大家可能会有所帮助,所以我在此分享。点击这里跳转到网站。 文章目录 1.前言2.Jupyter Notebook的安装2.1 Jupyter Notebook下…

C编程指针篇----包括历年真题

一,(20年)用指针字符逆序 代码: int main() {char s[7] "monkey", * p1, * p2, c;p1 p2 s;while (*p2) p2;p2--;while (p2 > p1) {c *p1; *p1 *p2; *p2-- c; }printf("%s", s);return 0; } 运行结…

【华为机试】2023年真题B卷(python)-解密犯罪时间

一、题目 题目描述: 警察在侦破一个案件时,得到了线人给出的可能犯罪时间,形如 “HH:MM” 表示的时刻。 根据警察和线人的约定,为了隐蔽,该时间是修改过的,解密规则为: 利用当前出现过的数字&am…

jdk与cglib动态代理及原理

Spring的AOP在运行时多以jdk及cglib动态代理来实现。(作者jdk是1.8版本) 1 jdk 动态代理 Java中使用动态代理,只能对接口进行代理,不能对普通类进行代理。主要是由一个类及一个接口来实现: InvocationHandler&#…

【并发设计模式】聊聊等待唤醒机制的规范实现

在多线程编程中,其实就是分工、协作、互斥。在很多场景中,比如A执行的过程中需要同步等待另外一个线程处理的结果,这种方式下,就是一种等待唤醒的机制。本篇我们来讲述等待唤醒机制的三种实现,以及对应的应用场景。 G…

Python基础进阶3:函数和方法不是一回事

你好,我是kelly,今天分享的是Python的函数与方法的不同点。 对于Python的函数和方法是不一样的,这一点需要注意下。 一、结论 1、不存在隐式传参,所有参数都是显式传递的是函数。 2、存在隐式传参的是方法,一般指隐式…