Googleは、オープンソースプロジェクトの脆弱性をトリアージする作業を支援し、メンテナーやオープンソースのコンシューマーを手助けするための脆弱性データベースを提供するサイトである「Open Source Vulnerability」(OSV)を立ち上げた(ここで言う「コンシューマー(consumer)」とは、あるオープンソースソフトウェアに依存する別のソフトウェアや、そのソフトウェアの開発者を指す)。
提供:Getty Images/iStockphoto
Googleによれば、オープンソースソフトウェアの利用者が、共通脆弱性識別子(CVE)のエントリーなどの脆弱性情報と、自分たちが利用しているパッケージのバージョンを対応付けるのは難しい作業だという。これは、既存の脆弱性情報の標準で使用されているバージョンスキームと、オープンソースの現場で実際に使用されているバージョンスキーム(通常はバージョンとタグやコミットハッシュの組み合わせ)をうまく対応付けることができないためだ。同社は「その結果、見逃された脆弱性がダウンストリームのコンシューマーに影響を与えている」と警告を発している。
OSVの目的は、新たに発見された脆弱性のトリアージに関する問題を自動化によって解決することだ。
Googleは、「オープンソースのメンテナーにとって、OSVによる自動化はトリアージの負担を減らすのに役立つ。(OSVでは)各脆弱性に対して二分探索法と影響分析の処理を自動的に行うことで、影響を受けるコミットとバージョンの範囲を正確に特定している」と説明している。
「同様に、メンテナーが脆弱性を修正する際に、情報公開に必要なプロセスに加えて、ダウンストリームのコンシューマーのために全てのブランチの影響を受けるバージョンやコミットの正確なリストを作成するには時間が掛かる。残念ながら、多くのオープンソースプロジェクトはリソース不足でオーバーワークになっており、これには現代のインフラに必要不可欠なプロジェクトも含まれている。そのため、メンテナーが自分たちの脆弱性に関して綿密で正確な情報を作成して公開したいと思っても、それだけの余裕がない場合もある。
私たちは、オープンソースコミュニティーと協力しながらさまざまなプログラミング言語エコシステム(例:NPM、PyPI)のデータを使用して取り組みを拡大し、パッケージのメンテナーが最小限の作業で脆弱性情報を公開できるパイプラインを作り上げる予定でいる」(OSVの公開について説明したブログ記事)
Googleによれば、OSVは「どこで脆弱性が導入され、どこで修正されたかに関する正確な情報を提供することで、オープンソースソフトウェアのコンシューマーが、自分たちが影響を受けるのかどうかを正確に判断し、できる限り早くセキュリティパッチを作成するのを支援する」ことを目指しているという。
現在同サイトでフィードされている情報には、オープンソースソフトウェアのバグを調べるためにGoogleが開発したボットである「OSS-Fuzz」で作成された脆弱性情報が使用されている。OSVに登録されているバグの多くは、CかC++のコードだという。
この記事は海外Red Ventures発の記事を朝日インタラクティブが日本向けに編集したものです。