52 个版本

0.21.0-pre.02024 年 7 月 30 日
0.20.1 2024 年 8 月 16 日
0.20.0 2024 年 2 月 16 日
0.18.3 2023 年 10 月 24 日
0.2.0 2017 年 3 月 6 日

#73Cargo 插件

Download history 13729/week @ 2024-05-04 16901/week @ 2024-05-11 14568/week @ 2024-05-18 13789/week @ 2024-05-25 14385/week @ 2024-06-01 15008/week @ 2024-06-08 14365/week @ 2024-06-15 13276/week @ 2024-06-22 14009/week @ 2024-06-29 14435/week @ 2024-07-06 14754/week @ 2024-07-13 16022/week @ 2024-07-20 15823/week @ 2024-07-27 15284/week @ 2024-08-03 14692/week @ 2024-08-10 16217/week @ 2024-08-17

64,770 每月下载量
用于 12 个 crate(11 个直接使用)

Apache-2.0 OR MIT

350KB
7.5K SLoC

RustSec: cargo audit

Latest Version Build Status Safety Dance MSRV Apache 2.0 OR MIT licensed Project Chat

审计您的依赖项,以检测报告给 RustSec 咨询数据库 的安全漏洞。

要求

cargo audit 需要 Rust 1.74 或更高版本。

安装

Packaging status

cargo audit 是 Cargo 的一个子命令,可以使用 cargo install 命令进行安装。

$ cargo install cargo-audit --locked

安装后,在任何 Cargo 项目的顶层运行 cargo audit 命令。

Alpine Linux

# apk add cargo-audit

Arch Linux

# pacman -S cargo-audit

MacOS

$ brew install cargo-audit

OpenBSD

# pkg_add cargo-audit

截图

Screenshot

cargo audit fix 子命令

此工具支持一个实验性功能,可自动更新 Cargo.toml 以修复有漏洞的依赖项要求。

要启用它,请安装带有 fix 功能的 cargo audit

$ cargo install cargo-audit --locked --features=fix

安装后,运行 cargo audit fix 以自动修复 Cargo.toml 中的有漏洞的依赖项要求。

Screenshot

这将直接修改 Cargo.toml 文件。要执行干运行,显示将要升级的依赖项的预览,请运行 cargo audit fix --dry-run

cargo audit bin 子命令

运行 cargo audit bin 后跟您要审计的二进制文件路径

Screenshot

如果您的程序已使用 cargo auditable 编译,审计将非常准确,因为所有必要的信息都已嵌入编译的二进制文件中。

对于未使用 cargo auditable 编译的二进制文件,它将通过解析恐慌信息恢复依赖列表的一部分。这将错过任何嵌入的C代码(例如OpenSSL)以及大约一半的Rust依赖项,因为Rust编译器非常擅长删除不必要的恐慌,但这总比完全没有漏洞信息要好。

忽略警告

修复漏洞的第一种也是最有效的方法是升级受影响的包。

但可能存在升级不可用且警告不会影响您的应用程序的情况。例如,警告可能涉及未使用的cargo功能或API。

在这些情况下,您可以使用 --ignore 选项忽略警告。

$ cargo audit --ignore RUSTSEC-2017-0001

此选项也可以通过 audit.toml 文件进行配置。

在Travis CI上使用 cargo audit

要自动在Travis CI的每次构建中运行 cargo audit,您可以将以下内容添加到您的 .travis.yml 文件中

language: rust
cache: cargo # cache cargo-audit once installed
before_script:
  - cargo install --force --locked cargo-audit
  - cargo generate-lockfile
script:
  - cargo audit

在GitHub Action上使用 cargo audit

请直接使用 audit-check 动作

报告漏洞

通过在 RustSec Advisory Database GitHub 仓库中打开拉取请求来报告漏洞

Report Vulnerability

许可

根据您选择,受以下任一许可协议的许可

贡献

除非您明确声明,否则您有意提交以包含在您的工作中的任何贡献都将按照上述方式双许可,不附加任何额外条款或条件。

依赖关系

~8–18MB
~256K SLoC