こんにちは。マネージド&セキュリティサービス部セキュリティサービス部門の閏間です。総合リスクマネジメントサービス「WideAngle」の新サービスの企画を担当しています。 本記事では、私がセキュリティの知識・技術向上のために業務外で取り組んでいるバグバウンティプログラムについて、3回にわたって紹介します。 本記事により、バグバウンティプログラムの有効性と、脆弱性探しのおもしろさの両方を伝えられれば幸いです。
- (前編)バグバウンティプログラムの有効性について【本記事】
- (中編)脆弱性探しの魅力と調査方法について
- (後編)実際に発見した脆弱性の詳細について
なお、バグバウンティに関する記事としては、NTT Com社内バグバウンティのご紹介もありますので、ぜひそちらもご覧ください。
外部人材を巧みに活用することでシステムの安全性を高められる
バグバウンティプログラムとは日本語で脆弱性報奨金制度のことで、企業が自社のソフトウェアやシステムの脆弱性を見つけてくれた人に報奨金を支払う制度のことです。脆弱性探しをする人はバグハンターと呼ばれます。文脈によってはリサーチャー、エシカルハッカー、ホワイトハットハッカーなどと呼ばれることもあります。
バグバウンティプログラム実施の流れとしては、
- 企業が調査対象のWebアプリケーションなどについて、調査対象URLや禁止事項、報奨金額の目安、詳細な参加規約などを公開する。
- 規約に同意したバグハンターが調査を行い、脆弱性を見つけたら企業に報告する。
- 企業が報告内容を評価し、脆弱性であると認定したらバグハンターに報奨金を支払う。
というものが一般的です。
このような流れにより、世界中の多くのバグハンターにより脆弱性を見つけてもらえるチャンスが生まれるわけです。バグハンターは報奨金を得るために脆弱性を探し、企業は見つかった脆弱性に報奨金を支払うとともに脆弱性を修正する、というサイクルを通し、ソフトウェアやシステムの安全性が高まっていくことになります。
もちろん、バグバウンティプログラムという制度とは別に、世の中のセキュリティ向上などの目的のために無報酬で脆弱性探しをされている方もいます。しかし調査規模や発見される脆弱性の件数を大きくするには、報奨金というインセンティブを制度に組み込んで、大規模にバグハンターを集めるという仕掛けが効果的であろうと思います。
ちなみに、「バグバウンティ」といってもどのようなバグに対しても報奨金が支払われるわけではなく、基本的には脆弱性、つまりセキュリティに関する欠陥のみが支払いの対象となります。
バグバウンティプログラムには、従来のテスト手法にない長所がある
これまでもソフトウェアやシステムのセキュリティ強化のために、セキュア開発ライフサイクルの活動により脆弱性の作りこみを防ぎ、脆弱性診断やペネトレーションテストを通して運用フェーズへの脆弱性の流出を防ぐ、といった取り組みが行われてきました。
この上さらにバグバウンティプログラムを実施することにどのような意味があるのでしょうか?
その答えは、バグバウンティプログラムの特長にあります。バグバウンティプログラムの特長としては以下のようなものがあるといわれています。
- 多様なバックグラウンドを持つバグハンターによる調査により、ほかのテスト手法で発見できなかった脆弱性が見つかる可能性が高まる。
- 期間を区切らずに実施しやすいため、世の中のセキュリティ動向に応じたタイムリーな調査につながる可能性が高まる。
(期間を区切らずに実施しやすいことの背景には、報奨金支払いが発生するのは基本的には脆弱性が見つかったときのみで実施期間の長さには依存しないため、企業側から見た経済性の面で有利であるということが挙げられます)
上記のような特長により未知の脆弱性を発見できる可能性が高まるため、バグバウンティプログラムは実施する意義があります。ただし、バグバウンティプログラムはこれまでのテスト手法にとってかわるものではありません。あくまで、これまでのテスト手法を補完する位置づけのものです。
バグバウンティプラットフォームを活用することで、バグバウンティプログラム運営の負荷低減が可能
このようにセキュリティテストとして魅力のあるバグバウンティプログラムですが、企業がすべてを自社でまかなうのは大変です。制度の維持には、以下のように多くの業務や仕組みが必要だからです。
- 調査ルールや参加規約の策定
- バグバウンティプログラムの告知
- 報告の受け付け窓口の設置
- 報告内容の検証
- 報奨金の支払い事務
そこで、企業とバグハンターを結びつけ、制度運営の大部分を代行する、バグバウンティプラットフォームと呼ばれるサービスも誕生しています。以下が主なものです。
(私が調べた範囲では、ほかに10数件のバグバウンティプラットフォームがあります)
これらのバグバウンティプラットフォームの中には、バグバウンティプログラム運営を支援するのみならず、脆弱性開示ポリシー策定支援、ペネトレーションテストの提供、バグハンター向けトレーニングコンテンツ提供、セキュリティカンファレンス開催、といったさまざまなサービス提供を行うプラットフォームもあります。各バグバウンティプラットフォームは、バグバウンティプログラム数や登録バグハンター数を競うだけでなく、提供するサービスの違いによっても特色を出そうとしているように見受けられます。
現在はバグバウンティプログラムを自社運営するのではなく、上記のようなバグバウンティプラットフォームを利用することが一般的になっています。バグバウンティプラットフォームを活用してバグバウンティプログラムを実施することは、企業が不特定多数のバグハンターに脆弱性探しを依頼するクラウドソーシングである、という見方をすることもできます。
バグハンターから見ても、バグバウンティプログラムを個別に探す必要がないことや、脆弱性報告を統一されたインターフェースで行うことができるといったメリットがあるので、バグバウンティプラットフォームを利用する価値は高いです。CTF(Capture the Flag)を解いて一定のポイントをためたバグハンターをプライベート形式のプログラムに招待したり、バグハンターの脆弱性発見のランキングを公開したりするなど、バグバウンティプラットフォームはバグハンターのモチベーション維持にも色々と工夫しています。
バグバウンティプログラムは、拡大を続けている
本記事のタイトルでは「新たなセキュリティテスト手法」と書きましたが、実際には歴史はそれなりにあります。現在のようなバグバウンティプログラムが初めて行われたのは、1995年のネットスケープコミュニケーションズによるものです(Wikipediaより)。本記事では、日本ではバグバウンティプログラムはまだあまり広まっていないという現状を鑑みて、「新たな」という表現を使いました。
現在バグバウンティプログラムの実施は、バグバウンティプラットフォームを利用するのが主流ですが、その中でも最大の規模を誇るバグバウンティプラットフォームはHackerOneです。HackerOneは2012年に立ち上がったバグバウンティプラットフォームで、2021年の報奨金総額は3692万5156ドルにものぼります(Hacker-Powered Security Report: Industry Insights '21より)。バグバウンティプログラム数は、パブリック形式(公開されているもの)だけで約380件あります。2022年1月に4900万ドル(シリーズEラウンド)の資金調達に成功しており、会社規模としても拡大を続けているようですが、それだけバグバウンティ事業が活況ということなのでしょう。
日本では、バグバウンティプログラムを自社運営する企業としては、サイボウズ(2014年~)やSky(2022年~)があります。HackerOne上でバグバウンティプログラムを実施している日本企業も5社ほどあります。また、日本のバグバウンティプラットフォームであるBugBounty.jpでバグバウンティプログラムを実施している企業も数社あります。さらに2021年9月には、スリーシェイクがBugtyというバグバウンティ運用代行サービスをリリースしています(バグバウンティプラットフォームとしてIntigritiを利用)。
このように、日本ではバグバウンティプログラムを実施する企業の数はまだあまり多くないですが、近年少しずつ増えてきている印象を受けます。今後も増加傾向は続くのではないかと予想しています。
社内限定のバグバウンティプログラムも有効
バグバウンティプログラムの実施を検討しようとしたとき、いきなり社外のバグハンターに調査してもらうことに不安を感じる方もいらっしゃると思います。そういったケースへの1つの解として、プライベート形式でのバグバウンティプログラムというものもあります。不特定多数のバグハンターにバグバウンティプログラムを公開するのではなく、バウバウンティプラットフォーム上で一部のバグハンターのみにバグバウンティプログラムを公開し、調査してもらうという形式です。
別の方法として、社内限定でバグバウンティプログラムを実施するという方法もあります。自社の社員のみにバグバウンティプログラムを公開し、調査してもらうという方式です。この場合は、バグハンターは社員ということで、身元が完全に把握できますので安心感はより高まります。その一方で、多様なバックグラウンドを持つバグハンターに調査してもらえるというメリットは限定的になりますし、運営をすべて自社で行わなければならない(バグバウンティプラットフォームは利用できない)というデメリットもあります。バグバウンティプログラムを実施したい企業の事情に合った方式を選択するとよいのではないかと思います。
冒頭でも紹介した通り、NTT Comは社内バグバウンティプログラムを実施しています。他社で社内バグバウンティを実施している例はあまり聞いたことはなく(大学で千葉大学、電気通信大学があるくらい)、バグハンターの一人として先進的で素晴らしい取り組みだと感じています。今後も制度を継続・拡大させて、お客さまにより安全なシステムをお届けできる体制がより強固になるとよいなと思います。
まとめ
本記事では、バグバウンティプログラムの有効性についてご紹介しました。 システムやソフトウェアを提供する立場の方にとって、本記事がバグバウンティプログラムを検討する1つのきっかけになれば幸いです。
次回は、私の脆弱性探しの経験をもとに、脆弱性探しの魅力と調査方法についてご紹介します。