2018年8月24日金曜日

Black Hat USA 2018 Arsenal 登壇レポート

2018年8月4~9日にアメリカのラスベガスで開催されたBlack Hat USA 2018で、弊社の小池と野村がArsenal PresenterとしてEKTotalというツールについて発表しました。

Black Hat USA 2018 Arsenal - EKTotal

EKTotal

EKTotalはDrive-by Download攻撃に関するトラフィックデータを自動解析するためのツールです。調査・解析の際に立ちはだかる問題点を解決することを目的としています。

2016年にAngler Exploit KitやNuclear Exploit Kitの活動が停止して以来、Drive-by Download攻撃は大きな焦点を当てられることなく現在に至っています。しかしながら、CVE-2018-4878やCVE-2018-8174など最新の脆弱性を悪用するなど、いまだ積極的に進化しているのが現状です。日本をターゲットとした攻撃キャンペーンも観測されており、SOCやCSIRTなどのセキュリティ技術者がDrive-by Download攻撃の調査・解析を行う可能性は十分に考えられます。

日本をターゲットとした攻撃キャンペーンのトラフィック

Drive-by Download攻撃について調査・解析を行う場合、検知・解析を妨害するために用いられている様々なテクニックを回避する必要があります。例えば、攻撃コードを多重に難読化していたり、攻撃対象のシステムで動作しているかチェックするような処理が含まれていたり、マルウェアを暗号化して送り込むなどという仕組みが多くのExploit Kitに実装されており、Drive-by Download攻撃のトラフィックを解析することは手間と技術を必要とします。また、そもそも攻撃トラフィックを膨大なトラフィックデータの中から選び出すことは、最新のDrive-by Download攻撃キャンペーンについての知識がなければ難しいでしょう。

Exploit Kitで用いられている難読化

それらを解決するために我々はEKTotalを開発しました。EKTotalの使い方は非常に簡単です。Drive-by Download攻撃に関するトラフィックデータを含んだPcapファイルかSazファイルをWebインターフェースから提出するだけで、どれが悪性トラフィックだったのか、どの脆弱性が攻撃された可能性があるのか、どのようなマルウェアが送り込まれたのかなど、最終的な解析結果を得ることが可能です。

EKTotalの解析結果画面

EKTotalは大きく分けて4つの段階に分けて処理を行っています。

  1. まず提出されたファイルからトラフィックデータを読み出し、1つ目のフィルタに通します。このフィルタはMalwarebytesのJerome Segura氏が開発しているEKFiddleというFiddlerの拡張機能の正規表現ルールを利用しています。
  2. 同様に2つ目のフィルタにトラフィックを通します。2つ目のフィルタはEKFiddleのルールに存在しないが、重要だと我々が判断したルールを設定しています。
  3. 1と2によって抽出された悪性トラフィックをそれぞれの解析器によって解析します。EKTotalはRIG、GrandSoft、Magnitude、Bloodlust Drive-byの4つのExploit Kitの解析器を利用することが可能です。
  4. 解析器によって得られた情報をWebインターフェースで表示します。

EKTotalを用いることで、熟練のアナリストでも数十分掛かるような解析作業を2,3秒で行うことができます。

EKTotalはGitHub上で公開しています。Black Hat USA 2018で案内していたデモサーバは既にシャットダウンしてしまいましたが、Dockerを用いて容易にセットアップすることが可能なので、興味のある方は是非試してみて下さい。

事前準備

我々はBlack Hatでの登壇経験はもちろん、国外での登壇すら初めてでした。メインプレゼンターはBlack Hatに参加したこともなく、Arsenalがどのような雰囲気で行われているのか全く分かっていなかったため、過去に参加した方々のブログやレポートを参考に準備を行いました。

