📝
依存関係の脆弱性確認:cargo auditメモ [blessed.rsシリーズ9]
概要
こちらのリストにあるものを見て書いたメモになります。
今回はcargo auditについてです。
cargo auditとは
脆弱性を持つクレートの依存関係をRustSec Advisory Databaseから見つけるツール
わかりやすい記事
install
$ cargo install cargo-audit --locked
実行
以下で実行する
$ cargo audit
何も問題が見つからなければ特に何も起こらない。
上記のリンクでは意図的に問題のあるクレートを入れて、どのように表示されるかを確認している。
脆弱性の修正
脆弱性がある部分を修正する機能を追加するには、以下のinstallが必要
$ cargo install cargo-audit --locked --features=fix
これで以下を実行することで、問題のある依存関係が修正される
$ cargo audit fix
また以下で、実際に修正を行わない、お試し実行ができる
$ cargo audit fix --dry-run
修正ができない場合(未解決)
上記の「意図的に問題のあるクレートを入れる例」だと私の環境だとcargo audit fix
で修正ができなかった
以下のようなエラーが出ていた
This usually occurs when the fixed version is not semver-compatible,
or the version range specified in yourCargo.toml
is too restrictive
Cargo.tomlは以下のようになっている。
[dependencies]
conduit-hyper = "0.2.0"
バイナリの検査
以下でバイナリの検査もできるようである。
$ cargo audit bin target/debug/test_audit
ただし、cargo auditable
でコンパイルされていないと、一部の情報からしか判断ができないようである。
一部の脆弱性を無視、tomlファイルでの設定
一部の脆弱性を無視したり、どれを無視するかをaudit.toml
で設定などができるようである
CIでの使用
CIでの使用は上記を参照
github actionsの場合はaudit-checkがあるようである。
Discussion