バグバウンティプログラムの開発方法 - TechRepublic

バグバウンティプログラムの開発方法 - TechRepublic

侵入テスターは最近、重大かつ重大な脆弱性を検索して報告することを奨励する同社の公開バグ報奨金プログラムを通じて、Uber アプリケーションに重大な脆弱性を発見しました。

ポルトガルを拠点とするチームによって、3週間かけて8つのバグが発見されました。発見された脆弱性の一つは、ドライバーと乗客の個々の移動履歴をダウンロードできることでした。また、Uberが把握していなかった100ドルの緊急乗車券も発見されました。その他のセキュリティ上の脆弱性により、テスターはriders.uber.com経由で招待コードを入手したり、ドライバーの個人メールアドレスを入手したりすることが可能でした。

公開される可能性のある欠陥を発見した人に報酬を与えるという発想は、突飛に聞こえるかもしれません。しかし、自問自答してみてください。自分のコードに致命的なバグを見つけたら、誰に知らせたいですか?あなたのために働いている人ですか、それともあなたに敵対する人ですか?バグ報奨金プログラムは、クラウドソーシングを活用することで、様々なツールや技術を持つ多様な研究者から迅速に結果を得ることができます。

「製品に複数の脆弱性が見つかることは珍しくありません」と、サイバーセキュリティ企業Tripwireの開発者であるレーン・テムズ氏は述べています。「セキュリティの概念を理解している熟練プログラマーにとっても、安全なソフトウェアの開発は困難です。」防弾システムの構築は非常に困難であるため、テムズ氏は、ますます多くの企業がバグ報奨金プログラムの導入を選択していると述べています。

バグバウンティプログラムは、倫理的なハッカーに新たな扉を開き、そのスキルを利益のために活用する機会を提供します。その一方で、企業は、プログラムの範囲内で脆弱性を発見した人に対してのみサービス料を支払うため、コストを最小限に抑えることができます。同時に、製品のセキュリティ強化にもつながります。これは、倫理的なハッカーとバグバウンティを後援する企業の双方にとって大きなメリットです。

参照:倫理的なハッカー:ホワイトハットの採用が悪者から組織を守る方法

バグ発見による利益は、バグハンターにとって莫大な額になり得ます。Uberは、アカウントを侵害したり、本番システムでマルウェアを実行したりする可能性のあるバグを発見した場合、最大1万ドルの報酬を支払います。さらに、Uberのプラットフォームでバグを繰り返し発見したハッカーにボーナスを与える「バグ報奨金」ロイヤルティシステムも提供しています。また、バグ報奨金ハンター向けに「宝の地図」を公開することも約束しています。これは、サイトの潜在的な脆弱性を導き、バグハンティングを可能な限り効率的に行うために、Uberのコードを地図化したものです。Battlehack 2015のようなバグ報奨金コンテストもあり、世界決勝の優勝者には10万ドルが授与されました。

Mozilla、Facebook、PayPal、Google、Microsoftなど、テクノロジー業界の著名人がバグ報奨金制度を活用しています。米国政府もこの流れに加わっています。今年初めには、「Hack the Pentagon(ペンタゴンをハック)」プログラムが米国国防総省から7万ドル以上の報奨金を獲得しました。

基本的な公開バグ報奨金リストはこちら、包括的なリストはこちらでご覧いただけます。また、特定のプログラムや言語(Flash、Perl、PHPなど)に特化したバグ報奨金プログラムはこちらでご確認いただけます。

バグ報奨金プログラムの開始

