バグバウンティプログラムとは、外部のセキュリティ研究者やホワイトハッカーに自社のシステムやアプリケーションの脆弱性を探してもらい、発見された脆弱性に対して報奨金を支払う制度です。Google、Microsoft、Appleといったテック大手はもちろん、近年では金融機関や小売企業でも導入が進んでいます。HackerOneの報告によれば、2023年にはプラットフォーム上で報告された脆弱性の数が100万件を超えました。
従来のペネトレーションテストが期間限定・少人数で行われるのに対し、バグバウンティは継続的に多数のテスターが参加するため、多様な攻撃手法による網羅的なセキュリティテストが期待できます。ペネトレーションテストが「定期健診」だとすれば、バグバウンティは「常時監視」に近い効果があります。
バグバウンティを成功させるには、まず社内のセキュリティ体制が一定の成熟度に達している必要があります。基本的なセキュリティ対策(脆弱性スキャン、コードレビュー、ペネトレーションテスト)を実施していない段階でバグバウンティを開始すると、既知の脆弱性が大量に報告され、トリアージ(選別)に追われることになります。報奨金の予算も瞬時に消耗してしまいます。
目安として、OWASP Top 10の脆弱性が解消済みであること、セキュリティインシデント対応チーム(CSIRT)が機能していること、脆弱性の修正フローが確立していることが前提条件です。また、脆弱性報告を受け取り、検証し、開発チームに引き渡すためのコミュニケーション体制も整えておく必要があります。
プログラムの対象範囲(スコープ)を明確に定義することが極めて重要です。対象に含めるもの(Webアプリケーション、API、モバイルアプリなど)と除外するもの(社内システム、第三者サービス、開発環境など)を文書化します。スコープが曖昧だと、研究者が意図しないシステムをテストしてしまうリスクがあります。
テスト禁止行為も明記します。サービス妨害攻撃(DoS)、ソーシャルエンジニアリング、物理的侵入テスト、他のユーザーのデータへのアクセスなどは通常、スコープ外とされます。自動スキャンツールの使用可否についても明確にしておくとよいでしょう。また、脆弱性の報告手順、重複報告の扱い、公開ポリシー(Coordinated Disclosure)も明確にしておく必要があります。
報奨金の金額は、脆弱性の深刻度に応じて段階的に設定します。一般的な指標としてCVSS(Common Vulnerability Scoring System)を採用し、Critical(9.0〜10.0)は50万円〜300万円、High(7.0〜8.9)は10万円〜50万円、Medium(4.0〜6.9)は3万円〜10万円、Low(0.1〜3.9)は5千円〜3万円といった範囲が目安です。
金額設定は業界水準や自社の予算に合わせて調整しますが、低すぎると優秀な研究者が参加しないため、競争力のある金額を設定することが重要です。脆弱性の影響を受けるアセットの重要度によって金額に乗数を適用する方式も効果的です。また、報奨金だけでなく、殿堂入りページ(Hall of Fame)への掲載やグッズの提供なども、研究者のモチベーション向上に寄与します。特にキャリアの浅い研究者にとって、大手企業のHall of Fameに名前が載ることは大きな実績となります。
報告された脆弱性のトリアージは48時間以内に行うのがベストプラクティスです。初回応答が遅いプログラムは研究者の信頼を失います。専任のセキュリティエンジニアを配置するか、HackerOneやBugcrowdといったプラットフォームのマネージドサービスを活用するのが現実的です。これらのプラットフォームはトリアージの支援、研究者コミュニティとの接点、法的テンプレートなどを提供してくれます。
脆弱性の検証・修正・報奨金支払いまでのフローを標準化し、SLAを設定します。修正完了までの目標期間は、Criticalで7日以内、Highで30日以内、Mediumで90日以内が一般的です。研究者との良好なコミュニケーションを維持し、修正の進捗を定期的に共有することで、信頼関係を構築しましょう。
最初から公開プログラムを開始するのではなく、まずは招待制のプライベートプログラムから始めるのが安全です。信頼できる20〜50名程度の研究者に限定して開始し、運用プロセスを改善した上で、徐々に参加者を拡大し、最終的に公開プログラムへ移行します。この段階的なアプローチにより、運用上の課題を低リスクで発見・解決できます。プライベートプログラムの期間は3〜6ヶ月が目安です。