osv-scanner使用说明

osv-scanner 2.0 使用说明

1.简介

使用 OSV-Scanner 查找影响项目依赖项的现有漏洞。

OSV-Scanner 为 OSV 数据库提供官方支持的前端,将项目的依赖项列表与影响它们的漏洞连接起来。由于 OSV.dev 数据库是开源和分布式的,与闭源咨询数据库和扫描器相比,它有几个好处:

  • 每个漏洞警报都来自一个开放和权威的来源(例如 RustSec 咨询数据库 )
  • 任何人都可以建议对漏洞警报的改进,从而产生非常高质量的数据库
  • OSV 格式以机器可读的格式明确地存储有关受影响版本的信息,该格式精确地映射到开发人员的软件包列表

GIT地址 : https://github.com/google/osv-scanner
版本 : v2.0.0

2.下载和安装

下载地址 : https://github.com/google/osv-scanner/releases/download/v2.0.0/osv-scanner_linux_amd64

上载到目标服务器上(假设上载到~/tool目录下)

chmod +x ~/tool/osv-scanner_linux_amd64
ln -s ~/tool/osv-scanner_linux_amd64 ~/tool/osv-scanner

查看版本:

~/tool/osv-scanner --version

输出如下 :

osv-scanner version: 2.0.0
commit: 0e986b49c4e7ee5aa545531c4a8908455f8a9e82
built at: 2025-03-17T01:50:11Z

3.使用

以下仅针对镜像和镜像文件,暂时没有针对源码的漏洞扫描示例

前置条件

  • 安装docker。因为需要将镜像保存为本地临时文件,因此需要使用docker命令。如果是扫描本地镜像文件,则无需安装docker

3.1 扫描本地镜像文件(即.tar文件)

~/tool/osv-scanner scan image --serve --archive prometheus-v3.1.0.tar.gz

参数说明 :

  • scan image : 扫描镜像
  • --serve : 在8000端口监听,用于查看扫描结果。比如:本机IP是192.168.132.100,则可通过http://192.168.132.100:8000来查看扫描结果.
  • --archive prometheus-v3.1.0.tar.gz : 指定本地镜像文件的路径和文件名
  • 如果想将扫描结果保存为本地文件,则执行如下命令 :
~/tool/osv-scanner scan image --archive prometheus-v3.1.0.tar.gz --format=html --output prometheus-v3.1.0.html

参数说明 :

  • --format=html : 指定输出的格式。如果没有此参数,则在屏幕上显示表格分隔的结果。除了html,还有json和markdown等格式
  • --output prometheus-v3.1.0.html : 指定存放扫描结果的文件名

上述命令的输出如下:

输出如下 :
Scanning local image tarball "prometheus-v3.1.0.tar.gz"
Starting filesystem walk for root:
End status: 70 dirs visited, 1752 inodes visited, 4 Extract calls, 16.207229ms elapsed, 16.20759ms wall time
Starting filesystem walk for root:
End status: 0 dirs visited, 1 inodes visited, 1 Extract calls, 3.736192ms elapsed, 3.736873ms wall time
Starting filesystem walk for root:
End status: 0 dirs visited, 1 inodes visited, 1 Extract calls, 603.093µs elapsed, 603.291µs wall time
Serving HTML report athttp://localhost:8000/
If you are accessing remotely, use the following SSH command:
`ssh -L local_port:destination_server_ip:8000 ssh_server_hostname`

3.2 扫描镜像

~/tool/osv-scanner scan image prom/mysqld-exporter:v0.16.0

参数说明 :

  • scan image : 扫描镜像
  • --serve : 在8000端口监听,用于查看扫描结果。比如:本机IP是192.168.132.100,则可通过http://192.168.132.100:8000来查看扫描结果
  • prom/mysqld-exporter:v0.16.0 : 指定镜像:版本号.如果指定的镜像不存在,则会通过docker命令从网上拉取

输出结果如下 :

Checking if docker image ("prom/mysqld-exporter:v0.16.0") exists locally...
Saving docker image ("prom/mysqld-exporter:v0.16.0") to temporary file...
Scanning image "prom/mysqld-exporter:v0.16.0"
Starting filesystem walk for root: 
End status: 66 dirs visited, 1743 inodes visited, 3 Extract calls, 1.940169ms elapsed, 1.94032ms wall time
Starting filesystem walk for root: 
End status: 0 dirs visited, 1 inodes visited, 1 Extract calls, 76.157µs elapsed, 76.215µs wall time

Container Scanning Result (Unknown):
Total 4 packages affected by 8 known vulnerabilities (1 Critical, 0 High, 1 Medium, 0 Low, 6 Unknown) from 1 ecosystem.
8 vulnerabilities can be fixed.


Go
╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Source:artifact:bin/mysqld_exporter                                                                            │
├─────────────────────┬───────────────────┬───────────────┬────────────┬──────────────────┬──────────────────────┤
│ PACKAGE             │ INSTALLED VERSION │ FIX AVAILABLE │ VULN COUNT │ INTRODUCED LAYER │ IN BASE IMAGE        │
├─────────────────────┼───────────────────┼───────────────┼────────────┼──────────────────┼──────────────────────┤
│ golang.org/x/crypto │ 0.28.0            │ Fix Available │          2 │ # 7 Layer        │ prom/mysqld-exporter │
│ golang.org/x/net    │ 0.29.0            │ Fix Available │          2 │ # 7 Layer        │ prom/mysqld-exporter │
│ golang.org/x/oauth2 │ 0.23.0            │ Fix Available │          1 │ # 7 Layer        │ prom/mysqld-exporter │
│ stdlib              │ 1.23.3            │ Fix Available │          3 │ # 7 Layer        │ prom/mysqld-exporter │
╰─────────────────────┴───────────────────┴───────────────┴────────────┴──────────────────┴──────────────────────╯

For the most comprehensive scan results, we recommend using the HTML output: `osv-scanner scan image --serve <image_name>`.
You can also view the full vulnerability list in your terminal with: `osv-scanner scan image --format vertical <image_name>`.

3.3 扫描源码

~/tool/osv-scanner scan --serve -r <source_directory>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值