はじめに
はじめまして!情報セキュリティ部で社内バグバウンティ(NTT Com Bug Bounty Program)の運営をやっている長妻です。
この記事では、NTT Comで開催している社内バグバウンティを紹介します。また、社内バグバウンティに限らず、一般的なバグバウンティへ未経験の方にも参加してもらうために基本的なバグ調査環境を紹介します。
NTT Com Bug Bounty Programについては以下の記事もご確認ください。
社員が“バグハンター”として自社サービス・システムの堅牢化に参画 NTT Comが社内バグバウンティプログラムをスタート - Shines|NTTコミュニケーションズ
そもそもバグバウンティとは?
バグバウンティという言葉を聞いたことはあるでしょうか?
近頃はニュースにもされるようになってきたので、この記事の読者層は知っている人も少なくはないのかなと想像しています。
バグバウンティとは、企業などが自社のサービスや製品についてバグ調査案件を公開し、それを見たバグハンターにバグを調査・報告してもらう制度です。報告の対価としてバグハンターには報奨金が支払われます。
報告内容によっては報奨金が数百万円にもなることがあり、バグバウンティで生計を立てる人もいるとか。。。
企業としても脆弱性診断などでは見つからないようなバグが見つかる可能性があるため、多額の報奨金をかけてバグバウンティ制度を設けている会社もいるわけですね。
NTT Comでも、社内に閉じた社内バグバウンティを始めました。
社内バグバウンティでは社員に活躍してもらう
社内バグバウンティは、主にNTT Com社員(と一部のグループ会社の社員)にバグハンターとしてバグを探してもらおうという取り組みです。 社内システムのバグを、社員が見つけて報告するという構図で、もちろん報奨金も支払われます。
参加の際には、調査を募集するシステムも、調査を実施する社員も社内バグバウンティへ参加登録をしてもらいます。 特に調査に参加する社員には、調査対象システムへ高負荷をかける調査は行わない等の禁止事項や参加規約を読んで同意してもらっています。
参加登録が完了した社員は、業務としてではなく個人の活動としてバグハントを行います(もちろん、参加登録したからといって活動を強制されるということではありません)。 報奨金が支払われるのは報告内容が脆弱性に認定された場合のみですが、社員はお金目的だけでなく、スキルアップ、力試し、品質向上への貢献、といったいろいろな目的で参加してくれています。
オープンなバグバウンティ制度では多くのバグハンターへアプローチできる一方で、相手の身元が分からないなどのリスクがあります。(例えば、相手が反社会的勢力で、報奨金が利益供与にあたらないか?など)
社内バグバウンティでは信頼のおける社員(と一部のグループ会社の社員)に絞ったバグハンターの募集となるため、システム運用担当者としても安心して参加できる制度です。
バグバウンティの入門として
社内バグバウンティは一般的なバグバウンティと比べると報奨金は控え目ですが、一方で社外にオープンではないためライバルが少ないです。
熟練者がひしめき合うようなオープンなバグバウンティプログラムと比べると、初参加でもチャンスがあるかもしれません。
少額でも良いから調査してバグを見つけて達成感を味わいたい人に向いている制度かなと思います。
また、多くの貢献をしてくれたバグハンターの方は、『Hall of Fame』として社内バグバウンティのオフィシャルページに掲載されるので、ぜひチャレンジしてみてください。
バグバウンティをこれから始める方のために
ここからはバグ調査で使う基本的なツールの説明を行います。ローカルプロキシを使ってリクエストの改ざんが行える方は、これ以降の文章は読み飛ばしてもらって大丈夫です。
調査環境のセットアップ
ここからは以下の調査環境をセットアップするまでについて説明していきます。
ローカルプロキシ:Burp Suite Community Edition 有名なローカルプロキシツールです。WEBリクエストの改ざんや複製など様々な操作を行えます。
https://portswigger.net/burp/communitydownloadWEBブラウザ:Firefox & FoxyProxy Standardアドオン
FoxyProxyは、Firefoxのプロキシ転送設定を簡単にしてくれるアドオンです。
https://addons.mozilla.org/ja/firefox/addon/foxyproxy-standard/
Burp Suite Community EditionのProxyサービスの設定
まずはBurp Suite Community Edition(以下、Burp)をインストールして、Proxyサービスの設定を見てみます。
下の画像のようにデフォルトでは127.0.0.1:8080
にてポートを開放して待ち受けています。この画面から細かい設定も可能ですが、このままデフォルト設定で説明を続けます。
Firefoxのプロキシ転送設定
次にFoxyProxy Starndardのアドオンをインストールしたら、Burpのローカルプロキシへの転送設定を行います。
アドオンが適用されると、下図のようにブラウザの右上にアイコンが表示されます。
続いて、
アイコンをクリック > Options > Addと遷移して、プロキシ設定を登録します。
Burpのプロキシは127.0.0.1:8080
で立ち上がっていたので、下図のように埋めたらSaveします。
設定の登録が完了すると、下図のようにブラウザの右上からどのプロキシ設定を適用するかを選択できるようになります。 作成したプロキシ設定にチェックマークを付けたら、指定したプロキシを経由するようになります。
そこで、https://example.com
へアクセスしてみると、、、
上図のように警告が表示されました。これはhttps通信をする際にプロキシを経由させたため、中間者攻撃とブラウザに判断されてセキュリティ機能が働いたためです。
FirefoxにBurpのルート証明書をインポートする
続いて、Burpのルート証明書をブラウザに読み込ませて、こうした警告が出ないようにします。
証明書は以下のBurpの「Proxy > Options」画面から、「import/export CA certificate」ボタンを押すことで取得できます。
取得したルート証明書をFirefoxにインポートします。
Firefoxの設定画面を開いたら、「証明書」と検索して証明書マネージャーを開きます。
先ほど取得したルート証明書をインポートしてください。インポートが完了すると、「PortSwigger CA」が追加されます。
ここまでやれば設定は完了です。再びhttps://example.com
へアクセスして確認してみます。
ローカルプロキシを介してアクセスできました。
「Intercept」や「Repeater」といった機能を使ってリクエストを改ざんできます。
あとはバグバウンティプログラムへ参加し、ルールを守ったうえで調査に参加してみてください。