$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

    View Slide

  2. whoami

    るくす と申します

    twitter: @RKX1209

    神戸大学 工学部 B3

    sandbox開発,マルウェア解析など

    セキュリティキャンプ'15 チューター

    View Slide

  3. はじめに

    今回やったこと

    DECAFというsandboxに、フォレンジックツール
    TSKを載せました

    パッチ +436 -14

    本家マージ済み(?)

    View Slide

  4. View Slide

  5. Agenda

    DECAFの紹介
    - DECAFとは
    - QEMUのしくみ

    The Sleuth Kitの紹介
    - The Sleuth Kit(TSK)とは
    - マルウェアフォレンジック

    TSK on DECAF

    View Slide

  6. Agenda

    DECAFの紹介
    - DECAFとは
    - QEMUのしくみ

    The Sleuth Kitの紹介
    - The Sleuth Kit(TSK)とは
    - マルウェアフォレンジック

    TSK on DECAF

    View Slide

  7. DECAFとは

    QEMUをベースにしたsandbox

    sandboxはマルウェアを仮想環境などに閉じ込め
    隔離するプログラム

    主にマルウェア解析,感染防止などに使用

    View Slide

  8. DECAFとは

    ゲストOS上で実行されるファイル(.exeなど)をホス
    ト側から解析可能

    ホスト側で拡張プラグインを開発し、ゲストOS上の
    API呼び出しなどをフックできる

    Out-of-VM方式を採用したsandbox

    View Slide

  9. DECAFとは

    In-VM: ゲストOS内にエージェントを配置
    - マルウェアに検出される(アンチ解析)

    Out-of-VM: ホスト側(ハイパーバイザ)にエージェ
    ントを追加

    View Slide

  10. DECAFとは

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

    もう少し進んだ解析(今回は説明しません)
    - DECAFのデータ伝搬機構によるテイント解析
    - マルウェアによる仮想マシン検出対策など

    View Slide

  11. DECAFとは

    セマンティックギャップ問題
    - OSはメモリ上のどこにどのような情報を配置して
    いるか把握している(ex. WinAPI)
    - メモリのデータに意味(セマンティクス)を持ってい

    View Slide

  12. DECAFとは

    セマンティックギャップ問題

    View Slide

  13. DECAFとは

    DECAFによるギャップ解消(VMI)

    QEMUからメモリデータ,レジスタ値を読む

    読んだデータからゲストOSのセマンティクスを復元
    する
    - どうやって?
    - ゲストOSがLinuxの場合を例に見てみる

    View Slide

  14. DECAFとは

    ゲストOSセマンティクス復元

    QEMUからESPレジスタの値を取得

    $ESP & 0xfffff000(下位12bitをmask)

    これでLinuxのthread_info構造体のアドレスが得
    られる

    thread_infoからtask_struct構造体のアドレスを
    得る

    task_structのアドレス ↔ バージョンの対応DBを検
    索し、バージョンを特定する

    View Slide

  15. DECAFとは

    仮想マシンを通しレジスタ,メモリの値を読みだして
    いる
    Q. QEMUが持っている情報(ゲストのレジスタ値,メ
    モリ)をDECAFはどうやって横取りしている?
    Q. どのタイミングで横取りしている?
    A. QEMUの動的バイナリ変換機能を利用して
    フックコードを途中で挿入している

    View Slide

  16. Agenda

    DECAFの紹介
    - DECAFとは
    - QEMUのしくみ

    The Sleuth Kitの紹介
    - The Sleuth Kit(TSK)とは
    - マルウェアフォレンジック

    TSK on DECAF

    View Slide

  17. QEMUのしくみ

    動的バイナリ変換(DynamicBinaryTranslation)

    ゲストはホストと異なるアーキテクチャの物を動か
    せる

    View Slide

  18. QEMUのしくみ

    DECAFはフックコードを中間表現TCGに挿入

    解析コードをターゲットに挿入する手法を
    DBI(Dynamic Binary Instrumentation)という

    中間表現レベルで挿入しているためアーキテクチャ
    非依存

    APIがcallされるTCG命令の前後に、DECAFの関
    数呼び出し命令を挿入する
    - APIフックの実現

    View Slide

  19. QEMUのしくみ

    View Slide

  20. Agenda

    DECAFの紹介
    - DECAFとは
    - QEMUのしくみ

    The Sleuth Kitの紹介
    - The Sleuth Kit(TSK)とは
    - マルウェアフォレンジック

    TSK on DECAF

    View Slide

  21. The Sleuth Kit(TSK)とは

    ファイルシステムフォレンジックツール

    ファイルシステムの詳細な構造にアクセス可能

    TSKはコマンドラインツールだがAPIも持っている
    -(C,pythonなど様々なバインドがある)

    ディスクイメージの解析などに用いる

    View Slide

  22. The Sleuth Kit(TSK)とは

    フォレンジック?

    正確にはディジタルフォレンジックを指す

    コンピュータやネットワークのログやディスクから証
    拠を探す

    警察が犯罪者のディジタルデータ(PC,スマホなど)
    から、証拠立件を行う際にもフォレンジックが行われ

    - 某遠隔操作事件でもスラックスペースが話題に

    フォレンジックはマルウェア解析者も行う

    View Slide

  23. Agenda

    DECAFの紹介
    - DECAFとは
    - QEMUのしくみ

    The Sleuth Kitの紹介
    - The Sleuth Kit(TSK)とは
    - マルウェアフォレンジック

    TSK on DECAF

    View Slide

  24. マルウェアフォレンジック

    マルウェアをディスクイメージから探し出す

    多くのマルウェアは自身を隠蔽する手法を持ってい


    有名な手法はNTFSのADS(Alternate Data
    Stream)を用いた物
    - 最近流行りのPoison Ivyの亜種などもこの手法
    を利用している

    echo 'I am malware' > test.txt:stream

    cmd.exeやファイルエクスプローラーでは見つけら
    れない

    View Slide

  25. マルウェアフォレンジック

    マルウェアによる検索妨害

    ADSを検出できるツールは多くある
    - しかし多くのツールはFindNextFileなどのWin
    APIを利用している

    マルウェアはAPI呼び出しをフックし改竄できるた
    め、この手法では限界がある

    TSKはAPIではなくディスクイメージを直接パースす
    るためこの手の妨害は受けない

    View Slide

  26. Agenda

    DECAFの紹介
    - DECAFとは
    - QEMUのしくみ

    The Sleuth Kitの紹介
    - The Sleuth Kit(TSK)とは
    - マルウェアフォレンジック

    TSK on DECAF

    View Slide

  27. TSK on DECAF

    TSK APIをDECAFから使えるようにする

    実はTSK自体は既にDECAFに載っている
    - ただしqcowのサポートが少し不完全
    - まれにDECAFプラグインからうまく扱えない事が

    DECAFはTSKに独自のqcowサポートコードを追
    加している
    tsk_img_open_sing(snapshot,
    QEMU_IMG,
    0);

    View Slide

  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);

    View Slide

  29. TSK on DECAF
    TSKを用いてゲストOSのファイル走査している図

    View Slide

  30. おわりに

    DECAFという既存のOSS sandboxから、TSKを使
    えるようにしました

    マルウェア解析者もこれからはsandboxを実装して
    いく時代

    DECAF以外にも様々なフレームワークがある
    - ex. Panda, PEMU, PinOS, Unicorn...

    解析専門でも実装力は必要

    セキュリティ技術者もどんどんOSSへ貢献していき
    ましょう

    View Slide