Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
DECAF meets The Sleuth Kit(TSK)
Search
Ren Kimura
February 26, 2016
Research
2
3.1k
DECAF meets The Sleuth Kit(TSK)
OSS Spring 16 Tokyo
Ren Kimura
February 26, 2016
Tweet
Share
More Decks by Ren Kimura
See All by Ren Kimura
Ideas for defeating Anti-Deep-Fakes
rkx1209
0
30
セキュリティベンチャーのリスク管理
rkx1209
0
57
ファジング+トリアージ技術を用いた脆弱性解析自動化
rkx1209
0
57
Introduction to Fuzzing
rkx1209
6
4.2k
ARM TrustZone エクスプロイト入門
rkx1209
7
7.9k
The Game is Over. Nintendo switch has been totally compromised
rkx1209
9
5k
インサイドNintendo Switch
rkx1209
18
12k
More efficient remote debugging with Thin Hypervisor
rkx1209
3
2.5k
Reverse Debugging with radare2
rkx1209
6
1.9k
Other Decks in Research
See All in Research
AWS 音声基盤モデル トーク解析AI MiiTelの音声処理について
ken57
0
140
Evaluating Tool-Augmented Agents in Remote Sensing Platforms
satai
3
150
Zipf 白色化:タイプとトークンの区別がもたらす良質な埋め込み空間と損失関数
eumesy
PRO
8
1.4k
Intrinsic Self-Supervision for Data Quality Audits
fabiangroeger
0
340
大規模言語モデルを用いたニュースデータのセンチメント判定モデルの開発および実体経済センチメントインデックスの構成
nomamist
0
110
Human-Informed Machine Learning Models and Interactions
hiromu1996
2
580
Optimal and Diffusion Transports in Machine Learning
gpeyre
0
1.2k
アプリケーションから知るモデルマージ
maguro27
0
260
研究を支える拡張性の高い ワークフローツールの提案 / Proposal of highly expandable workflow tools to support research
linyows
0
310
Whoisの闇
hirachan
3
310
ソフトウェア研究における脅威モデリング
laysakura
0
1.7k
o1 pro mode の調査レポート
smorce
0
120
Featured
See All Featured
How GitHub (no longer) Works
holman
314
140k
Done Done
chrislema
182
16k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
10
1.3k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
A Tale of Four Properties
chriscoyier
158
23k
How to Ace a Technical Interview
jacobian
276
23k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
21
2.5k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
BBQ
matthewcrist
87
9.5k
Fireside Chat
paigeccino
34
3.2k
Transcript
DECAF meets The Sleuth Kit (TSK) OSC2016 Tokyo/Spring @RKX1209
whoami • るくす と申します • twitter: @RKX1209 • 神戸大学 工学部
B3 • sandbox開発,マルウェア解析など • セキュリティキャンプ'15 チューター
はじめに • 今回やったこと • DECAFというsandboxに、フォレンジックツール TSKを載せました • パッチ +436 -14
• 本家マージ済み(?)
None
Agenda • DECAFの紹介 - DECAFとは - QEMUのしくみ • The Sleuth
Kitの紹介 - The Sleuth Kit(TSK)とは - マルウェアフォレンジック • TSK on DECAF
Agenda • DECAFの紹介 - DECAFとは - QEMUのしくみ • The Sleuth
Kitの紹介 - The Sleuth Kit(TSK)とは - マルウェアフォレンジック • TSK on DECAF
DECAFとは • QEMUをベースにしたsandbox • sandboxはマルウェアを仮想環境などに閉じ込め 隔離するプログラム • 主にマルウェア解析,感染防止などに使用
DECAFとは • ゲストOS上で実行されるファイル(.exeなど)をホス ト側から解析可能 • ホスト側で拡張プラグインを開発し、ゲストOS上の API呼び出しなどをフックできる • Out-of-VM方式を採用したsandbox
DECAFとは • In-VM: ゲストOS内にエージェントを配置 - マルウェアに検出される(アンチ解析) • Out-of-VM: ホスト側(ハイパーバイザ)にエージェ ントを追加
DECAFとは • DECAFを用いたマルウェア解析 - マルウェアをゲストOS内に閉じ込める - マルウェアが用いそうなAPIにフックをセット - APIを呼ぶとDECAF側に通知&プラグイン内の関 数を呼び出す
• もう少し進んだ解析(今回は説明しません) - DECAFのデータ伝搬機構によるテイント解析 - マルウェアによる仮想マシン検出対策など
DECAFとは • セマンティックギャップ問題 - OSはメモリ上のどこにどのような情報を配置して いるか把握している(ex. WinAPI) - メモリのデータに意味(セマンティクス)を持ってい る
DECAFとは • セマンティックギャップ問題
DECAFとは • DECAFによるギャップ解消(VMI) • QEMUからメモリデータ,レジスタ値を読む • 読んだデータからゲストOSのセマンティクスを復元 する - どうやって?
- ゲストOSがLinuxの場合を例に見てみる
DECAFとは • ゲストOSセマンティクス復元 • QEMUからESPレジスタの値を取得 • $ESP & 0xfffff000(下位12bitをmask) •
これでLinuxのthread_info構造体のアドレスが得 られる • thread_infoからtask_struct構造体のアドレスを 得る • task_structのアドレス ↔ バージョンの対応DBを検 索し、バージョンを特定する
DECAFとは • 仮想マシンを通しレジスタ,メモリの値を読みだして いる Q. QEMUが持っている情報(ゲストのレジスタ値,メ モリ)をDECAFはどうやって横取りしている? Q. どのタイミングで横取りしている? A.
QEMUの動的バイナリ変換機能を利用して フックコードを途中で挿入している
Agenda • DECAFの紹介 - DECAFとは - QEMUのしくみ • The Sleuth
Kitの紹介 - The Sleuth Kit(TSK)とは - マルウェアフォレンジック • TSK on DECAF
QEMUのしくみ • 動的バイナリ変換(DynamicBinaryTranslation) • ゲストはホストと異なるアーキテクチャの物を動か せる
QEMUのしくみ • DECAFはフックコードを中間表現TCGに挿入 • 解析コードをターゲットに挿入する手法を DBI(Dynamic Binary Instrumentation)という • 中間表現レベルで挿入しているためアーキテクチャ
非依存 • APIがcallされるTCG命令の前後に、DECAFの関 数呼び出し命令を挿入する - APIフックの実現
QEMUのしくみ
Agenda • DECAFの紹介 - DECAFとは - QEMUのしくみ • The Sleuth
Kitの紹介 - The Sleuth Kit(TSK)とは - マルウェアフォレンジック • TSK on DECAF
The Sleuth Kit(TSK)とは • ファイルシステムフォレンジックツール • ファイルシステムの詳細な構造にアクセス可能 • TSKはコマンドラインツールだがAPIも持っている -(C,pythonなど様々なバインドがある)
• ディスクイメージの解析などに用いる
The Sleuth Kit(TSK)とは • フォレンジック? • 正確にはディジタルフォレンジックを指す • コンピュータやネットワークのログやディスクから証 拠を探す
• 警察が犯罪者のディジタルデータ(PC,スマホなど) から、証拠立件を行う際にもフォレンジックが行われ る - 某遠隔操作事件でもスラックスペースが話題に • フォレンジックはマルウェア解析者も行う
Agenda • DECAFの紹介 - DECAFとは - QEMUのしくみ • The Sleuth
Kitの紹介 - The Sleuth Kit(TSK)とは - マルウェアフォレンジック • TSK on DECAF
マルウェアフォレンジック • マルウェアをディスクイメージから探し出す • 多くのマルウェアは自身を隠蔽する手法を持ってい る • 有名な手法はNTFSのADS(Alternate Data Stream)を用いた物
- 最近流行りのPoison Ivyの亜種などもこの手法 を利用している • echo 'I am malware' > test.txt:stream • cmd.exeやファイルエクスプローラーでは見つけら れない
マルウェアフォレンジック • マルウェアによる検索妨害 • ADSを検出できるツールは多くある - しかし多くのツールはFindNextFileなどのWin APIを利用している • マルウェアはAPI呼び出しをフックし改竄できるた
め、この手法では限界がある • TSKはAPIではなくディスクイメージを直接パースす るためこの手の妨害は受けない
Agenda • DECAFの紹介 - DECAFとは - QEMUのしくみ • The Sleuth
Kitの紹介 - The Sleuth Kit(TSK)とは - マルウェアフォレンジック • TSK on DECAF
TSK on DECAF • TSK APIをDECAFから使えるようにする • 実はTSK自体は既にDECAFに載っている - ただしqcowのサポートが少し不完全
- まれにDECAFプラグインからうまく扱えない事が • DECAFはTSKに独自のqcowサポートコードを追 加している tsk_img_open_sing(snapshot, QEMU_IMG, 0);
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);
TSK on DECAF TSKを用いてゲストOSのファイル走査している図
おわりに • DECAFという既存のOSS sandboxから、TSKを使 えるようにしました • マルウェア解析者もこれからはsandboxを実装して いく時代 • DECAF以外にも様々なフレームワークがある
- ex. Panda, PEMU, PinOS, Unicorn... • 解析専門でも実装力は必要 • セキュリティ技術者もどんどんOSSへ貢献していき ましょう