使用 OSV-Scanner 查找影响项目依赖项的现有漏洞。
OSV-Scanner 为OSV 数据库提供了官方支持的前端,该前端将项目的依赖项列表与影响它们的漏洞联系起来。由于 OSV.dev 数据库是开源和分布式的,因此与闭源咨询数据库和扫描仪相比,它具有多项优势:
每条公告均来自公开且权威的来源(例如RustSec 公告数据库)
任何人都可以对咨询提出改进建议,从而形成非常高质量的数据库
OSV 格式以机器可读的格式明确地存储有关受影响版本的信息,并精确映射到开发人员的软件包列表中
Language | Compatible Lockfile(s) |
---|---|
C/C++ | conan.lock C/C++ commit scanning |
Dart | pubspec.lock |
Elixir | mix.lock |
Go | go.mod |
Java | buildscript-gradle.lockfile gradle.lockfile gradle/verification-metadata.xml pom.xml * |
Javascript | package-lock.json pnpm-lock.yaml yarn.lock |
PHP | composer.lock |
Python | Pipfile.lock poetry.lock requirements.txt *pdm.lock |
R | renv.lock |
Ruby | Gemfile.lock |
Rust | Cargo.lock |
部分语言存在依赖配置详情请见:
https://google.github.io/osv-scanner/supported-languages-and-lockfiles/
安装方法:
包管理器
Windows Scoop用户可以从官方存储桶安装 osv-scanner
scoop install osv-scanner
Homebrew
brew install osv-scanner
Arch Linux
pacman -S osv-scanner
Alpine Linux
apk add osv-scanner
FreeBSD
pkg install osv-scanner
NetBSD
pkg_add osv-scanner
OpenBSD
pkg_add osv-scanner
源码安装
go install github.com/google/osv-scanner/cmd/osv-scanner@v1
这需要安装 Go 1.21.11+
使用方法
一般用例:扫描目录
osv-scanner -r /path/to/your/dir
指定 SBOM
osv-scanner --sbom=/path/to/your/sbom.spdx.json
支持使用包 URL的SPDX和CycloneDX SBOM 。根据输入文件内容和文件名自动检测格式。
扫描目录时,只会扫描符合规范文件名的 SBOM。请参阅SPDX 文件名和CycloneDX 文件名的规范。
指定锁文件
osv-scanner --lockfile=/path/to/your/package-lock.json --lockfile=/path/to/another/Cargo.lock
可以一次指定多个锁文件;您还可以指定如何解析任意文件:
osv-scanner --lockfile 'requirements.txt:/path/to/your/extra-requirements.txt'
扫描基于 Debian 的 docker 镜像包
osv-scanner --docker image_name:latest
大家可以根据使用指导手册,对不放心的开源工具进行代码及依赖包的安全性测试。
传送门:https://github.com/google/osv-scanner
原文始发于微信公众号(三沐数安):OSV-Scanner开源工具代码安全验证
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论