解決策
2015年7月、ハッカーPhineas Fisherはイタリアの監視ベンダーHacking Teamの約400GBのデータを流出させた。そこには社内メールも含まれていた。その中でカスペルスキーラボのCostin Raiuは、2013年の交渉記録を見つけた。エクスプロイト販売者Vitaliy ToropovがHacking Teamに対し、「2年半前に書かれ」「今後数年間生き残るあらゆる可能性」を備えたSilverlightのゼロデイを売り込んでいたものだ。これは、パッチも公開情報もないエクスプロイトが、もしカスペルスキーが見つけられさえすれば、依然としてシステムに感染している可能性がある証拠だった。
ゼロデイは通常、侵害後のフォレンジック調査の過程で偶然発見される。Raiuは逆のアプローチを試みた。すなわち、作者をプロファイリングするのだ。彼はToropovが2011年から2013年の間にバグ報奨金プログラム向けに公開した概念実証(PoC)エクスプロイトを集め、公開情報が途絶える前に目を付け、ファイル間で繰り返し現れる3つのデバッグ文字列に気づいた。開発者が意図せずコンパイル済みコードに含めて出荷してしまう、おなじみの残骸である。7月、彼はそれらをYARAルールに書き込み、カスペルスキーの自動エクスプロイト防止ツールと顧客共有のテレメトリネットワーク全体に配信し、待った。
何カ月も何も起きなかった。そして2015年11月25日、中東の顧客マシンが一致した。Toropovが公開した電卓PoCのコードを基に構築されたSilverlightのリモートコード実行エクスプロイトだった。数時間後、2つ目のサンプルがVirusTotalに現れた。ラオスからアップロードされ、7月21日にコンパイルされていた。つまり流出メールがオンラインになった2週間後である。カスペルスキーは脆弱性を報告し、マイクロソフトは2016年1月にSilverlightのBinaryReaderのバグに対する「緊急」パッチをリリースした。
達成したこと
一度も見たことのないエクスプロイトを追跡できる。サンプルではなく、作者の指紋を採るのだ。彼が公開した概念実証には、非公開の作業が受け継ぐ可能性のあるデバッグ文字列が含まれている。
うまくいった理由
このリークは早期警告システムとして再利用された。盗まれた営業資料が、防御側にどの未見のエクスプロイトが存在するか、おおよその古さ、そして誰が作ったかを教えたのだ。
作者の特徴は署名である。エクスプロイト作者は自身のライブラリを再利用し、デバッグコードはコンパイル済みバイナリに残りやすい。そのため公開されたPoCは、非公開の後続作業の指紋となり得る。
センサーネットワークはすでに存在していた。カスペルスキーのオプトインテレメトリ全体にYARAルールを適用することで、新たに何も配備することなく、数千台の顧客マシンがトリップワイヤーになった。
防御側のエチケットが痕跡を残した。Toropovがバグ報奨金プログラムに責任ある開示を行い、PoCを公開して過ごした年月が、彼の非公開エクスプロイトの指紋となった。
応用できること
攻撃の帰属は逆にも機能する。作者の習慣は署名である。成果物が見つからないときは、公開されたものからその作り手をモデル化し、センサーに一致を待たせればよい。
その後
カスペルスキーはそれ以上のサンプルを発見せず、購入者がエクスプロイトを外科手術的に使用したことを示唆している。Raiuはゼロデイ市場での価値を2万〜4万ドルと見積もった。Toropovはコードを調べた後、WIREDに対しこのエクスプロイトは「私のものではない」と語ったが、PoCの部分は自身のものだと確認した。Raiuは、チームが追跡を計画していたものを捕まえることに成功したのは初めてだと述べ、この手法は今後他の販売者の公開コードにも向けられ得ると指摘した。マイクロソフトのパッチは特定の脅威を除去したが、作者の指紋を採って待つという手法はツールボックスに残った。
出典をたどる
出典
- Hacking Team's Leak Helped Researchers Hunt Down a Zero-Day WIRED · wired.com ·