DUICUO

Google によるオープンソースの Rust Crate のレビューにより、Rust 開発者がソースコードのセキュリティを検証するのに役立つことが明らかになりました。

5月25日、信頼性と効率性に優れたソフトウェア構築を目的とした最新のシステム言語であるRustを採用しているGoogleが、Rust Crateのレビュー結果をGitHubで公開したと報じられました。開発者は、このレビュー結果を自身のプロジェクトにインポートすることで、使用しているRust Crateの特性を実証することができます。

▲画像出典:Google Open Source Blog

Rustコミュニティには、開発者が独自のクレートを公開できるCrates.ioというサービスがあります。開発者はCrates.ioを使用して、他者が開発したクレートをダウンロードして使用することもできます。しかし、サードパーティ製のコードには必ず一定のリスクが伴います。ローカルコンパイラレベルでは、クレートに対する要件は、悪意のあるコードを含まないこと、プライバシーを侵害しないこと、データ漏洩を起こさないこと、マルウェアをインストールしないことなど、単純なものかもしれません。しかし、クライアント側にデプロイされるコードは、メモリ安全性の問題がないこと、一連の標準規格や仕様に準拠していること、新しい暗号化技術を使用していることなど、より厳しい要件を満たす必要があります。

そのため、新しいプロジェクトが開始されると、開発チームのメンバーは、セキュリティ、正確性、テストなどの基準に基づいてソースコードを徹底的にレビューします。複数の異なるプロジェクトが同じクレートをレビューすると、作業の重複につながる可能性があります。そのため、重複作業を排除し、セキュリティを検証するために、Google社内プロジェクトでは、新しいクレートを使用する前に必ず徹底的なレビューを実施します。

サードパーティの開発者は、プロジェクトで使用されるコードを個別にレビューする際に、反復的な作業にリソースを浪費する可能性があります。そのため、Googleはこうした作業の重複を回避するため、レビュー結果をオープンソース化すると発表しました。Googleはこれらのレビュー結果をサプライチェーンリポジトリに継続的に統合し、Cargo Vetを使用してプロジェクトで使用されるコードを迅速に検証しています。

開発者は、コード品質、セキュリティ、テスト要件などの属性を含むGoogleのオープンソースレビュー結果をプロジェクトにインポートし、これらのCrate属性に基づいてプロジェクトのニーズを満たしているかどうかを判断できます。ユースケースごとに要件は異なりますが、Cargo Vetでは、ユーザーは依存プロジェクトごとに要件を個別に設定できます。

GoogleのChromeOSおよびFuchsiaプロジェクトはすでにCrateレビュー結果を提供しており、他のGoogleプロジェクトも徐々に参加し、より多くのCrateをカバーする予定です。この作業は、Cargo vetの実行方法やレビュープロセスの共有など、まだ初期段階にあり、変更される可能性があります。

IT Homeからの注記:Rustプログラミング言語では、クレートはコンパイル単位です。クレートは、Rustコードやその他の関連リソースを含むバイナリファイルまたはライブラリにコンパイルでき、実行ファイルまたは関数ライブラリにコンパイルすることもできます。Rustでは、他の言語のソフトウェアパッケージと同様に、コードをクレートにカプセル化して共有することが容易です。これらのクレートは再利用可能なソフトウェアコンポーネントであるため、非常に汎用性があります。