このページの本文へ

Black Hat USA 2017/DEF CON 25 ラスベガス現地レポート 第3回

マルウェア解析の効率化支援「BinGrep」、「現場で使ってもらえるツールになれば」

Black Hatの大舞台で自作ツールを発表、NTTセキュリティ羽田氏

2017年08月09日 07時00分更新

文● 谷崎朋子 編集● 大塚/TECH.ASCII.jp

  • この記事をはてなブックマークに追加
  • 本文印刷

 7月末に米国で開催されたセキュリティカンファレンス「Black Hat USA 2017」では、自作のセキュリティ関連ツールや製品を紹介する「Arsenal(アーセナル)」という展示スペースが用意されていた。

 このArsenalは、ツール開発者自らがブースに立ち、技術解説や質疑応答が自由にできる場だ。来場者から人気の高いコーナーであり、開発者にとっても直接ユーザーからの反応を受け取って、今後の開発に活かすヒントが得られる。その応募数は年々増加しており、今年は昨年よりも10以上多い、90超のツールが一同に介することとなった。

 今年、そのArsenalに応募し、発表枠を獲得した日本人がいた。NTTセキュリティ・ジャパンの羽田大樹氏だ。Black Hatの会場で、羽田氏が開発したツールの詳細や開発背景などを聞いた。

NTTセキュリティ・ジャパン セキュリティオペレーション部 主査の羽田大樹氏(Black Hat USA 2017会場にて)

マルウェア亜種の検出をより容易にするバイナリ差分抽出ツール

 羽田氏が開発した「BinGrep」は、デバッガツール「IDA pro」のプラグインとして使える、バイナリデータの差分抽出ツールだ。

BinGrepの画面イメージ(GitHubより)

 マルウェアのバイナリは、たとえ同じソースコードを基にしていたとしても使用する暗号鍵や通信先C2サーバーのURL、コンパイル方法、さらに難読化技術などによってまったく異なるバイナリに仕上がる。そのため、既知のマルウェアのソースコードを解析済みであっても、関数に基づく単純なマッチングで亜種のマルウェアだと見分けることは難しい。

 「BinDiff」をはじめとして、過去にも関数の一致でバイナリどうしを比較するツールは公開されている。ただしそれらのツールでは、2つのマルウェアバイナリを比較して、関数ごとに1対1で対応すると思われる関数を検出するだけであり、それが間違っていた場合、また一からやり直すことになる。

BinDiffやIDACompareなど、これまでのツールでは1対1での関数比較を行っていた

 それに対して、羽田氏のBinGrepは、過去の解析結果からスコアリング評価を行うことで、一致する「可能性がある」ものを一覧表示してくれる。「関数比較で出てきたものが違っていても、2番目、3番目に可能性のあるものが検証できるだけで、解析の効率は格段に上がります」と羽田氏。こうした方式で、一致の可能性のある関数をすべて洗い出すことのできるツールは、これだけではないかと語る。

BinGrepでは、比較元の関数と一致する可能性がある関数をすべて洗い出してくれる

あるマルウェア検体の関数を、BinDiffとBinGrepで既知の検体と比較。BinGrepでは“一致する可能性が高いか低いか”を評価できるため、BinDiffが見落としていた(一致しない=×評価だった)関数の一致も検出できている

インシデント対応の現場で発見した課題が開発のきっかけに

 羽田氏がBinGrepを開発したきっかけは、2011年に社会人学生として情報セキュリティ大学院大学の修士課程で学んだことだったという。

 「せっかくの機会だから、今まで挑戦できなかったテーマをやってみようと思い、マルウェア解析を選びました」。業務でマルウェア解析に直接関わることはないが、インシデントレスポンスの現場は多く経験しており、マルウェア解析には課題があることを知っていたので取り組むことにした。

初体験のArsenal。「緊張して、気付いたら時間枠が終わっていた」と羽田氏は語った

 当初はBinDiffのような既存ツールをどこまで使い倒せるか考えていたが、研究を進めるうちに限界が見えてきた。そこで2015年、博士課程の中で別の角度から見直そうと考えツールを開発し、論文「BinGrep:制御フローグラフの比較を用いた関数の検索によるマルウェア解析の効率化の提案」を発表した。

 ツール開発は、業務終了後の夜に少しずつ進めなくてはならなかったため、半年ほどかかったという。「ツール開発はそれほど大変じゃなかったんですが、論文執筆に当たっては、より多くのマルウェアを評価するための実験用プログラムを別途作成する必要があり、とにかく周辺作業が多くて時間がかかりました」。

 会社の仕事が終わってから喫茶店で2時間近く論文とにらめっこをする日々。情報処理学会の論文誌ジャーナルに投稿、採録の知らせが来たときは「認められた」と感じ、うれしかったと振り返る。

 「マルウェア解析の常識をひっくり返す画期的なツールというものではないですが、マルウェア解析者がこれまであったら便利だなと思っていたけど、誰も作っていなかったものを作りたかったんです」

 セキュリティの現場作業を少しでも楽にできたら。そんな思いで始まったBinGrepの開発。今後は、大量にばらまかれる同種のマルウェアを自動解析できるような機能拡張も考えており、「インシデントレスポンスチームからの要望があれば追加したい。現場で使ってもらえるツールになったらうれしい」と、羽田氏は笑顔で語った。

カテゴリートップへ

この連載の記事
  • 角川アスキー総合研究所
  • アスキーカード