Arsenalは80分間ブースを与えられるだけで、それ以外は特に決まっていることはありません。参加者との距離は非常に近く、対話的に進められていくことがほとんどでしょう。我々は英会話にあまり自信がなかったため、なるべく自分たちのペースを守ろうと、事前にがっつりプレゼンテーションスライドを作成しておきましたが、そうも上手くいくとは思っていなかったため、参加者が利用できるデモ環境をクラウド上に作成したり、インターネット障害が発生したときのために動画を用意したりしました。

また、配布物としてステッカーと名刺を用意しましたが、実際には発表内容を1枚にまとめた紙を求められることが多々あり、用意したほうが良かったと思います。

配布したステッカー

発表

我々は朝一番早い10時からの発表で、Arsenalが行われる小さい方のビジネスホールは10時にならないと入場ができないようになっていました。全く人のいない会場で準備をしながら、「全然人来ないかもしれない」と思っていましたが、開場時間になるとあっという間に多くの人がブースにやってきました。

発表の様子

事前に準備していたとおり、全てのスライドを話しつつデモを行っていましたが、聴衆の興味に合わせてスライドの構成を変更することもありました。我々の英語は何とか伝わっているようでしたが、質問の際に相手の言葉が聞き取れないことが多く、それらに予想以上に時間を費やしてしまいました。

概ね肯定的な反応でしたが、多く受けた質問として

  • EKTotalはどこからダウンロードできるのか(OSSなのか)
  • カスタマイズするにはどうしたらいいのか
  • ルールはどうやって作っているのか
  • pcapやsazを用意するのではなく、リアルタイムに処理することはできないか

などがありました。カスタマイズやルールに関しては事前に想定していた質問でしたが、1つ目の「どこからダウンロードできるのか」という質問に関しては、我々としては「当然GitHubにある」という認識でしたが、しっかりとスライド等に明記しておくべきだったと思いました。

また、事前に作成していたステッカーは好評ですぐになくなってしまったのですが、名刺を要求する人が予想よりも遥かに多くいて、事前にテーブル上にたくさん配置しておいたほうが良いように思いました。同じように、「チラシはないか?」と聞かれることも少なからずあったため、なるべく準備しておくほうが良かったかもしれません。

デモの際、会場のインターネット環境が非常に不安定でした。折角Dockerizeしていたのですが、発表スライドを映せるPCと、Dockerを動かせるPCが共存していなくて、無駄に時間が掛かってしまったこともありました。ネットワーク障害は事前に予想していたため動画等でやり過ごしましたが、ローカルに環境を用意するべきでした。

有益なフィードバックとして

  • IPアドレスなどを検査項目に追加したほうが良い
  • トラフィックの繋がりを可視化して欲しい
  • ファイルをダウンロードできるようにして欲しい

などがありました。1つ目と2つ目はEKFiddleに既に実装されている機能で、我々も毎日利用している強力な機能です。今後EKTotalに追加していきたいと思っています。3つ目の「ファイルをダウンロードできるようにして欲しい」というのは、解析結果の話で、現在のEKTotalは解析結果としてマルウェアのハッシュ値とVirusTotalのリンクのみを提供しています。実際にはマルウェア自体もトラフィックデータから抽出しているので、ファイル自体をダウンロードさせることは出来るのですが、法律等の問題から実装していませんでした。しかし、「ダウンロードできるようにして欲しい」という声は思っていたよりも多かったので、管理者がそういった設定を選択できるような自由があっても良いのかもしれないとは思いました。

最後に

アメリカに行くことも国外発表することも初めてで、Black Hat USAがどういったものなのか想像することすら出来ていませんでしたが、今回の発表を通して「何を準備すべき」で「どういった発表が求められているのか」を自分なりに知ることが出来たと思っています。また、普段絶対に会えないような世界トップクラスの技術者と会って話をしたり、Briefingsなどの発表を聞くことで、今後のモチベーションを大きく向上させることができ、非常に良い経験になりました。次回以降も積極的に発表していきたいと思っています。

---

筆者
特任研究員 小池

株式会社アクティブディフェンス研究所
https://www.activedefense.co.jp

0 件のコメント:

コメントを投稿