52 个版本
0.21.0-pre.0 | 2024 年 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 日 |
#73 在 Cargo 插件
64,770 每月下载量
用于 12 个 crate(11 个直接使用)
350KB
7.5K SLoC
RustSec: cargo audit
审计您的依赖项,以检测报告给 RustSec 咨询数据库 的安全漏洞。
要求
cargo audit
需要 Rust 1.74 或更高版本。
安装
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
截图
cargo audit fix
子命令
此工具支持一个实验性功能,可自动更新 Cargo.toml
以修复有漏洞的依赖项要求。
要启用它,请安装带有 fix
功能的 cargo audit
$ cargo install cargo-audit --locked --features=fix
安装后,运行 cargo audit fix
以自动修复 Cargo.toml
中的有漏洞的依赖项要求。
这将直接修改 Cargo.toml
文件。要执行干运行,显示将要升级的依赖项的预览,请运行 cargo audit fix
--dry-run。
cargo audit bin
子命令
运行 cargo audit bin
后跟您要审计的二进制文件路径
如果您的程序已使用 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 仓库中打开拉取请求来报告漏洞
许可
根据您选择,受以下任一许可协议的许可
- Apache License, Version 2.0 (LICENSE-APACHE 或 https://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 https://opensource.org/licenses/MIT)
。
贡献
除非您明确声明,否则您有意提交以包含在您的工作中的任何贡献都将按照上述方式双许可,不附加任何额外条款或条件。
依赖关系
~8–18MB
~256K SLoC