NTT Com社内バグバウンティのご紹介 - NTT Communications Engineers' Blog

NTT Com社内バグバウンティのご紹介

はじめに

はじめまして!情報セキュリティ部で社内バグバウンティ(NTT Com Bug Bounty Program)の運営をやっている長妻です。
この記事では、NTT Comで開催している社内バグバウンティを紹介します。また、社内バグバウンティに限らず、一般的なバグバウンティへ未経験の方にも参加してもらうために基本的なバグ調査環境を紹介します。

NTT Com Bug Bounty Programについては以下の記事もご確認ください。
社員が“バグハンター”として自社サービス・システムの堅牢化に参画 NTT Comが社内バグバウンティプログラムをスタート - Shines|NTTコミュニケーションズ


そもそもバグバウンティとは?

バグバウンティという言葉を聞いたことはあるでしょうか?
近頃はニュースにもされるようになってきたので、この記事の読者層は知っている人も少なくはないのかなと想像しています。

バグバウンティとは、企業などが自社のサービスや製品についてバグ調査案件を公開し、それを見たバグハンターにバグを調査・報告してもらう制度です。報告の対価としてバグハンターには報奨金が支払われます。

報告内容によっては報奨金が数百万円にもなることがあり、バグバウンティで生計を立てる人もいるとか。。。
企業としても脆弱性診断などでは見つからないようなバグが見つかる可能性があるため、多額の報奨金をかけてバグバウンティ制度を設けている会社もいるわけですね。

NTT Comでも、社内に閉じた社内バグバウンティを始めました。


社内バグバウンティでは社員に活躍してもらう

f:id:NTTCom:20220215140929p:plain 社内バグバウンティは、主にNTT Com社員(と一部のグループ会社の社員)にバグハンターとしてバグを探してもらおうという取り組みです。 社内システムのバグを、社員が見つけて報告するという構図で、もちろん報奨金も支払われます。

参加の際には、調査を募集するシステムも、調査を実施する社員も社内バグバウンティへ参加登録をしてもらいます。 特に調査に参加する社員には、調査対象システムへ高負荷をかける調査は行わない等の禁止事項や参加規約を読んで同意してもらっています。

参加登録が完了した社員は、業務としてではなく個人の活動としてバグハントを行います(もちろん、参加登録したからといって活動を強制されるということではありません)。 報奨金が支払われるのは報告内容が脆弱性に認定された場合のみですが、社員はお金目的だけでなく、スキルアップ、力試し、品質向上への貢献、といったいろいろな目的で参加してくれています。

f:id:NTTCom:20220215140938p:plain

オープンなバグバウンティ制度では多くのバグハンターへアプローチできる一方で、相手の身元が分からないなどのリスクがあります。(例えば、相手が反社会的勢力で、報奨金が利益供与にあたらないか?など)

社内バグバウンティでは信頼のおける社員(と一部のグループ会社の社員)に絞ったバグハンターの募集となるため、システム運用担当者としても安心して参加できる制度です。


バグバウンティの入門として

社内バグバウンティは一般的なバグバウンティと比べると報奨金は控え目ですが、一方で社外にオープンではないためライバルが少ないです。

熟練者がひしめき合うようなオープンなバグバウンティプログラムと比べると、初参加でもチャンスがあるかもしれません。
少額でも良いから調査してバグを見つけて達成感を味わいたい人に向いている制度かなと思います。

また、多くの貢献をしてくれたバグハンターの方は、『Hall of Fame』として社内バグバウンティのオフィシャルページに掲載されるので、ぜひチャレンジしてみてください。

f:id:NTTCom:20220221093111p:plain


バグバウンティをこれから始める方のために

ここからはバグ調査で使う基本的なツールの説明を行います。ローカルプロキシを使ってリクエストの改ざんが行える方は、これ以降の文章は読み飛ばしてもらって大丈夫です。

調査環境のセットアップ

ここからは以下の調査環境をセットアップするまでについて説明していきます。 f:id:NTTCom:20220215140953p:plain

Burp Suite Community EditionのProxyサービスの設定

まずはBurp Suite Community Edition(以下、Burp)をインストールして、Proxyサービスの設定を見てみます。
下の画像のようにデフォルトでは127.0.0.1:8080にてポートを開放して待ち受けています。この画面から細かい設定も可能ですが、このままデフォルト設定で説明を続けます。

f:id:NTTCom:20220215140959p:plain

Firefoxのプロキシ転送設定

次にFoxyProxy Starndardのアドオンをインストールしたら、Burpのローカルプロキシへの転送設定を行います。

アドオンが適用されると、下図のようにブラウザの右上にアイコンが表示されます。

f:id:NTTCom:20220215141006p:plain

続いて、
アイコンをクリック > Options > Addと遷移して、プロキシ設定を登録します。
Burpのプロキシは127.0.0.1:8080で立ち上がっていたので、下図のように埋めたらSaveします。

f:id:NTTCom:20220215141014p:plain

設定の登録が完了すると、下図のようにブラウザの右上からどのプロキシ設定を適用するかを選択できるようになります。 作成したプロキシ設定にチェックマークを付けたら、指定したプロキシを経由するようになります。

f:id:NTTCom:20220215141021p:plain

そこで、https://example.comへアクセスしてみると、、、 f:id:NTTCom:20220215141028p:plain
上図のように警告が表示されました。これはhttps通信をする際にプロキシを経由させたため、中間者攻撃とブラウザに判断されてセキュリティ機能が働いたためです。

FirefoxにBurpのルート証明書をインポートする

続いて、Burpのルート証明書をブラウザに読み込ませて、こうした警告が出ないようにします。
証明書は以下のBurpの「Proxy > Options」画面から、「import/export CA certificate」ボタンを押すことで取得できます。 f:id:NTTCom:20220215141035p:plain

取得したルート証明書をFirefoxにインポートします。 Firefoxの設定画面を開いたら、「証明書」と検索して証明書マネージャーを開きます。
先ほど取得したルート証明書をインポートしてください。インポートが完了すると、「PortSwigger CA」が追加されます。

f:id:NTTCom:20220215141042p:plain f:id:NTTCom:20220215141049p:plain

ここまでやれば設定は完了です。再びhttps://example.comへアクセスして確認してみます。 f:id:NTTCom:20220215141056p:plain
ローカルプロキシを介してアクセスできました。
「Intercept」や「Repeater」といった機能を使ってリクエストを改ざんできます。

あとはバグバウンティプログラムへ参加し、ルールを守ったうえで調査に参加してみてください。

© NTT Communications Corporation 2014