$30 off During Our Annual Pro Sale. View Details »

DECAF meets The Sleuth Kit(TSK)

Ren Kimura
February 26, 2016

DECAF meets The Sleuth Kit(TSK)

OSS Spring 16 Tokyo

Ren Kimura

February 26, 2016
Tweet

More Decks by Ren Kimura

Other Decks in Research

Transcript

  1. DECAF meets The Sleuth Kit (TSK) OSC2016 Tokyo/Spring @RKX1209

  2. whoami • るくす と申します • twitter: @RKX1209 • 神戸大学 工学部

    B3 • sandbox開発,マルウェア解析など • セキュリティキャンプ'15 チューター
  3. はじめに • 今回やったこと • DECAFというsandboxに、フォレンジックツール TSKを載せました • パッチ +436 -14

    • 本家マージ済み(?)
  4. None
  5. Agenda • DECAFの紹介 - DECAFとは - QEMUのしくみ • The Sleuth

    Kitの紹介 - The Sleuth Kit(TSK)とは - マルウェアフォレンジック • TSK on DECAF
  6. Agenda • DECAFの紹介 - DECAFとは - QEMUのしくみ • The Sleuth

    Kitの紹介 - The Sleuth Kit(TSK)とは - マルウェアフォレンジック • TSK on DECAF
  7. DECAFとは • QEMUをベースにしたsandbox • sandboxはマルウェアを仮想環境などに閉じ込め 隔離するプログラム • 主にマルウェア解析,感染防止などに使用

  8. DECAFとは • ゲストOS上で実行されるファイル(.exeなど)をホス ト側から解析可能 • ホスト側で拡張プラグインを開発し、ゲストOS上の API呼び出しなどをフックできる • Out-of-VM方式を採用したsandbox

  9. DECAFとは • In-VM: ゲストOS内にエージェントを配置 - マルウェアに検出される(アンチ解析) • Out-of-VM: ホスト側(ハイパーバイザ)にエージェ ントを追加

  10. DECAFとは • DECAFを用いたマルウェア解析 - マルウェアをゲストOS内に閉じ込める - マルウェアが用いそうなAPIにフックをセット - APIを呼ぶとDECAF側に通知&プラグイン内の関 数を呼び出す

    • もう少し進んだ解析(今回は説明しません) - DECAFのデータ伝搬機構によるテイント解析 - マルウェアによる仮想マシン検出対策など
  11. DECAFとは • セマンティックギャップ問題 - OSはメモリ上のどこにどのような情報を配置して いるか把握している(ex. WinAPI) - メモリのデータに意味(セマンティクス)を持ってい る

  12. DECAFとは • セマンティックギャップ問題

  13. DECAFとは • DECAFによるギャップ解消(VMI) • QEMUからメモリデータ,レジスタ値を読む • 読んだデータからゲストOSのセマンティクスを復元 する - どうやって?

    - ゲストOSがLinuxの場合を例に見てみる
  14. DECAFとは • ゲストOSセマンティクス復元 • QEMUからESPレジスタの値を取得 • $ESP & 0xfffff000(下位12bitをmask) •

    これでLinuxのthread_info構造体のアドレスが得 られる • thread_infoからtask_struct構造体のアドレスを 得る • task_structのアドレス ↔ バージョンの対応DBを検 索し、バージョンを特定する
  15. DECAFとは • 仮想マシンを通しレジスタ,メモリの値を読みだして いる Q. QEMUが持っている情報(ゲストのレジスタ値,メ モリ)をDECAFはどうやって横取りしている? Q. どのタイミングで横取りしている? A.

    QEMUの動的バイナリ変換機能を利用して フックコードを途中で挿入している
  16. Agenda • DECAFの紹介 - DECAFとは - QEMUのしくみ • The Sleuth

    Kitの紹介 - The Sleuth Kit(TSK)とは - マルウェアフォレンジック • TSK on DECAF
  17. QEMUのしくみ • 動的バイナリ変換(DynamicBinaryTranslation) • ゲストはホストと異なるアーキテクチャの物を動か せる

  18. QEMUのしくみ • DECAFはフックコードを中間表現TCGに挿入 • 解析コードをターゲットに挿入する手法を DBI(Dynamic Binary Instrumentation)という • 中間表現レベルで挿入しているためアーキテクチャ

    非依存 • APIがcallされるTCG命令の前後に、DECAFの関 数呼び出し命令を挿入する - APIフックの実現
  19. QEMUのしくみ

  20. Agenda • DECAFの紹介 - DECAFとは - QEMUのしくみ • The Sleuth

    Kitの紹介 - The Sleuth Kit(TSK)とは - マルウェアフォレンジック • TSK on DECAF
  21. The Sleuth Kit(TSK)とは • ファイルシステムフォレンジックツール • ファイルシステムの詳細な構造にアクセス可能 • TSKはコマンドラインツールだがAPIも持っている -(C,pythonなど様々なバインドがある)

    • ディスクイメージの解析などに用いる
  22. The Sleuth Kit(TSK)とは • フォレンジック? • 正確にはディジタルフォレンジックを指す • コンピュータやネットワークのログやディスクから証 拠を探す

    • 警察が犯罪者のディジタルデータ(PC,スマホなど) から、証拠立件を行う際にもフォレンジックが行われ る - 某遠隔操作事件でもスラックスペースが話題に • フォレンジックはマルウェア解析者も行う
  23. Agenda • DECAFの紹介 - DECAFとは - QEMUのしくみ • The Sleuth

    Kitの紹介 - The Sleuth Kit(TSK)とは - マルウェアフォレンジック • TSK on DECAF
  24. マルウェアフォレンジック • マルウェアをディスクイメージから探し出す • 多くのマルウェアは自身を隠蔽する手法を持ってい る • 有名な手法はNTFSのADS(Alternate Data Stream)を用いた物

    - 最近流行りのPoison Ivyの亜種などもこの手法 を利用している • echo 'I am malware' > test.txt:stream • cmd.exeやファイルエクスプローラーでは見つけら れない
  25. マルウェアフォレンジック • マルウェアによる検索妨害 • ADSを検出できるツールは多くある - しかし多くのツールはFindNextFileなどのWin APIを利用している • マルウェアはAPI呼び出しをフックし改竄できるた

    め、この手法では限界がある • TSKはAPIではなくディスクイメージを直接パースす るためこの手の妨害は受けない
  26. Agenda • DECAFの紹介 - DECAFとは - QEMUのしくみ • The Sleuth

    Kitの紹介 - The Sleuth Kit(TSK)とは - マルウェアフォレンジック • TSK on DECAF
  27. TSK on DECAF • TSK APIをDECAFから使えるようにする • 実はTSK自体は既にDECAFに載っている - ただしqcowのサポートが少し不完全

    - まれにDECAFプラグインからうまく扱えない事が • DECAFはTSKに独自のqcowサポートコードを追 加している tsk_img_open_sing(snapshot, QEMU_IMG, 0);
  28. TSK on DECAF • TSKに新しくqcowサポートコードを加えた • 以前のQEMU_IMGに加 え、TSK_IMG_TYPE_QCOW_QCOWという定数 を追加 •

    TSK内のqcow(open/read/write)コードをlibqcow ライブラリを利用した物に変更 → うまく動いた! tsk_img_open_sing(snapshot, TSK_IMG_TYPE_QCOW_QCOW, 0);
  29. TSK on DECAF TSKを用いてゲストOSのファイル走査している図

  30. おわりに • DECAFという既存のOSS sandboxから、TSKを使 えるようにしました • マルウェア解析者もこれからはsandboxを実装して いく時代 • DECAF以外にも様々なフレームワークがある

    - ex. Panda, PEMU, PinOS, Unicorn... • 解析専門でも実装力は必要 • セキュリティ技術者もどんどんOSSへ貢献していき ましょう