こんにちは、吉田行男です。今回は、「OSSの脆弱性報奨金プログラム」についてご紹介したいと思います。
Googleが、OSSプロジェクトの脆弱性を発見、報告した人に報奨金を支払う「Open Source Software Vulnerability Rewards Program」(OSS VRP:オープンソースソフトウェア脆弱性報奨金プログラム)を開始した(*1)と発表しました。
脆弱性報奨金プログラムとは
そもそも、このような脆弱性報奨金プログラムとはどのようなものなのでしょうか?一般的にはバグバウンティプログラムと呼ばれ、脆弱性もしくはバグを発見したホワイトハッカーに報奨金を支払う制度のことになります。1995年にWebブラウザNetscape Navigatorを開発していたNetscape社が、社員以外からのバグ報告に対して報奨金を支払うと表明したことがこのバグバウンティの始まり(*2)と言われています。当時のNetscape社のマーケティング担当副社長のマット・ホーナー氏は「バグを素早く発見して報告し返したユーザーに報酬を与えることで、このプログラムはNetscape Navigator 2.0の広範でオープンなレビューを促し、最高品質の製品を作り続けるのに役立つだろう。」という説明をしています。以前の記事(*3)にも書きましたが、Netscape社はMicrosoft社のInternet Explorerに対抗するためにソースコードを公開し、なおかつ「オープンソース」という言葉を使い始めた会社です。その時の発想として、ソースコードを公開することでコミュニティの力を借りるということがありました。そのような視点で見ると根本的な考え方は同じと言えるかも知れません。ちなみに当初はノベルティが景品として送付されていたようですが、その後本格的なハッキングコンテストを開催し、高額な賞金が贈られるようになりました。
Googleの取組みとは?
Googleは、10年以上前から報奨金システムを運営しており、すでに13,000件の応募に対して,3,800万ドル以上を提供していましたが、2021年8月に、サイバーセキュリティ向上のために5年間で100億ドル以上を投資する計画を打ち出しており、OSS VRPはその一環です。サプライチェーンの侵害が増加の一途をたどっている状況に対処するため、新たに追加しました。報奨金は、脆弱性の重大度とプロジェクトの重要性に応じて、100 ドルから 31,337 ドルの範囲で支払われます。詳細は、「Google Open Source Software Vulnerability Reward Program Rules(*4)」に記述されています。以下、その内容を少しご紹介したいと思います。
VRPの対象は、Googleが所有するGitHub組織(Google、Google APIs、Google Cloud Platformなど)の公開リポジトリに保存されている全てのOSSの最新バージョン(リポジトリ設定を含む)とそれらのプロジェクトと依存関係があるサードパーティーのOSSになります。ソフトウェアパッケージのセキュリティの重要な要素は、依存関係のセキュリティであるため、サード パーティの依存関係の脆弱性もこのプログラムの範囲内になっています。
対象となる脆弱性としては、まずサプライチェーンの侵害につながる脆弱性が挙げられます。ソースやビルドの整合性に影響を与える脆弱性になります。これらのサプライチェーンに関わる脆弱性には、Google OSS のソースコードや、パッケージマネージャ経由でユーザーに配布されるビルド成果物やパッケージが侵害される可能性があります。例えば、以下のようなものがあります。
- リポジトリのメインブランチ上でコードを修正・投稿する機能
- ユーザーに配布される成果物の危険につながる、ビルドおよびリリース基盤の設定における脆弱性、
- Google OSSのGitHub Actionsの設定に含まれる脆弱性
- プロジェクトの GCP ビルド環境設定の安全でない設定
- ビルド成果物を公開するためのパッケージマネージャの認証情報の開示
- 公開された成果物に対する暗号署名鍵の漏えい
次に対象となるのは、製品の脆弱性です。Google OSS を使用して構築されたソフトウェアにおいて、ユーザーデータの機密性または完全性に実質的に影響を与える製品の脆弱性を引き起こす Google OSS の設計または実装上の問題も、プログラムの範囲にも含まれます。
最後に、対象プロジェクトのセキュリティに影響を与えるが、技術的なセキュリティ脆弱性ではないため、上記のカテゴリーに当てはまらない問題になります。例えば、以下のようなものです。
- 個人プロジェクト(ドットファイルなど)に保存されている、書き込み権限を与える機密性の高い認証情報
- 一般に保存されているバックアップのクレデンシャル漏洩
- 私たちがパスワードポリシーを管理していないサードパーティ CI システムの脆弱なパスワード
- 製品に携わる開発者のセキュリティを脅かす、安全でないインストール/ソフトウェア使用説明書
プロジェクトに関連する機密性と重要性によって、OSSプロジェクトを階層化し、VRPの報酬を決めています。
<フラッグシップOSSプロジェクト>
Google が特に機密性が高いと考える厳選された Google オープンソースプロジェクトが含まれます。例えば、下記のプロジェクトが含まれています。
- Bazel
- Angular
- Golang
- Protocol buffers
- Fuchsia
<標準OSSプロジェクト>
この階層には、他の階層の基準で明示的に言及されていないすべてのソフトウェアリポジトリが含まれます。一般的に、以下の要件をすべて満たしています。
-
- リポジトリがアクティブで、コミットを受け取るためにオープンである(つまり、アーカイブ、非推奨、メンテナンスモードというラベルが貼られていない)。
- リポジトリには、格納されているソフトウェアライブラリ、フレームワーク、またはエンドユーザー製品のコード
- 一般的なパッケージマネージャのレジストリ(npmやPyPIなど)のいずれかで公開されるリポジトリからのビルドアーチファクト。
- 安定版、リリース候補版、またはレイトベータ版としてマークされたリリースされたパッケージ
下表に典型的な報酬の概要を示します。
カテゴリー | フラッグシップ OSSプロジェクト |
標準 OSSプロジェクト |
サプライチェーンの侵害 | $3,133.7 – $31,337 | $1,337 – $13,337 |
製品脆弱性 | 500ドル~7,500ドル | 101ドル~3,133.7ドル |
その他のセキュリティ問題 | $1,000 | $500 |
最終的な金額は、常に報酬委員会で決定されます。特に、以下のような異常に巧妙な脆弱性や深刻な脆弱性に対しては、より高い報酬を支払うことを決定する場合があります。①他の未発見のバグや仮想的なバグの存在によって悪用可能となる脆弱性、特殊なユーザー操作を必要とする脆弱性、その他めったに満たされない前提条件に対して低い報奨金を支払うことを決定すること。②複数の報告が非常に密接に関連しているため、1つの報酬しか正当化されないこと。
報告されたすべての脆弱性について、パネルが思いつく最も危険な攻撃シナリオを調べることで、セキュリティへの影響を評価します。報告者が提出した報告書では考慮しなかった、より影響の大きい攻撃ベクトルを発見した場合は、それに応じてスコアをアップさせます。特に巧妙で興味深い脆弱性に対しては、1,000ドル程度の小額のボーナス増額を行うこともあります。
まとめ
このようにGoogleは、OSS脆弱性報奨金プログラムを発表しましたが、多くの会社がOSSに限らず自社製品の脆弱性報奨金プログラムを導入しています。海外では、MozillaやFacebook、Yahoo!、Google、マイクロソフトなど、日本でもサイボウズやピクシブ、LINEなどが代表的な例になります。また、日本のBoostIO株式会社は、世界中のセキュリティリサーチャーへ脆弱性診断を依頼できるバグバウンティ(脆弱性報奨金制度)プラットフォーム「IssueHunt」(*5)を一般公開しています。
このような活動によって、少しでもセキュリティの向上が図られるようになることを願って、このレポートを終了したいと思います。
(*1) Announcing Google’s Open Source Software Vulnerability Rewards Program
https://security.googleblog.com/2023/08/Announcing-Googles-Open-Source-Software-Vulnerability-Rewards-Program%20.html
(*2) “NETSCAPE BUGS BOUNTY” WITH RELEASE OF NETSCAPE NAVIGATOR 2.0 BETA
https://web.archive.org/web/19970501041756/http://www101.netscape.com/newsref/pr/newsrelease48.html
(*3) そもそもOSSとは?オープンソースの歴史~草創期にあったこと
https://tech-lab.sios.jp/archives/30456
(*4) Google Open Source Software Vulnerability Reward Program Rules
https://bughunters.google.com/about/rules/6521337925468160/google-open-source-software-vulnerability-reward-program-rules
(*5) 70万人が使うOSS向け報奨金サービスIssueHunt、バグバウンティ(脆弱性報奨金制度)プラットフォームを一般公開
https://gihyo.jp/news/nr/2022/07/0801
著者:
吉田 行男
2000年ごろからメーカー系SIerにて、Linux/OSSのビジネス推進、技術検証、OSS全般の活用を目指したビジネスの立ち上げに従事。社内外でOSS活用に関する講演、執筆活動を行ってきた。2019年から独立し、さまざまな会社や団体の顧問として活動。OSSの活用やコンプライアンス管理などを支援している。