返回更新列表
新发布Jul 24, 2026

dep-scan v6.3.0

下一代依赖漏洞扫描器,具备可达性分析、SBOM生成、许可证审计以及容器镜像扫描,用于CI/CD集成。

分享

简介

OWASP dep-scan 是一款新一代安全与风险审计工具,基于项目依赖的已知漏洞、安全公告和许可证限制进行检测。它支持本地仓库和容器镜像作为输入,非常适合与 ASPM/VM 平台集成,也适用于 CI 环境。

SBOM release

目录

功能特性

  • 扫描大多数应用代码(本地仓库、Linux 容器镜像、Kubernetes 清单和操作系统),识别已知 CVE 并进行优先级排序
  • 对多种语言执行高级可达性分析(参见下方的可达性矩阵)
  • 包漏洞扫描在本地执行,速度相当快。无需使用服务器
  • 生成包含漏洞披露报告(VDR)信息的软件物料清单(SBOM)
  • 生成通用安全公告框架(CSAF)2.0/2.1 VEX 文档(请查看 CSAF Readme)
  • 针对依赖混淆攻击和维护风险执行深度包风险审计(参见风险审计文档)

精确的可达数据流

基于完整上下文提供详细的数据流,用于识别应用程序中的可达路径和不可达路径。

Reachable Flows

可达性矩阵

dep-scan 通过四个切片器计算七种语言生态系统的可达性。如果存在漏洞的包的代码实际位于执行路径上,则标记为可达;而仅在 BOM 中声明但从未被调用的包则不会被标记。每个切片器都接入同一个共享的、以 purl 为键的可达性引擎,因此各语言的行为保持一致。可达性默认开启(--reachability-analyzer FrameworkReachability);SemanticReachability 还会额外归因已到达的服务、端点以及构建后(二进制/容器)可达性。

语言 / 生态系统可达性引擎默认分析器
Java / JVM (Groovy, Kotlin, Scala)atomFrameworkReachability
JavaScript / TypeScriptatomFrameworkReachability
PythonatomFrameworkReachability
PHPatomFrameworkReachability
RustrusiFrameworkReachability
GogolemFrameworkReachability
.NET (C#, VB, F#, R)dosaiFrameworkReachability

关于可达性与优先级排序背后的概念,请阅读可达性模型和优先级排序章节。关于各语言的完整示例,请参阅语言指南。关于合规性说明(VDR 和 CSAF VEX),请参阅 VDR 指南和 CSAF VEX 指南。

在 --profile research 下,可达性默认开启,这也是 dep-scan 在开启可达性时所使用的配置。下面的命令足以让你快速上手;各语言指南涵盖了二进制解析、后端与网络安全、还原要求,以及在仓库内测试样例上的完整示例。

Rust (rusi)。 cdxgen 运行 rusi 并持久化其报告,dep-scan 会将其转换为共享流水线,因此一个实际被调用的 crate(例如针对 RUSTSEC-2020-0071 的 time::now())会被判定为可达,而仅仅存在的 crate 则不会。请参阅 Rust 可达性指南。

depscan -i ./my-rust-app -o ./reports --profile research

Go(golem)。 dep-scan 会直接为 Go 项目调用 golem(需要 go 位于 PATH 中),当模块的函数位于被追踪的路径上时,将该模块标记为 Reachable。对于模块缓存已预热的不可信仓库,请使用 --go-analyzer-network offline。参见 Go 可达性指南。

depscan -i ./my-go-app -o ./reports -t go

.NET (dosai)。 cdxgen 运行 dosai,它会为每个包输出明确的可达性判定(PackageReachability,包含 ReachabilityKind 和 Confidence),dep-scan 将其视为权威结论,因此实际被调用的 NuGet 包(例如在受控输入上调用 JsonConvert.DeserializeObject)会被判定为 Reachable。对已还原的目录树进行扫描以获取带版本的 purl。参见 .NET 可达性指南。

depscan -i ./my-dotnet-app -o ./reports -t dotnet

JVM、JavaScript/TypeScript、Python 和 PHP(atom)。 这四个生态系统共用 atom 切片器,该切片器构建与语言无关的中间表示并执行静态切片。参见 JVM、JS、Python 和 PHP 可达性指南。

depscan --profile research -t java -i ./my-java-app -o ./reports --explain

要超越框架前置可达性,进入端点、服务和构建后层级,请传入 --reachability-analyzer SemanticReachability 并配合指向生命周期 BOM 的 --bom-dir。参见语义可达性指南。

清晰洞察 CVE

无需通读描述即可清晰理解 CVE。

带洞察的依赖树

自动优先级排序

只关注需要你处理的 CVE。

优先级排序

保持主动

通过高级漏洞与利用预测,始终领先一步。

主动措施

漏洞数据源

Linux 发行版

  • AlmaLinux
  • Debian
  • Alpine
  • Amazon Linux
  • Arch Linux
  • RHEL/CentOS
  • Rocky Linux
  • Ubuntu
  • OpenSUSE/SLES
  • Photon
  • Chainguard
  • Wolfi OS

快速开始

dep-scan 非常适合在持续集成(CI)期间使用,也可作为本地开发工具。

在本地扫描项目(Python 版本)

sudo npm install -g @cyclonedx/cdxgen
# Normal version recommended for most users (MIT)
pip install owasp-depscan

# For a full version with all extensions and server mode (Multiple Licenses)
pip install owasp-depscan[all]

这将安装两个命令:cdxgen 和 depscan。

你可以直接使用各种选项调用扫描命令。

cd <project to scan>
depscan --src $PWD --reports-dir $PWD/reports

完整选项列表如下:

分类