実際のバグハンターがリアルなバグハンティングを報告
NTTコムセキュリティの東内裕二氏
今回の報奨金制度の報告会では、実際に脆弱性を報告し報奨金を得ているバグハンターも登壇した。そのうちの1人であるNTTコムセキュリティの東内裕二氏は「サイボウズからもらった報奨金はサイボウズの株の購入と、飼っている猫のご飯代と病院代になりました」と言う。彼がこの制度に参加するきっかけとなったのは、サイボウズが行ったバグハンター合宿に呼ばれたことだった。
他の合宿参加メンバーがそれなりに脆弱性を発見している中で、合宿中に東内氏が発見できたのはクロスサイトスクリプティングが1件だけだった。「打ちひしがれて帰宅しました」とのこと。この合宿で東内氏がまず戸惑ったのが、サイボウズのアプリケーションの使い方だった。アプリケーションの使い方の把握は、脆弱性発見のための第一歩でもある。
合宿において他のメンバーが見つけていた脆弱性の1つに「アクセス制御不備」がある。合宿を終え帰宅してから、東内氏は再び脆弱性発見に対する「やる気」が出た。そこで、このアクセス制御不備を見つけることにしたとのこと。アクセス制御不備とは、権限のないユーザーが情報を閲覧できたり操作できたりするもの。
例えば、アプリケーションの情報を出力する画面を表示するURLにID番号が含まれているような場合に、IDの数字をマイナス1、あるいはプラス1して他人のIDに替えると本来見えてはいけない情報が得られてしまう場合がある。ログイン後のページのURLを、ログインしていない際に直接入力するとページを表示してしまうのもアクセス制御不備の1つだ。
「アクセス制御不備は機械的な診断では見つけにくいものです。地道に試すことで発見します。1台のPCではやりにくく、ブラウザを替えたりするので、2台のPCでやることになります。実際に脆弱性を発見するためには、まずはサイボウズのアプリケーションの特徴を知るところから始めます。アプリケーションを使いこなせないと見つけにくいのです。調べてみるとサイボウズの製品では、情報がIDで管理されているものが多いことが分かりました。IDは連番なのでマイナス1したりプラス1したりしてアクセスし、探します」(東内氏)
IDを変更してアクセスすれば、基本的にはエラーとなる。とはいえときどき穴がある。「サイボウズの脆弱性報奨金制度ではこの現象を脆弱性として認めているので、これを網羅的にチェックしたなら新たな脆弱性が見つかるのでは。この地道な作業はまだ、他にはやられていないのでは」と東内氏は考えたとのことだ。
そこでサイボウズのアプリケーションの画面遷移をまずは洗い出し、それを表にまとめた。それを使って網羅的にチェックをしていく作業を始めたのだ。1週間ぐらいの時間をかけ地道な作業を繰り返し、結果的には8つの脆弱性を見つける。さらにこの報告会の日に新たに1つの脆弱性が認定され、合計9つの脆弱性を発見したことになった。東内氏は「脆弱性発見の作業は、単純作業でつまらないものです。モチベーションを上げるのが今後の課題です」と言う。
伊藤氏によると、バグハンターとして脆弱性を報告してくれる人の中には、セキュリティ製品ベンダーやセキュリティコンサルタントなどの立場の人も多いとのこと。脆弱性診断ツールを持っているベンダーのエンジニアが、その機能を試すためにバグハントをする状況もあるようだ。また、最近では学生の参加も増えているとのことだ。
サイボウズの行っているような報奨金制度は、日本ではまだまだ一般的ではない。サイボウズがこの制度を継続していることを見れば、制度の有効性は十分にあるのだろう。報奨金を支払うことでコストはかかるものの、確実に製品やサービスのセキュリティ性が高まることを考えれば、今後同様な取り組みが日本でもさらに増えてくることが期待される。