バグバウンティハンターになる方法については、巷に多くの情報が溢れていますが、組織内でバグバウンティプログラムを立ち上げ、運用していく方法についても検討してみる価値はあります。考慮すべき点をいくつかご紹介します。

  • 脆弱性を構成する要素を明確に定義しましょう。意図された機能が脆弱性と誤認されることは避けたいものです(例えば、ウェブサイトから公開データを取得できる機能が「ハッキング可能」と誤解されるなど)。同様に、既知の問題を特定し、その解決策を検討している場合、既に知っていることを誰かに教えてもらうためにお金を払うのは避けたいものです。そこで、研究者が調査結果と照合できるように、「既知のバグ」データベースにその情報を追加しましょう。また、解決に時間や労力をかける価値がない、あるいは懸念事項ではない既知のバグは、報奨金の対象とならないように事前に定義しておく必要があります。
  • 報奨金プログラムには明確なパラメータを設定しましょう。対象となるドメイン、IPアドレス、アプリケーション、サービス(および対象外のサービス)と、発見したエクスプロイトに対してバウンティハンターが実行できる操作と実行できない操作を明確に定めましょう。例えば、個人情報のダウンロードや削除が可能であることが判明した場合、脆弱性の正当性を証明するために、そのような操作を行わないよう指示します。これは、社内のセキュリティチームと開発チームが実施する必要があります。
  • 脆弱性に対する適切な報奨金額を設定しましょう。報奨金ハンターを惹きつけるために妥当な額を支払う必要がありますが、関連性の低い、あるいはリスクの低い脆弱性の報告を大量に受け取って資金が枯渇するような事態は避けるべきです。脆弱性に対する報奨金は、ユーザーやシステムへのリスクと関連付けましょう。個人情報へのアクセスや削除、アカウントへの不正侵入、悪意のあるコードの実行といったリスクは、より大きな報奨金をもたらすはずです。予算が、報告されるバグの種類に対応できることを確認し、研究者が公平に活動できるよう、公平な報酬を支払うようにしてください。
  • バウンティハンターが脆弱性の証拠として提出しなければならない詳細レベル(ステップごとのドキュメント、スクリーンショット、実行されたアクティビティのビデオ録画など)を構成します。これにより、双方の期待値を設定するのに役立ちます。
  • セキュリティチームの同意を得て、侵入検知・防止スキャナー、あるいはアラートを送信するその他のセキュリティ対策が、バグ報奨金プログラムが有効な間は通知されないように設定されていることを確認してください。ただし、アクティブログは通常通り実行される必要があります。
  • バグバウンティプログラムに参加する研究者と継続的なコミュニケーションを維持し、双方が最新の知見や開発状況を把握できるようにします。重複を防ぐため、すべての研究者が互いのバグレポートに平等にアクセスできるようにする必要があります。
  • 一人で頑張る必要はありません。Hackeroneはホスト型のバグ報奨金プラットフォームを提供しており、無料トライアルで試してみることができます。バグのパラメータ、資格要件、報奨金の価格、ハッカーの期待値などを設定でき、結果も確認できます。CobaltやBugcrowdも同様のサービスプロバイダーです。

セキュリティは目的地ではなく旅である

バグバウンティプログラムは、悪意のある人物が悪用する前に脆弱性を根絶し、修正するための手段の一つにすぎません。ハンマーだけで家を建てることができないのと同様に、南京錠だけで家を完全に安全にすることはできません。最高のセキュリティを確保するための単一のソリューションは存在しません。様々な対策を組み合わせたツールキットが最善の選択肢です。プログラミングのベストプラクティスの遵守、セキュアな原則に基づいたコーディング、QAテストによる新規コードの欠陥や脆弱性の検査、新しいトレンドやテクノロジーの活用(セキュリティリスクをもたらす可能性のあるものへの注意も含む)、ペネトレーションテストなどの自己診断、そしてバグバウンティプログラムの実装は、すべてツールキットの不可欠な要素です。

こちらもご覧ください:
ハミングバッドマルウェアが1000万台のAndroidデバイスに感染、さらに数百万台が危険にさらされる
レポート:新たなセキュリティ脅威により企業に1件あたり100万ドルの損害、フラッシュパフォーマンスが低下
キーストロークを記録するUSB​​充電器に注意
アデルが最新の有名人ハッキング被害者になった経緯

Tagged: