GitHubは、そのサプライチェーンセキュリティ機能にRustのサポートを追加した。その目的はあなたのプロジェクトとその依存関係に脆弱性がないことを保証することである。GitHubサプライチェーンセキュリティには、アドバイザリのデータベース、依存関係グラフアナライザー、Dependabotアラートとセキュリティ更新が含まれている。
最初のステップとして、GitHubは400を超える既知のRustの脆弱性をGitHubアドバイザリデータベースに公開した。これらの脆弱性のほとんどはRustSecから得られるものである。RustSecはRustクレートに提出されたセキュリティアドバイザリのリポジトリである。Rust Secure Codeワーキンググループによってメンテナンスされている。
RustSecは、Rust独自のセキュリティ監査ツールであるcargo audit
ですでに使用されている。GitHubは、どの程度の頻度でアドバイザリデータベースがRustSecと同期されるかについて詳細をまだ提供していない。そのため、あなたのプロジェクトでcargo audit
を実行することをお勧めする。
依存関係グラフアナライザーでは、リポジトリのCargo.tomlファイルとCargo.lockファイルを処理し、プロジェクトで使用されているすべての依存関係を一覧表示し、隠れてしまう可能性のある潜在的な脆弱性を検出する。GitHub Web UIの[インサイト]タブ内から、リポジトリの依存関係グラフを表示できる。
GitHubはまた、どのプロジェクトでも利用できるDependency Reviewアクションを提供している。これにより、依存関係に関連する変更に対してnreプルリクエストを自動的にスキャンできるようになる。新しい依存関係に脆弱性が見つかった場合、PRはブロックされる。
Dependency Reviewアクションは、新たな依存関係が脆弱性を持ち込まないようにするのに役立つ。一方でDependabotを使って、既存のすべての依存関係に脆弱性がないかどうかも確認できる。Dependabotは新しい脆弱性に対してアラートを表示し、脆弱性のあるパッケージを新しいバージョンに自動的に更新するPRを作成する。
Rust向けの依存関係グラフには現在、依存関係をGitHubリポジトリにマッピングするような、完全なメタデータは含まれていないことに注意してください。しかし、将来、拡張される予定である。