SlideShare uma empresa Scribd logo
1 de 61
Baixar para ler offline
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
o-checker:
悪性文書ファイル検知ツール
~ファイルサイズからにじみ出る悪意
大坪 雄平
1
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
目次
2
1.はじめに
2.バイナリエディタで見る
悪性文書ファイルの構造
3.o-checkerの概要
4.o-checkerの検知の仕組み
5.デモンストレーション
6.o-checkerの応用例
7.おわりに
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
1.はじめに
3
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
標的型攻撃の増加①
4
1.はじめに
http://www.symantec.com/threatreport/topic.jsp?aid=industrial_espionage&id=malicious_code_trends
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
標的型攻撃の増加②
5
政府機関等への標的型メールに関する注意喚起の件数
※GSOC:Government Security Operation Coordination team
政府機関情報セキュリティ横断監視・即応調整チーム
1.はじめに
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
標的型攻撃の増加③
6
20112007
5.4% → 33%
出典:経済産業省委託調査(2007年、2011年)
標的型と見られるサイバー攻撃を受けたことがある(企業)
1.はじめに
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
標的型攻撃の例
7
1.はじめに
機密
情報
マルウェア付き
メールを送信
添付ファイル
を開く
マルウェア
に感染
特定の企業や個人のネットワーク
攻撃者 受信者
機密情報
の漏えい
①
②
③
④
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
標的型メール攻撃の添付ファイル
8
標的型メール攻撃の添付ファイル拡張子の傾向(2013年上半期トレンドマイクロ調べ)
http://is702.jp/special/1431/
実行ファイル形式:59%
文書ファイル形式:41%
1.はじめに
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
2.バイナリエディタで見る
悪性文書ファイルの構造
9
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
文書ファイル
exploit
shell code
RAT(実行ファイル)
表示用(ダミー)ファイル
実行ファイルが埋め込まれた悪性文書ファイルの構造
10
閲覧ソフトの脆弱
性を突くコード
RAT・表示用
ファイルのデコー
ド出力
実行・表示
様々な方式でエン
コード
文書ファイルの表
示内容と関係しな
い部分
2.バイナリエディタで見る悪性文書ファイルの構造
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
悪性文書ファイルの具体例~バイナリエディタを中心に
11
Bitmap View Hex View
2.バイナリエディタで見る悪性文書ファイルの構造
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
悪性PDFファイル具体例:exploit(1/2)
12
31番のオブジェクト
JavaScript本体(exploit)
Flate圧縮されている
2.バイナリエディタで見る悪性文書ファイルの構造
29番のオブジェクト
JavaScript
実際の中身は31番のオブジェクト
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
悪性PDFファイル具体例:exploit(2/2)
13
Flate圧縮されているデータを展開すると…
↓エスケープ処理をされたshellcode
2.バイナリエディタで見る悪性文書ファイルの構造
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
悪性PDFファイル具体例:shellcode
14
2.バイナリエディタで見る悪性文書ファイルの構造
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
悪性PDFファイル具体例:shellcode
15
デコーダ 40 Byte
印刷可能な文字に変換された
shellcode本体
2.バイナリエディタで見る悪性文書ファイルの構造
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
悪性PDFファイル具体例:実行ファイル(1/2)
16
2.バイナリエディタで見る悪性文書ファイルの構造
エンコードされた実行ファイル
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
悪性PDFファイル具体例:実行ファイル(2/2)
17
デコードした実行ファイル
2.バイナリエディタで見る悪性文書ファイルの構造
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
悪性PDFファイル具体例:表示用(ダミー)ファイル
18
2.バイナリエディタで見る悪性文書ファイルの構造
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
3.O-CHECKERの概要
19
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
不正なコードを静的解析・動的解析し
得られた特徴を検知に利用する
文書ファイル
exploit
shell code
RAT(実行ファイル)
表示用(ダミー)ファイル
従来の悪性文書ファイルの検知
20
不正なコード
3.o-checkerの概要
従来の手法
・ 不正なコードをエンコードすることに
より静的解析から得られる特徴を容易に
書換可能
・ 特定の条件でのみ動作するマルウェア
は動的解析が難しい
課題
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
イタチごっこ
21
攻撃者が任意に記述できる部分(不正なデータの中身)
を検知に利用すると…
イタチごっこ
3.o-checkerの概要
不正なコードを元にシグネチャを作成
防御側
シグネチャに引っかからないように
不正なコードを作成
攻撃側
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
イタチごっこからの脱出
22
攻撃者が任意に記述できない部分(例えばファイルフォーマット)
を検知に利用すると…
イタチごっこ
3.o-checkerの概要
ファイルフォーマットに着目した静的解析
を元にシグネチャを作成
防御側
シグネチャに引っかからないように
不正なコードを作成
攻撃側
シグネチャに引っかからないように
ファイルフォーマットを変更
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
ファイルフォーマットから見る悪性文書ファイルの特徴
23
文書ファイルは画像、テキスト、補助的なデータなど様々なデータの集合体
閲覧ソフトが処理しないデータは文書ファイルの中に通常は入れない
閲覧ソフトが処理するデータか否か
理由
exploit ○ 閲覧ソフトの脆弱性を攻撃するため
shellcode ○ 通常はexploitの中に組み込み
実行ファイル × 閲覧ソフトが読み込むと文字化けや誤作
動して攻撃の成功確率が下がる
表示用(ダミー)ファ
イル
× 閲覧ソフトが読み込むと文字化けや誤作
動して攻撃の成功確率が下がる
3.o-checkerの概要
それぞれのデータには何かしら役目がある
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
o-checkerの検知の仕組み(簡略版)
内部構造と表示内容が対応
表示内容 内部構造
内部構造と表示内容が対応しない
表示内容 内部構造
一般的な文書ファイル 悪性文書ファイル
内部構造を検査して検知
3.o-checkerの概要
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
o-checkerの効果
25
・ 高速かつ高い検知率
検知率 98.9% 平均実行時間 約0.3秒
・ メンテナンスフリー
更新頻度 備考
ウイルス対策ソフト 毎日 1日あたり20万個の新種マルウェア(2012
年)※
o-checker ほぼなし 新しい文書ファイル形式が出れば更新
msanalysis.py
入力
実行ファイルが
埋込まれたファイル
pdfanalysis.py
入力
検知
3.o-checkerの概要
※:http://www.kaspersky.com/about/news/virus/2012/2012_by_the_numbers_Kaspersky_Lab_now_detects_200000_new_malicious_programs_every_day
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
4.O-CHECKERの検知の仕組み
26
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
o-checkerの検査項目
27
①EOFの後にデータがついていないか
②ファイルサイズが異常でないか
③FATで参照できない領域が追加されていないか
④ファイル末端がFree Sectorでないか
⑤使途不明のsectorがないか
⑥分類できないセクションがないか
⑦参照されないオブジェクトがないか
⑧偽装されたStreamがないか
Rich Text
CFB
PDF
o-checker
4.o-checkerの検知の仕組み
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
Rich Text形式のファイルの基本構造
28
{¥rtf
Hello!¥par
This is some {¥b bold} text.¥par
}
RTFのデータはテキスト形式を用いており、プレーンテキストに装飾やレイ
アウトのための制御用の文字列を付加した形式となっている※
※:wikipediaより引用
図:Rich Text形式のファイルの例
RTFファイルであるこ
とを示すシグネチャ
最初の`{`に対応する`}`がファイルの最後(EOF)
4.o-checkerの検知の仕組み
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
①EOFの後にデータがついていないか
29
{¥rtf
Hello!¥par
This is some {¥b bold} text.¥par
}
MZ・
ク
・ コ エ ヘ!ク
L!This program cannot be run in
DOS mode.$ 猝t讀ォオ、ォオ、ォオュモ
招ヲォオュモ楫喚オ、ォオ0ェオュモ卸・オュモ匏ウォ
Rich、ォオ
PE d・ ヤノ[J ・ "
表示に影響を
与えないファ
イル末尾に実
行ファイルを
挿入
図:実行ファイルを埋め込まれたRich Text形式のファイルの例
EOFの後にデータが存在
4.o-checkerの検知の仕組み
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
CFB形式のファイル(doc、xls、ppt、 jtd/jtdc )
30
Root Storage
Storage 1 Storage 2
Storage 3
Stream A
Stream B Stream C
引用:[MS-CFB] – v20130118 Compound File Binary Format (http://msdn.microsoft.com/en-us/library/dd942138.aspx)
ファイルシステムでいうと
Stream → ファイル
Storage → フォルダ
CFB:Compound File Binary
複数のデータを階層構造で1つのファイルに格納できる
Microsoft社が作成したアーカイブ形式
Micrsoft Word等で使用されている
doc,ppt,xls,jtd/jtdc※
4.o-checkerの検知の仕組み
※:Justsystem社が開発した日本語ワープロソフト
で使用する拡張子
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
CFB(doc、xls、ppt、jtd/jtdc)のファイル構造
31
header
FAT0
Directory Entry
Stream A
Stream A
Free Sector
Stream B
1
2
3
4
5
Physical Structure
-2
-2
3
-2
-1
-2
Directory Entry
index
sector
4.o-checkerの検知の仕組み
Stream Name:a.txt
Size:696 Index:2
Stream Name:b.txt
Size:318 Index:5
Storage Name:root
Size:- Index:-
FAT
(File Allocation Table)
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
CFB(doc、xls、ppt、jtd/jtdc)のファイル構造
32
header
FAT0
Directory Entry
Stream A
Stream A
Free Sector
Stream B
1
2
3
4
5
Physical Structure
512 Byte
(512 or 4096) x N Byte
FileSize = 512 + (512 or 4096) x N
= 512 x M
正規のCFBファイルのファイルサイズは必ず512の
倍数
4.o-checkerの検知の仕組み
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
②ファイルサイズが異常でないか
33
header
FAT0
Directory Entry
Stream A
Stream A
Free Sector
Stream B
1
2
3
4
5
Physical Structure
-2
-2
3
-2
-1
-2
FAT
(File Allocation Table)
Directory Entry
malware6
7
ヘッダを除いたファイルサイズがsectorサイズ単
位でない
 512 で割ったら余りが出る
4.o-checkerの検知の仕組み
Stream Name:a.txt
Size:696 Index:2
Stream Name:b.txt
Size:318 Index:5
Storage Name:root
Size:- Index:-
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
③FATで参照できない領域が追加されていないか
34
header
FAT0
Directory Entry
Stream A
Stream A
Free Sector
Stream B
1
2
3
4
5
Physical Structure
-2
-2
3
-2
-1
-2
Directory Entry
malware6
7
FATで参照可能な領域にファイルが収まっていない
-1
FATで参照可能な領域:
(FATセクタ数)×128×512 (Byte)
4.o-checkerの検知の仕組み
Stream Name:a.txt
Size:696 Index:2
Stream Name:b.txt
Size:318 Index:5
Storage Name:root
Size:- Index:-
FAT
(File Allocation Table)
?
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
④ファイル末端がFree Sectorでないか
35
header
FAT0
Directory Entry
Stream A
Stream A
Free Sector
Stream B
1
2
3
4
5
Physical Structure
-2
-2
3
-2
-1
-2
Directory Entry
malware6-1
sectorサイズが512バイトの場合
n = (ファイルサイズ-512)/512
n
4.o-checkerの検知の仕組み
Stream Name:a.txt
Size:696 Index:2
Stream Name:b.txt
Size:318 Index:5
Storage Name:root
Size:- Index:-
FAT
(File Allocation Table)
ファイルの最後に対応するsector(n番目の
sector)がFree Sector
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
⑤使途不明のsectorがないか
36
header
FAT0
Directory Entry
Stream A
Stream A
Free Sector
Stream B
1
2
3
4
5
Physical Structure
-2
-2
3
-2
-1
-2
Directory Entry
malware6
FAT(DI-FAT、miniFATを含む)、DE、Stream、
Free Sectorに分類できないsectorがある
-2
4.o-checkerの検知の仕組み
Stream Name:a.txt
Size:696 Index:2
Stream Name:b.txt
Size:318 Index:5
Storage Name:root
Size:- Index:-
FAT
(File Allocation Table)
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
PDFファイル
PDFの基本構造:ファイル構造
コメント(ヘッダ)
本体
相互参照テーブル
トレーラー コメント(EOF)
ページコンテンツ
やグラフィックス
コンテンツ、多く
の補助的な情報が
オブジェクト一式
としてエンコード
されている
1 0 obj
2 0 obj
n 0 obj
ファイルの終端を示すマーカー
x 0 obj <</R2 /P-64 /V 2 /O
(dfhjaklgk… …>>
PDFは大量のオブジェクト(整数、文字列、バイナリデータ等)の集合体
4種類の
セクション
4.o-checkerの検知の仕組み
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
PDFの基本構造:オブジェクト型
38
基本的なオブジェクト
①整数や実数
②文字列
③名前
④ブーリアン値
⑤nullオブジェクト
複合オブジェクト
⑥配列
⑦辞書
その他
⑧Stream(バイナリデータを格納するためのもの)
⑨間接参照
(PDF32000-1:2008 7.3)
4.o-checkerの検知の仕組み
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
PDFの基本構造:Streamのエンコード
39
PDF標準の機能としてStreamにフィルタをかけることができ、そのデコード処理
を行う。主なフィルタは下表のとおり。
名称 概要
/ASCIIHexDecode 2桁の16進数で表現された文字列から1バイトの
データを復元
/ASCII85Decode !からzまでの印字可能文字を使用して表現された
文字列からデータを復元
/LZWDecode TIFF画像形式で用いられているLZW圧縮された
データを展開
/FlateDecode Zlibライブラリで用いられているFlate圧縮され
たデータを展開
/RunLengthDecode バイト単位の単純なランレングス圧縮されたデー
タを展開
/CCITTFaxDecode ファックス機器で使用されているエンコーディン
グ形式のデータを展開
/JBIG2Decode JBIG2圧縮されたデータを展開
/DCTDecode JPEGによる不可逆圧縮されたデータを展開
/JPXDecode JPEG2000による不可逆圧縮されたデータを展開
4.o-checkerの検知の仕組み
(PDF32000-1:2008 7.4)
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
PDFの基本構造:ドキュメント構造
40
トレーラ
ドキュメント
情報辞書
ドキュメント
カタログ
ドキュメント
アウトライン
ページリスト
ページ1 ページ2
ページ1の
コンテンツ
ページ1の
リソース
ページ2の
コンテンツ
ページ2の
リソース
:オブジェクト
図:2ページからなる一般的なPDFファイルのドキュメント構造
:参照リンク
トレーラ辞書オブジェクトからリンクをたどっていくと
すべてのオブジェクトを参照することができる
4.o-checkerの検知の仕組み
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
PDFの基本構造:ドキュメントの暗号化
41
トレーラ
ドキュメント
情報辞書
ドキュメント
カタログ
ドキュメント
アウトライン
ページリスト
ページ1 ページ2
ページ1の
コンテンツ
ページ1の
リソース
ページ2の
コンテンツ
ページ2の
リソース
:オブジェクト
図:暗号化されたPDFファイル
:参照リンク
基本的に文字列及びStreamのみが暗号化
復号しなくてもドキュメント構造にアクセスできる
(ObjStmに格納されているオブジェクトは除く)
4.o-checkerの検知の仕組み
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
PDFの基本構造:ObjStm(オブジェクトストリーム)
42
PDF1.5以降で、複数のオブジェクトを単一の
Streamに格納しそのStream全体を圧縮することで
PDFファイルをさらにコンパクトなものにするとい
うObjStmというものが導入されている
( PDF32000-1:2008 7.5.7)
1つに
まとめて
圧縮 (暗号化PDF)
暗号化
4.o-checkerの検知の仕組み
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
⑥分類できないセクションがないか
43
PDFファイル
コメント(ヘッダ)
本体
相互参照テーブル
トレーラー
コメント(EOF)
実行ファイル
ファイルの先頭から順番に読み込
みどのセクションに該当するか分
類しようとすると分類できない部
分がある
4.o-checkerの検知の仕組み
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
⑦参照されないオブジェクトがないか
44
トレーラ
ドキュメント
情報辞書
ドキュメント
カタログ
ドキュメント
アウトライン
ページリスト
ページ1 ページ2
ページ1の
コンテンツ
ページ1の
リソース
ページ2の
コンテンツ
ページ2の
リソース
:オブジェクト
:参照リンク
実行ファイル
図:実行ファイルが埋め込まれたPDFファイルのドキュメント構造
ドキュメント構造を無視して実行ファイルが埋め込まれると
どこからも参照されていないオブジェクトとなることが多い
実行ファイル :実行ファイルが埋め込ま
れたオブジェクト
4.o-checkerの検知の仕組み
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
実行ファイル
⑧偽装されたStreamがないか
45
フィルタ偽装
Stream末端に追加
正規のStream EOD
データの終了を示す情報
デコードに使用されるデータ
(通常どおりデコード可能)
デコードに使用
されないデータ
FlateDecode、DCTDecodeおよびJBIG2Decodeの場合
エントロピー
プレーンテキスト 小
FlateDecode 大
実行ファイル 大
エントロピーの値が近いフィルタを
使用しているように偽装
(デコードしようとすると失敗する)
4.o-checkerの検知の仕組み
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
悪性文書ファイル 通常の文書ファイル
ファイル
形式
拡張子 検体数
平均容量
(KB)
検体数
平均容量
(KB)
Rich Text rtf 98 266.5 199 516.2
doc 36 252.2 1,195 106.1
CFB xls 49 180.4 298 191.7
jtd/jtdc 17 268.5 - -
PDF pdf 164 351.2 9,109 101.7
合計 364 291.8 10,801 322.7
実験
46
2009年から2012年までに標的
型メール攻撃に使用された文
書ファイル※1
マルウェアダンプサイト
contagioでclean(マルウェ
アではない)とされた文書
ファイル※2
※1:docに拡張子が偽装されたRich Textはrtfでカウント
※2:http://contagiodump.blogspot.jp/2013/03/16800-clean-and-11960-
malicious-files.html
4.o-checkerの検知の仕組み
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
o-checkerの検査項目と検知率
47
①EOFの後にデータがついていないか
②ファイルサイズが異常でないか
③FATで参照できない領域が追加されていないか
④ファイル末端がFree Sectorでないか
⑤使途不明のsectorがないか
⑥分類できないセクションがないか
⑦参照されないオブジェクトがないか
⑧偽装されたStreamがないか
Rich Text
CFB
PDF
o-checker 99.0%
77.5%
90.2%
97.1%
96.1%
49.4%
43.9%
63.4%
99.0%
98.0%
99.4%
4.o-checkerの検知の仕組み
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
5.デモンストレーション
48
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
o-checkerのログ
49
C:¥tmp>pdfanalysis.py a.pdf
00000000-00000008:comment,
00000009-0000000F:comment,
00000010-00000110:obj 25 0 old(not used)
00000111-00000197:obj 26 0 old(not used)
:
00003622-000036B0:trailer
000036B1-000036C2:startxref 00003617
000036C3-000036C9:comment,
000036CA-0000E9E2:unknown
0000E9E3-0000E9E9:comment,
0000E9EA-0000EAEA:obj 25 0 ObjStm [7, 8, 13]
:
0001209D-000120A3:comment,
000120A4-000120A7:unknown
FFFFFFFF-FFFFFFFF:obj 7 0 xref from None
FFFFFFFF-FFFFFFFF:obj 8 0 xref from None
:
offset address 分類結果
Dummy Document
ObjStm
5.デモンストレーション
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
判定オプション
50
C:¥tmp>pdfanalysis.py a.pdf -j
00000000-00000008:comment,
00000009-0000000F:comment,
00000010-00000110:obj 25 0 old(not used)
00000111-00000197:obj 26 0 old(not used)
:
:
0001209D-000120A3:comment,
FFFFFFFF-FFFFFFFF:obj 7 0 xref from None
FFFFFFFF-FFFFFFFF:obj 8 0 xref from None
:
Malicious!
-j
判定オプション
ログの最後に
Malicious!
Suspicious!
None!
の3段階表示
5.デモンストレーション
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
51
DEMO 1
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
6.O-CHECKERの応用例
52
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
NIDSとo-checker
53
LANケーブル
NIDS
o-checker
パケット
キャプチャ
メール
復元
通知
既存のシステムをほとんど変更することなく
o-checkerを導入可能
6.o-checkerの応用例
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
NIDS
NIDSとo-checkerの課題
54
LANケーブル
o-checker
パケット
キャプチャ
メール
復元
通知
メールの復元に失敗
~2%
壊れた文書ファイル
~2%
フォルス・ポジティブ
up ~2%
ネットワークフォレンジック製品の仕様または性能に応じ
て誤検知が発生
6.o-checkerの応用例
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
NIDS
NIDSと改良型o-checker
55
LANケーブル
new
o-checker
パケット
キャプチャ
メール
復元
通知
メールの復元に失敗
~2%
壊れた文書ファイル
~2%
フォルス・ポジティブ
up ~0%
ファイルフォーマットに着目した構造解析で
壊れた文書ファイルを除外
6.o-checkerの応用例
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
o-checker
Android端末へのo-checkerの適用その1
56
メールサーバ
Manual delete
Manual check
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
57
DEMO 2
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
E-mailer
o-checker
Android端末へのo-checkerの適用その2
58
メールサーバ
Auto delete
Auto check
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
7.おわりに
59
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
まとめ
60
• 従来の検知法には限界がある
• 実行ファイルを埋め込んだ文書ファイル
に対しファイルフォーマットに着目した
構造解析は有効
• o-checkerは高速に高確率で悪性文書ファ
イルを検知するため様々な応用が考えら
れる
7.おわりに
CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan
61
ありがとうございました

Mais conteúdo relacionado

Mais procurados

簡単な算数でできる文章校正
簡単な算数でできる文章校正簡単な算数でできる文章校正
簡単な算数でできる文章校正hirokiky
 
katagaitai CTF勉強会 #3 crypto
katagaitai CTF勉強会 #3 cryptokatagaitai CTF勉強会 #3 crypto
katagaitai CTF勉強会 #3 cryptotrmr
 
シン モブ・プログラミング 第三形態
シン モブ・プログラミング 第三形態シン モブ・プログラミング 第三形態
シン モブ・プログラミング 第三形態atsushi nagata
 
密度比推定による時系列データの異常検知
密度比推定による時系列データの異常検知密度比推定による時系列データの異常検知
密度比推定による時系列データの異常検知- Core Concept Technologies
 
Open3DでSLAM入門 PyCon Kyushu 2018
Open3DでSLAM入門 PyCon Kyushu 2018Open3DでSLAM入門 PyCon Kyushu 2018
Open3DでSLAM入門 PyCon Kyushu 2018Satoshi Fujimoto
 
CREST「共生インタラクション」共創型音メディア機能拡張プロジェクト
CREST「共生インタラクション」共創型音メディア機能拡張プロジェクトCREST「共生インタラクション」共創型音メディア機能拡張プロジェクト
CREST「共生インタラクション」共創型音メディア機能拡張プロジェクトNU_I_TODALAB
 
広告配信のための高速疎ベクトル検索エンジンの開発@WebDBフォーラム2015 #webdbf2015
広告配信のための高速疎ベクトル検索エンジンの開発@WebDBフォーラム2015 #webdbf2015広告配信のための高速疎ベクトル検索エンジンの開発@WebDBフォーラム2015 #webdbf2015
広告配信のための高速疎ベクトル検索エンジンの開発@WebDBフォーラム2015 #webdbf2015Yahoo!デベロッパーネットワーク
 
SSII2020 [OS2-03] 深層学習における半教師あり学習の最新動向
SSII2020 [OS2-03] 深層学習における半教師あり学習の最新動向SSII2020 [OS2-03] 深層学習における半教師あり学習の最新動向
SSII2020 [OS2-03] 深層学習における半教師あり学習の最新動向SSII
 
音響信号に対する異常音検知技術と応用
音響信号に対する異常音検知技術と応用音響信号に対する異常音検知技術と応用
音響信号に対する異常音検知技術と応用Yuma Koizumi
 
老害について
老害について老害について
老害についてKen SASAKI
 
ニューラルネットワークを用いた自然言語処理
ニューラルネットワークを用いた自然言語処理ニューラルネットワークを用いた自然言語処理
ニューラルネットワークを用いた自然言語処理Sho Takase
 
PWNの超入門 大和セキュリティ神戸 2018-03-25
PWNの超入門 大和セキュリティ神戸 2018-03-25PWNの超入門 大和セキュリティ神戸 2018-03-25
PWNの超入門 大和セキュリティ神戸 2018-03-25Isaac Mathis
 
やさしく音声分析法を学ぶ: ケプストラム分析とLPC分析
やさしく音声分析法を学ぶ: ケプストラム分析とLPC分析やさしく音声分析法を学ぶ: ケプストラム分析とLPC分析
やさしく音声分析法を学ぶ: ケプストラム分析とLPC分析Shinnosuke Takamichi
 
AIのラボからロボティクスへ --- 東大松尾研究室のWRS2020パートナーロボットチャレンジへの挑戦
AIのラボからロボティクスへ --- 東大松尾研究室のWRS2020パートナーロボットチャレンジへの挑戦AIのラボからロボティクスへ --- 東大松尾研究室のWRS2020パートナーロボットチャレンジへの挑戦
AIのラボからロボティクスへ --- 東大松尾研究室のWRS2020パートナーロボットチャレンジへの挑戦Tatsuya Matsushima
 
Recent Advances on Transfer Learning and Related Topics Ver.2
Recent Advances on Transfer Learning and Related Topics Ver.2Recent Advances on Transfer Learning and Related Topics Ver.2
Recent Advances on Transfer Learning and Related Topics Ver.2Kota Matsui
 
論文の書き方・読み方
論文の書き方・読み方論文の書き方・読み方
論文の書き方・読み方Satoshi Miura
 
SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習
SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習
SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習SSII
 
部下へのコーチングのポイント:「ゼロ秒思考」のメモ書き実践による 先生:赤羽 雄二
部下へのコーチングのポイント:「ゼロ秒思考」のメモ書き実践による 先生:赤羽 雄二部下へのコーチングのポイント:「ゼロ秒思考」のメモ書き実践による 先生:赤羽 雄二
部下へのコーチングのポイント:「ゼロ秒思考」のメモ書き実践による 先生:赤羽 雄二schoowebcampus
 
大学3年生の僕に伝えたいことをつらつらと
大学3年生の僕に伝えたいことをつらつらと大学3年生の僕に伝えたいことをつらつらと
大学3年生の僕に伝えたいことをつらつらとToshinori Sato
 
論文に関する基礎知識2016
 論文に関する基礎知識2016 論文に関する基礎知識2016
論文に関する基礎知識2016Mai Otsuki
 

Mais procurados (20)

簡単な算数でできる文章校正
簡単な算数でできる文章校正簡単な算数でできる文章校正
簡単な算数でできる文章校正
 
katagaitai CTF勉強会 #3 crypto
katagaitai CTF勉強会 #3 cryptokatagaitai CTF勉強会 #3 crypto
katagaitai CTF勉強会 #3 crypto
 
シン モブ・プログラミング 第三形態
シン モブ・プログラミング 第三形態シン モブ・プログラミング 第三形態
シン モブ・プログラミング 第三形態
 
密度比推定による時系列データの異常検知
密度比推定による時系列データの異常検知密度比推定による時系列データの異常検知
密度比推定による時系列データの異常検知
 
Open3DでSLAM入門 PyCon Kyushu 2018
Open3DでSLAM入門 PyCon Kyushu 2018Open3DでSLAM入門 PyCon Kyushu 2018
Open3DでSLAM入門 PyCon Kyushu 2018
 
CREST「共生インタラクション」共創型音メディア機能拡張プロジェクト
CREST「共生インタラクション」共創型音メディア機能拡張プロジェクトCREST「共生インタラクション」共創型音メディア機能拡張プロジェクト
CREST「共生インタラクション」共創型音メディア機能拡張プロジェクト
 
広告配信のための高速疎ベクトル検索エンジンの開発@WebDBフォーラム2015 #webdbf2015
広告配信のための高速疎ベクトル検索エンジンの開発@WebDBフォーラム2015 #webdbf2015広告配信のための高速疎ベクトル検索エンジンの開発@WebDBフォーラム2015 #webdbf2015
広告配信のための高速疎ベクトル検索エンジンの開発@WebDBフォーラム2015 #webdbf2015
 
SSII2020 [OS2-03] 深層学習における半教師あり学習の最新動向
SSII2020 [OS2-03] 深層学習における半教師あり学習の最新動向SSII2020 [OS2-03] 深層学習における半教師あり学習の最新動向
SSII2020 [OS2-03] 深層学習における半教師あり学習の最新動向
 
音響信号に対する異常音検知技術と応用
音響信号に対する異常音検知技術と応用音響信号に対する異常音検知技術と応用
音響信号に対する異常音検知技術と応用
 
老害について
老害について老害について
老害について
 
ニューラルネットワークを用いた自然言語処理
ニューラルネットワークを用いた自然言語処理ニューラルネットワークを用いた自然言語処理
ニューラルネットワークを用いた自然言語処理
 
PWNの超入門 大和セキュリティ神戸 2018-03-25
PWNの超入門 大和セキュリティ神戸 2018-03-25PWNの超入門 大和セキュリティ神戸 2018-03-25
PWNの超入門 大和セキュリティ神戸 2018-03-25
 
やさしく音声分析法を学ぶ: ケプストラム分析とLPC分析
やさしく音声分析法を学ぶ: ケプストラム分析とLPC分析やさしく音声分析法を学ぶ: ケプストラム分析とLPC分析
やさしく音声分析法を学ぶ: ケプストラム分析とLPC分析
 
AIのラボからロボティクスへ --- 東大松尾研究室のWRS2020パートナーロボットチャレンジへの挑戦
AIのラボからロボティクスへ --- 東大松尾研究室のWRS2020パートナーロボットチャレンジへの挑戦AIのラボからロボティクスへ --- 東大松尾研究室のWRS2020パートナーロボットチャレンジへの挑戦
AIのラボからロボティクスへ --- 東大松尾研究室のWRS2020パートナーロボットチャレンジへの挑戦
 
Recent Advances on Transfer Learning and Related Topics Ver.2
Recent Advances on Transfer Learning and Related Topics Ver.2Recent Advances on Transfer Learning and Related Topics Ver.2
Recent Advances on Transfer Learning and Related Topics Ver.2
 
論文の書き方・読み方
論文の書き方・読み方論文の書き方・読み方
論文の書き方・読み方
 
SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習
SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習
SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習
 
部下へのコーチングのポイント:「ゼロ秒思考」のメモ書き実践による 先生:赤羽 雄二
部下へのコーチングのポイント:「ゼロ秒思考」のメモ書き実践による 先生:赤羽 雄二部下へのコーチングのポイント:「ゼロ秒思考」のメモ書き実践による 先生:赤羽 雄二
部下へのコーチングのポイント:「ゼロ秒思考」のメモ書き実践による 先生:赤羽 雄二
 
大学3年生の僕に伝えたいことをつらつらと
大学3年生の僕に伝えたいことをつらつらと大学3年生の僕に伝えたいことをつらつらと
大学3年生の僕に伝えたいことをつらつらと
 
論文に関する基礎知識2016
 論文に関する基礎知識2016 論文に関する基礎知識2016
論文に関する基礎知識2016
 

Semelhante a o-checker:悪性文書ファイル検知ツール~ファイルサイズからにじみ出る悪意 by 大坪 雄平

[CB19] FileInsight-plugins: Decoding toolbox for malware analysis by 萬谷 暢崇
[CB19] FileInsight-plugins: Decoding toolbox for malware analysis by 萬谷 暢崇[CB19] FileInsight-plugins: Decoding toolbox for malware analysis by 萬谷 暢崇
[CB19] FileInsight-plugins: Decoding toolbox for malware analysis by 萬谷 暢崇CODE BLUE
 
[JPCERT/CC POC Meeting] 研究紹介 + DLLハイジャックの脆弱性
[JPCERT/CC POC Meeting] 研究紹介 + DLLハイジャックの脆弱性[JPCERT/CC POC Meeting] 研究紹介 + DLLハイジャックの脆弱性
[JPCERT/CC POC Meeting] 研究紹介 + DLLハイジャックの脆弱性Asuka Nakajima
 
cs-10. Python の基礎(オブジェクト,メソッド,引数,文字列)
cs-10. Python の基礎(オブジェクト,メソッド,引数,文字列) cs-10. Python の基礎(オブジェクト,メソッド,引数,文字列)
cs-10. Python の基礎(オブジェクト,メソッド,引数,文字列) kunihikokaneko1
 
2014 0228 OSC-Spring Tokyo NETMF
2014 0228 OSC-Spring Tokyo NETMF2014 0228 OSC-Spring Tokyo NETMF
2014 0228 OSC-Spring Tokyo NETMFAtomu Hidaka
 
20130824 Lightweight Language "Go" @LL matsuri
20130824 Lightweight Language "Go" @LL matsuri20130824 Lightweight Language "Go" @LL matsuri
20130824 Lightweight Language "Go" @LL matsuriYoshifumi Yamaguchi
 
Fluentd+MongoDB+Groovy
Fluentd+MongoDB+GroovyFluentd+MongoDB+Groovy
Fluentd+MongoDB+GroovyDaisuke Ando
 
OSSで作る機械学習を用いたペネトレーションテストツール
OSSで作る機械学習を用いたペネトレーションテストツールOSSで作る機械学習を用いたペネトレーションテストツール
OSSで作る機械学習を用いたペネトレーションテストツールIsao Takaesu
 
MakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発をMakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発をAtsuhiro Kubo
 
エンタープライズソフトウェア開発とOSS
エンタープライズソフトウェア開発とOSSエンタープライズソフトウェア開発とOSS
エンタープライズソフトウェア開発とOSSHiroshi Nakamura
 
『Pythonによる ai・機械学習・深層学習アプリのつくり方』をGoogleColabで動く限り動かしてみた
『Pythonによる ai・機械学習・深層学習アプリのつくり方』をGoogleColabで動く限り動かしてみた『Pythonによる ai・機械学習・深層学習アプリのつくり方』をGoogleColabで動く限り動かしてみた
『Pythonによる ai・機械学習・深層学習アプリのつくり方』をGoogleColabで動く限り動かしてみたTakehiro Eguchi
 
Dart / Flutter コードファイルジェネレート入門
Dart / Flutter コードファイルジェネレート入門Dart / Flutter コードファイルジェネレート入門
Dart / Flutter コードファイルジェネレート入門cch-robo
 
Code igniter + ci phpunit-test
Code igniter + ci phpunit-testCode igniter + ci phpunit-test
Code igniter + ci phpunit-testME iBotch
 
[デブサミ2012]趣味と実益の脆弱性発見
[デブサミ2012]趣味と実益の脆弱性発見[デブサミ2012]趣味と実益の脆弱性発見
[デブサミ2012]趣味と実益の脆弱性発見Yosuke HASEGAWA
 
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」Shuji Morisaki
 
ドキュメントの話、しませんか? #428rk01
ドキュメントの話、しませんか? #428rk01ドキュメントの話、しませんか? #428rk01
ドキュメントの話、しませんか? #428rk01Takeshi Komiya
 
【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話
【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話
【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話Hibino Hisashi
 
パケット解析ノススメ
パケット解析ノススメパケット解析ノススメ
パケット解析ノススメ彰 村地
 

Semelhante a o-checker:悪性文書ファイル検知ツール~ファイルサイズからにじみ出る悪意 by 大坪 雄平 (20)

[CB19] FileInsight-plugins: Decoding toolbox for malware analysis by 萬谷 暢崇
[CB19] FileInsight-plugins: Decoding toolbox for malware analysis by 萬谷 暢崇[CB19] FileInsight-plugins: Decoding toolbox for malware analysis by 萬谷 暢崇
[CB19] FileInsight-plugins: Decoding toolbox for malware analysis by 萬谷 暢崇
 
可視化法学-大和超券ステージ
可視化法学-大和超券ステージ可視化法学-大和超券ステージ
可視化法学-大和超券ステージ
 
[JPCERT/CC POC Meeting] 研究紹介 + DLLハイジャックの脆弱性
[JPCERT/CC POC Meeting] 研究紹介 + DLLハイジャックの脆弱性[JPCERT/CC POC Meeting] 研究紹介 + DLLハイジャックの脆弱性
[JPCERT/CC POC Meeting] 研究紹介 + DLLハイジャックの脆弱性
 
cs-10. Python の基礎(オブジェクト,メソッド,引数,文字列)
cs-10. Python の基礎(オブジェクト,メソッド,引数,文字列) cs-10. Python の基礎(オブジェクト,メソッド,引数,文字列)
cs-10. Python の基礎(オブジェクト,メソッド,引数,文字列)
 
2014 0228 OSC-Spring Tokyo NETMF
2014 0228 OSC-Spring Tokyo NETMF2014 0228 OSC-Spring Tokyo NETMF
2014 0228 OSC-Spring Tokyo NETMF
 
20130824 Lightweight Language "Go" @LL matsuri
20130824 Lightweight Language "Go" @LL matsuri20130824 Lightweight Language "Go" @LL matsuri
20130824 Lightweight Language "Go" @LL matsuri
 
Fluentd+MongoDB+Groovy
Fluentd+MongoDB+GroovyFluentd+MongoDB+Groovy
Fluentd+MongoDB+Groovy
 
OSSで作る機械学習を用いたペネトレーションテストツール
OSSで作る機械学習を用いたペネトレーションテストツールOSSで作る機械学習を用いたペネトレーションテストツール
OSSで作る機械学習を用いたペネトレーションテストツール
 
MakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発をMakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発を
 
エンタープライズソフトウェア開発とOSS
エンタープライズソフトウェア開発とOSSエンタープライズソフトウェア開発とOSS
エンタープライズソフトウェア開発とOSS
 
14対話bot発表資料
14対話bot発表資料14対話bot発表資料
14対話bot発表資料
 
『Pythonによる ai・機械学習・深層学習アプリのつくり方』をGoogleColabで動く限り動かしてみた
『Pythonによる ai・機械学習・深層学習アプリのつくり方』をGoogleColabで動く限り動かしてみた『Pythonによる ai・機械学習・深層学習アプリのつくり方』をGoogleColabで動く限り動かしてみた
『Pythonによる ai・機械学習・深層学習アプリのつくり方』をGoogleColabで動く限り動かしてみた
 
Dart / Flutter コードファイルジェネレート入門
Dart / Flutter コードファイルジェネレート入門Dart / Flutter コードファイルジェネレート入門
Dart / Flutter コードファイルジェネレート入門
 
Code igniter + ci phpunit-test
Code igniter + ci phpunit-testCode igniter + ci phpunit-test
Code igniter + ci phpunit-test
 
[デブサミ2012]趣味と実益の脆弱性発見
[デブサミ2012]趣味と実益の脆弱性発見[デブサミ2012]趣味と実益の脆弱性発見
[デブサミ2012]趣味と実益の脆弱性発見
 
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
 
ドキュメントの話、しませんか? #428rk01
ドキュメントの話、しませんか? #428rk01ドキュメントの話、しませんか? #428rk01
ドキュメントの話、しませんか? #428rk01
 
Python3でwebアプリ
Python3でwebアプリPython3でwebアプリ
Python3でwebアプリ
 
【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話
【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話
【DeepSecurityUserNight】我が家の箱入り娘を世間に晒すのは危険なのでDeepSecurityに見守ってもらった話
 
パケット解析ノススメ
パケット解析ノススメパケット解析ノススメ
パケット解析ノススメ
 

Mais de CODE BLUE

[cb22] Hayabusa Threat Hunting and Fast Forensics in Windows environments fo...
[cb22] Hayabusa  Threat Hunting and Fast Forensics in Windows environments fo...[cb22] Hayabusa  Threat Hunting and Fast Forensics in Windows environments fo...
[cb22] Hayabusa Threat Hunting and Fast Forensics in Windows environments fo...CODE BLUE
 
[cb22] Tales of 5G hacking by Karsten Nohl
[cb22] Tales of 5G hacking by Karsten Nohl[cb22] Tales of 5G hacking by Karsten Nohl
[cb22] Tales of 5G hacking by Karsten NohlCODE BLUE
 
[cb22] Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...
[cb22]  Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...[cb22]  Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...
[cb22] Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...CODE BLUE
 
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...CODE BLUE
 
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(4) by 板橋 博之
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(4) by 板橋 博之[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(4) by 板橋 博之
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(4) by 板橋 博之CODE BLUE
 
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...CODE BLUE
 
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(3) by Lorenzo Pupillo
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(3) by Lorenzo Pupillo[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(3) by Lorenzo Pupillo
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(3) by Lorenzo PupilloCODE BLUE
 
[cb22] ”The Present and Future of Coordinated Vulnerability Disclosure” Inte...
[cb22]  ”The Present and Future of Coordinated Vulnerability Disclosure” Inte...[cb22]  ”The Present and Future of Coordinated Vulnerability Disclosure” Inte...
[cb22] ”The Present and Future of Coordinated Vulnerability Disclosure” Inte...CODE BLUE
 
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(2)by Allan Friedman
[cb22]  「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(2)by Allan Friedman [cb22]  「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(2)by Allan Friedman
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(2)by Allan Friedman CODE BLUE
 
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...CODE BLUE
 
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション (1)by 高橋 郁夫
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション (1)by  高橋 郁夫[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション (1)by  高橋 郁夫
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション (1)by 高橋 郁夫CODE BLUE
 
[cb22] Are Embedded Devices Ready for ROP Attacks? -ROP verification for low-...
[cb22] Are Embedded Devices Ready for ROP Attacks? -ROP verification for low-...[cb22] Are Embedded Devices Ready for ROP Attacks? -ROP verification for low-...
[cb22] Are Embedded Devices Ready for ROP Attacks? -ROP verification for low-...CODE BLUE
 
[cb22] Wslinkのマルチレイヤーな仮想環境について by Vladislav Hrčka
[cb22] Wslinkのマルチレイヤーな仮想環境について by Vladislav Hrčka [cb22] Wslinkのマルチレイヤーな仮想環境について by Vladislav Hrčka
[cb22] Wslinkのマルチレイヤーな仮想環境について by Vladislav Hrčka CODE BLUE
 
[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...
[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...
[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...CODE BLUE
 
[cb22] CloudDragon’s Credential Factory is Powering Up Its Espionage Activiti...
[cb22] CloudDragon’s Credential Factory is Powering Up Its Espionage Activiti...[cb22] CloudDragon’s Credential Factory is Powering Up Its Espionage Activiti...
[cb22] CloudDragon’s Credential Factory is Powering Up Its Espionage Activiti...CODE BLUE
 
[cb22] From Parroting to Echoing: The Evolution of China’s Bots-Driven Info...
[cb22]  From Parroting to Echoing:  The Evolution of China’s Bots-Driven Info...[cb22]  From Parroting to Echoing:  The Evolution of China’s Bots-Driven Info...
[cb22] From Parroting to Echoing: The Evolution of China’s Bots-Driven Info...CODE BLUE
 
[cb22] Who is the Mal-Gopher? - Implementation and Evaluation of “gimpfuzzy”...
[cb22]  Who is the Mal-Gopher? - Implementation and Evaluation of “gimpfuzzy”...[cb22]  Who is the Mal-Gopher? - Implementation and Evaluation of “gimpfuzzy”...
[cb22] Who is the Mal-Gopher? - Implementation and Evaluation of “gimpfuzzy”...CODE BLUE
 
[cb22] Mal-gopherとは?Go系マルウェアの分類のためのgimpfuzzy実装と評価 by 澤部 祐太, 甘粕 伸幸, 野村 和也
[cb22] Mal-gopherとは?Go系マルウェアの分類のためのgimpfuzzy実装と評価 by 澤部 祐太, 甘粕 伸幸, 野村 和也[cb22] Mal-gopherとは?Go系マルウェアの分類のためのgimpfuzzy実装と評価 by 澤部 祐太, 甘粕 伸幸, 野村 和也
[cb22] Mal-gopherとは?Go系マルウェアの分類のためのgimpfuzzy実装と評価 by 澤部 祐太, 甘粕 伸幸, 野村 和也CODE BLUE
 
[cb22] Tracking the Entire Iceberg - Long-term APT Malware C2 Protocol Emulat...
[cb22] Tracking the Entire Iceberg - Long-term APT Malware C2 Protocol Emulat...[cb22] Tracking the Entire Iceberg - Long-term APT Malware C2 Protocol Emulat...
[cb22] Tracking the Entire Iceberg - Long-term APT Malware C2 Protocol Emulat...CODE BLUE
 
[cb22] Fight Against Malware Development Life Cycle by Shusei Tomonaga and Yu...
[cb22] Fight Against Malware Development Life Cycle by Shusei Tomonaga and Yu...[cb22] Fight Against Malware Development Life Cycle by Shusei Tomonaga and Yu...
[cb22] Fight Against Malware Development Life Cycle by Shusei Tomonaga and Yu...CODE BLUE
 

Mais de CODE BLUE (20)

[cb22] Hayabusa Threat Hunting and Fast Forensics in Windows environments fo...
[cb22] Hayabusa  Threat Hunting and Fast Forensics in Windows environments fo...[cb22] Hayabusa  Threat Hunting and Fast Forensics in Windows environments fo...
[cb22] Hayabusa Threat Hunting and Fast Forensics in Windows environments fo...
 
[cb22] Tales of 5G hacking by Karsten Nohl
[cb22] Tales of 5G hacking by Karsten Nohl[cb22] Tales of 5G hacking by Karsten Nohl
[cb22] Tales of 5G hacking by Karsten Nohl
 
[cb22] Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...
[cb22]  Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...[cb22]  Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...
[cb22] Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...
 
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
 
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(4) by 板橋 博之
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(4) by 板橋 博之[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(4) by 板橋 博之
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(4) by 板橋 博之
 
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
 
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(3) by Lorenzo Pupillo
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(3) by Lorenzo Pupillo[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(3) by Lorenzo Pupillo
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(3) by Lorenzo Pupillo
 
[cb22] ”The Present and Future of Coordinated Vulnerability Disclosure” Inte...
[cb22]  ”The Present and Future of Coordinated Vulnerability Disclosure” Inte...[cb22]  ”The Present and Future of Coordinated Vulnerability Disclosure” Inte...
[cb22] ”The Present and Future of Coordinated Vulnerability Disclosure” Inte...
 
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(2)by Allan Friedman
[cb22]  「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(2)by Allan Friedman [cb22]  「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(2)by Allan Friedman
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(2)by Allan Friedman
 
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
 
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション (1)by 高橋 郁夫
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション (1)by  高橋 郁夫[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション (1)by  高橋 郁夫
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション (1)by 高橋 郁夫
 
[cb22] Are Embedded Devices Ready for ROP Attacks? -ROP verification for low-...
[cb22] Are Embedded Devices Ready for ROP Attacks? -ROP verification for low-...[cb22] Are Embedded Devices Ready for ROP Attacks? -ROP verification for low-...
[cb22] Are Embedded Devices Ready for ROP Attacks? -ROP verification for low-...
 
[cb22] Wslinkのマルチレイヤーな仮想環境について by Vladislav Hrčka
[cb22] Wslinkのマルチレイヤーな仮想環境について by Vladislav Hrčka [cb22] Wslinkのマルチレイヤーな仮想環境について by Vladislav Hrčka
[cb22] Wslinkのマルチレイヤーな仮想環境について by Vladislav Hrčka
 
[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...
[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...
[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...
 
[cb22] CloudDragon’s Credential Factory is Powering Up Its Espionage Activiti...
[cb22] CloudDragon’s Credential Factory is Powering Up Its Espionage Activiti...[cb22] CloudDragon’s Credential Factory is Powering Up Its Espionage Activiti...
[cb22] CloudDragon’s Credential Factory is Powering Up Its Espionage Activiti...
 
[cb22] From Parroting to Echoing: The Evolution of China’s Bots-Driven Info...
[cb22]  From Parroting to Echoing:  The Evolution of China’s Bots-Driven Info...[cb22]  From Parroting to Echoing:  The Evolution of China’s Bots-Driven Info...
[cb22] From Parroting to Echoing: The Evolution of China’s Bots-Driven Info...
 
[cb22] Who is the Mal-Gopher? - Implementation and Evaluation of “gimpfuzzy”...
[cb22]  Who is the Mal-Gopher? - Implementation and Evaluation of “gimpfuzzy”...[cb22]  Who is the Mal-Gopher? - Implementation and Evaluation of “gimpfuzzy”...
[cb22] Who is the Mal-Gopher? - Implementation and Evaluation of “gimpfuzzy”...
 
[cb22] Mal-gopherとは?Go系マルウェアの分類のためのgimpfuzzy実装と評価 by 澤部 祐太, 甘粕 伸幸, 野村 和也
[cb22] Mal-gopherとは?Go系マルウェアの分類のためのgimpfuzzy実装と評価 by 澤部 祐太, 甘粕 伸幸, 野村 和也[cb22] Mal-gopherとは?Go系マルウェアの分類のためのgimpfuzzy実装と評価 by 澤部 祐太, 甘粕 伸幸, 野村 和也
[cb22] Mal-gopherとは?Go系マルウェアの分類のためのgimpfuzzy実装と評価 by 澤部 祐太, 甘粕 伸幸, 野村 和也
 
[cb22] Tracking the Entire Iceberg - Long-term APT Malware C2 Protocol Emulat...
[cb22] Tracking the Entire Iceberg - Long-term APT Malware C2 Protocol Emulat...[cb22] Tracking the Entire Iceberg - Long-term APT Malware C2 Protocol Emulat...
[cb22] Tracking the Entire Iceberg - Long-term APT Malware C2 Protocol Emulat...
 
[cb22] Fight Against Malware Development Life Cycle by Shusei Tomonaga and Yu...
[cb22] Fight Against Malware Development Life Cycle by Shusei Tomonaga and Yu...[cb22] Fight Against Malware Development Life Cycle by Shusei Tomonaga and Yu...
[cb22] Fight Against Malware Development Life Cycle by Shusei Tomonaga and Yu...
 

o-checker:悪性文書ファイル検知ツール~ファイルサイズからにじみ出る悪意 by 大坪 雄平

  • 1. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan o-checker: 悪性文書ファイル検知ツール ~ファイルサイズからにじみ出る悪意 大坪 雄平 1
  • 2. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan 目次 2 1.はじめに 2.バイナリエディタで見る 悪性文書ファイルの構造 3.o-checkerの概要 4.o-checkerの検知の仕組み 5.デモンストレーション 6.o-checkerの応用例 7.おわりに
  • 3. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan 1.はじめに 3
  • 4. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan 標的型攻撃の増加① 4 1.はじめに http://www.symantec.com/threatreport/topic.jsp?aid=industrial_espionage&id=malicious_code_trends
  • 5. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan 標的型攻撃の増加② 5 政府機関等への標的型メールに関する注意喚起の件数 ※GSOC:Government Security Operation Coordination team 政府機関情報セキュリティ横断監視・即応調整チーム 1.はじめに
  • 6. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan 標的型攻撃の増加③ 6 20112007 5.4% → 33% 出典:経済産業省委託調査(2007年、2011年) 標的型と見られるサイバー攻撃を受けたことがある(企業) 1.はじめに
  • 7. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan 標的型攻撃の例 7 1.はじめに 機密 情報 マルウェア付き メールを送信 添付ファイル を開く マルウェア に感染 特定の企業や個人のネットワーク 攻撃者 受信者 機密情報 の漏えい ① ② ③ ④
  • 8. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan 標的型メール攻撃の添付ファイル 8 標的型メール攻撃の添付ファイル拡張子の傾向(2013年上半期トレンドマイクロ調べ) http://is702.jp/special/1431/ 実行ファイル形式:59% 文書ファイル形式:41% 1.はじめに
  • 9. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan 2.バイナリエディタで見る 悪性文書ファイルの構造 9
  • 10. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan 文書ファイル exploit shell code RAT(実行ファイル) 表示用(ダミー)ファイル 実行ファイルが埋め込まれた悪性文書ファイルの構造 10 閲覧ソフトの脆弱 性を突くコード RAT・表示用 ファイルのデコー ド出力 実行・表示 様々な方式でエン コード 文書ファイルの表 示内容と関係しな い部分 2.バイナリエディタで見る悪性文書ファイルの構造
  • 11. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan 悪性文書ファイルの具体例~バイナリエディタを中心に 11 Bitmap View Hex View 2.バイナリエディタで見る悪性文書ファイルの構造
  • 12. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan 悪性PDFファイル具体例:exploit(1/2) 12 31番のオブジェクト JavaScript本体(exploit) Flate圧縮されている 2.バイナリエディタで見る悪性文書ファイルの構造 29番のオブジェクト JavaScript 実際の中身は31番のオブジェクト
  • 13. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan 悪性PDFファイル具体例:exploit(2/2) 13 Flate圧縮されているデータを展開すると… ↓エスケープ処理をされたshellcode 2.バイナリエディタで見る悪性文書ファイルの構造
  • 14. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan 悪性PDFファイル具体例:shellcode 14 2.バイナリエディタで見る悪性文書ファイルの構造
  • 15. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan 悪性PDFファイル具体例:shellcode 15 デコーダ 40 Byte 印刷可能な文字に変換された shellcode本体 2.バイナリエディタで見る悪性文書ファイルの構造
  • 16. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan 悪性PDFファイル具体例:実行ファイル(1/2) 16 2.バイナリエディタで見る悪性文書ファイルの構造 エンコードされた実行ファイル
  • 17. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan 悪性PDFファイル具体例:実行ファイル(2/2) 17 デコードした実行ファイル 2.バイナリエディタで見る悪性文書ファイルの構造
  • 18. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan 悪性PDFファイル具体例:表示用(ダミー)ファイル 18 2.バイナリエディタで見る悪性文書ファイルの構造
  • 19. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan 3.O-CHECKERの概要 19
  • 20. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan 不正なコードを静的解析・動的解析し 得られた特徴を検知に利用する 文書ファイル exploit shell code RAT(実行ファイル) 表示用(ダミー)ファイル 従来の悪性文書ファイルの検知 20 不正なコード 3.o-checkerの概要 従来の手法 ・ 不正なコードをエンコードすることに より静的解析から得られる特徴を容易に 書換可能 ・ 特定の条件でのみ動作するマルウェア は動的解析が難しい 課題
  • 21. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan イタチごっこ 21 攻撃者が任意に記述できる部分(不正なデータの中身) を検知に利用すると… イタチごっこ 3.o-checkerの概要 不正なコードを元にシグネチャを作成 防御側 シグネチャに引っかからないように 不正なコードを作成 攻撃側
  • 22. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan イタチごっこからの脱出 22 攻撃者が任意に記述できない部分(例えばファイルフォーマット) を検知に利用すると… イタチごっこ 3.o-checkerの概要 ファイルフォーマットに着目した静的解析 を元にシグネチャを作成 防御側 シグネチャに引っかからないように 不正なコードを作成 攻撃側 シグネチャに引っかからないように ファイルフォーマットを変更
  • 23. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan ファイルフォーマットから見る悪性文書ファイルの特徴 23 文書ファイルは画像、テキスト、補助的なデータなど様々なデータの集合体 閲覧ソフトが処理しないデータは文書ファイルの中に通常は入れない 閲覧ソフトが処理するデータか否か 理由 exploit ○ 閲覧ソフトの脆弱性を攻撃するため shellcode ○ 通常はexploitの中に組み込み 実行ファイル × 閲覧ソフトが読み込むと文字化けや誤作 動して攻撃の成功確率が下がる 表示用(ダミー)ファ イル × 閲覧ソフトが読み込むと文字化けや誤作 動して攻撃の成功確率が下がる 3.o-checkerの概要 それぞれのデータには何かしら役目がある
  • 24. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan o-checkerの検知の仕組み(簡略版) 内部構造と表示内容が対応 表示内容 内部構造 内部構造と表示内容が対応しない 表示内容 内部構造 一般的な文書ファイル 悪性文書ファイル 内部構造を検査して検知 3.o-checkerの概要
  • 25. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan o-checkerの効果 25 ・ 高速かつ高い検知率 検知率 98.9% 平均実行時間 約0.3秒 ・ メンテナンスフリー 更新頻度 備考 ウイルス対策ソフト 毎日 1日あたり20万個の新種マルウェア(2012 年)※ o-checker ほぼなし 新しい文書ファイル形式が出れば更新 msanalysis.py 入力 実行ファイルが 埋込まれたファイル pdfanalysis.py 入力 検知 3.o-checkerの概要 ※:http://www.kaspersky.com/about/news/virus/2012/2012_by_the_numbers_Kaspersky_Lab_now_detects_200000_new_malicious_programs_every_day
  • 26. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan 4.O-CHECKERの検知の仕組み 26
  • 27. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan o-checkerの検査項目 27 ①EOFの後にデータがついていないか ②ファイルサイズが異常でないか ③FATで参照できない領域が追加されていないか ④ファイル末端がFree Sectorでないか ⑤使途不明のsectorがないか ⑥分類できないセクションがないか ⑦参照されないオブジェクトがないか ⑧偽装されたStreamがないか Rich Text CFB PDF o-checker 4.o-checkerの検知の仕組み
  • 28. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan Rich Text形式のファイルの基本構造 28 {¥rtf Hello!¥par This is some {¥b bold} text.¥par } RTFのデータはテキスト形式を用いており、プレーンテキストに装飾やレイ アウトのための制御用の文字列を付加した形式となっている※ ※:wikipediaより引用 図:Rich Text形式のファイルの例 RTFファイルであるこ とを示すシグネチャ 最初の`{`に対応する`}`がファイルの最後(EOF) 4.o-checkerの検知の仕組み
  • 29. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan ①EOFの後にデータがついていないか 29 {¥rtf Hello!¥par This is some {¥b bold} text.¥par } MZ・ ク ・ コ エ ヘ!ク L!This program cannot be run in DOS mode.$ 猝t讀ォオ、ォオ、ォオュモ 招ヲォオュモ楫喚オ、ォオ0ェオュモ卸・オュモ匏ウォ Rich、ォオ PE d・ ヤノ[J ・ " 表示に影響を 与えないファ イル末尾に実 行ファイルを 挿入 図:実行ファイルを埋め込まれたRich Text形式のファイルの例 EOFの後にデータが存在 4.o-checkerの検知の仕組み
  • 30. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan CFB形式のファイル(doc、xls、ppt、 jtd/jtdc ) 30 Root Storage Storage 1 Storage 2 Storage 3 Stream A Stream B Stream C 引用:[MS-CFB] – v20130118 Compound File Binary Format (http://msdn.microsoft.com/en-us/library/dd942138.aspx) ファイルシステムでいうと Stream → ファイル Storage → フォルダ CFB:Compound File Binary 複数のデータを階層構造で1つのファイルに格納できる Microsoft社が作成したアーカイブ形式 Micrsoft Word等で使用されている doc,ppt,xls,jtd/jtdc※ 4.o-checkerの検知の仕組み ※:Justsystem社が開発した日本語ワープロソフト で使用する拡張子
  • 31. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan CFB(doc、xls、ppt、jtd/jtdc)のファイル構造 31 header FAT0 Directory Entry Stream A Stream A Free Sector Stream B 1 2 3 4 5 Physical Structure -2 -2 3 -2 -1 -2 Directory Entry index sector 4.o-checkerの検知の仕組み Stream Name:a.txt Size:696 Index:2 Stream Name:b.txt Size:318 Index:5 Storage Name:root Size:- Index:- FAT (File Allocation Table)
  • 32. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan CFB(doc、xls、ppt、jtd/jtdc)のファイル構造 32 header FAT0 Directory Entry Stream A Stream A Free Sector Stream B 1 2 3 4 5 Physical Structure 512 Byte (512 or 4096) x N Byte FileSize = 512 + (512 or 4096) x N = 512 x M 正規のCFBファイルのファイルサイズは必ず512の 倍数 4.o-checkerの検知の仕組み
  • 33. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan ②ファイルサイズが異常でないか 33 header FAT0 Directory Entry Stream A Stream A Free Sector Stream B 1 2 3 4 5 Physical Structure -2 -2 3 -2 -1 -2 FAT (File Allocation Table) Directory Entry malware6 7 ヘッダを除いたファイルサイズがsectorサイズ単 位でない  512 で割ったら余りが出る 4.o-checkerの検知の仕組み Stream Name:a.txt Size:696 Index:2 Stream Name:b.txt Size:318 Index:5 Storage Name:root Size:- Index:-
  • 34. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan ③FATで参照できない領域が追加されていないか 34 header FAT0 Directory Entry Stream A Stream A Free Sector Stream B 1 2 3 4 5 Physical Structure -2 -2 3 -2 -1 -2 Directory Entry malware6 7 FATで参照可能な領域にファイルが収まっていない -1 FATで参照可能な領域: (FATセクタ数)×128×512 (Byte) 4.o-checkerの検知の仕組み Stream Name:a.txt Size:696 Index:2 Stream Name:b.txt Size:318 Index:5 Storage Name:root Size:- Index:- FAT (File Allocation Table) ?
  • 35. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan ④ファイル末端がFree Sectorでないか 35 header FAT0 Directory Entry Stream A Stream A Free Sector Stream B 1 2 3 4 5 Physical Structure -2 -2 3 -2 -1 -2 Directory Entry malware6-1 sectorサイズが512バイトの場合 n = (ファイルサイズ-512)/512 n 4.o-checkerの検知の仕組み Stream Name:a.txt Size:696 Index:2 Stream Name:b.txt Size:318 Index:5 Storage Name:root Size:- Index:- FAT (File Allocation Table) ファイルの最後に対応するsector(n番目の sector)がFree Sector
  • 36. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan ⑤使途不明のsectorがないか 36 header FAT0 Directory Entry Stream A Stream A Free Sector Stream B 1 2 3 4 5 Physical Structure -2 -2 3 -2 -1 -2 Directory Entry malware6 FAT(DI-FAT、miniFATを含む)、DE、Stream、 Free Sectorに分類できないsectorがある -2 4.o-checkerの検知の仕組み Stream Name:a.txt Size:696 Index:2 Stream Name:b.txt Size:318 Index:5 Storage Name:root Size:- Index:- FAT (File Allocation Table)
  • 37. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan PDFファイル PDFの基本構造:ファイル構造 コメント(ヘッダ) 本体 相互参照テーブル トレーラー コメント(EOF) ページコンテンツ やグラフィックス コンテンツ、多く の補助的な情報が オブジェクト一式 としてエンコード されている 1 0 obj 2 0 obj n 0 obj ファイルの終端を示すマーカー x 0 obj <</R2 /P-64 /V 2 /O (dfhjaklgk… …>> PDFは大量のオブジェクト(整数、文字列、バイナリデータ等)の集合体 4種類の セクション 4.o-checkerの検知の仕組み
  • 38. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan PDFの基本構造:オブジェクト型 38 基本的なオブジェクト ①整数や実数 ②文字列 ③名前 ④ブーリアン値 ⑤nullオブジェクト 複合オブジェクト ⑥配列 ⑦辞書 その他 ⑧Stream(バイナリデータを格納するためのもの) ⑨間接参照 (PDF32000-1:2008 7.3) 4.o-checkerの検知の仕組み
  • 39. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan PDFの基本構造:Streamのエンコード 39 PDF標準の機能としてStreamにフィルタをかけることができ、そのデコード処理 を行う。主なフィルタは下表のとおり。 名称 概要 /ASCIIHexDecode 2桁の16進数で表現された文字列から1バイトの データを復元 /ASCII85Decode !からzまでの印字可能文字を使用して表現された 文字列からデータを復元 /LZWDecode TIFF画像形式で用いられているLZW圧縮された データを展開 /FlateDecode Zlibライブラリで用いられているFlate圧縮され たデータを展開 /RunLengthDecode バイト単位の単純なランレングス圧縮されたデー タを展開 /CCITTFaxDecode ファックス機器で使用されているエンコーディン グ形式のデータを展開 /JBIG2Decode JBIG2圧縮されたデータを展開 /DCTDecode JPEGによる不可逆圧縮されたデータを展開 /JPXDecode JPEG2000による不可逆圧縮されたデータを展開 4.o-checkerの検知の仕組み (PDF32000-1:2008 7.4)
  • 40. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan PDFの基本構造:ドキュメント構造 40 トレーラ ドキュメント 情報辞書 ドキュメント カタログ ドキュメント アウトライン ページリスト ページ1 ページ2 ページ1の コンテンツ ページ1の リソース ページ2の コンテンツ ページ2の リソース :オブジェクト 図:2ページからなる一般的なPDFファイルのドキュメント構造 :参照リンク トレーラ辞書オブジェクトからリンクをたどっていくと すべてのオブジェクトを参照することができる 4.o-checkerの検知の仕組み
  • 41. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan PDFの基本構造:ドキュメントの暗号化 41 トレーラ ドキュメント 情報辞書 ドキュメント カタログ ドキュメント アウトライン ページリスト ページ1 ページ2 ページ1の コンテンツ ページ1の リソース ページ2の コンテンツ ページ2の リソース :オブジェクト 図:暗号化されたPDFファイル :参照リンク 基本的に文字列及びStreamのみが暗号化 復号しなくてもドキュメント構造にアクセスできる (ObjStmに格納されているオブジェクトは除く) 4.o-checkerの検知の仕組み
  • 42. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan PDFの基本構造:ObjStm(オブジェクトストリーム) 42 PDF1.5以降で、複数のオブジェクトを単一の Streamに格納しそのStream全体を圧縮することで PDFファイルをさらにコンパクトなものにするとい うObjStmというものが導入されている ( PDF32000-1:2008 7.5.7) 1つに まとめて 圧縮 (暗号化PDF) 暗号化 4.o-checkerの検知の仕組み
  • 43. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan ⑥分類できないセクションがないか 43 PDFファイル コメント(ヘッダ) 本体 相互参照テーブル トレーラー コメント(EOF) 実行ファイル ファイルの先頭から順番に読み込 みどのセクションに該当するか分 類しようとすると分類できない部 分がある 4.o-checkerの検知の仕組み
  • 44. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan ⑦参照されないオブジェクトがないか 44 トレーラ ドキュメント 情報辞書 ドキュメント カタログ ドキュメント アウトライン ページリスト ページ1 ページ2 ページ1の コンテンツ ページ1の リソース ページ2の コンテンツ ページ2の リソース :オブジェクト :参照リンク 実行ファイル 図:実行ファイルが埋め込まれたPDFファイルのドキュメント構造 ドキュメント構造を無視して実行ファイルが埋め込まれると どこからも参照されていないオブジェクトとなることが多い 実行ファイル :実行ファイルが埋め込ま れたオブジェクト 4.o-checkerの検知の仕組み
  • 45. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan 実行ファイル ⑧偽装されたStreamがないか 45 フィルタ偽装 Stream末端に追加 正規のStream EOD データの終了を示す情報 デコードに使用されるデータ (通常どおりデコード可能) デコードに使用 されないデータ FlateDecode、DCTDecodeおよびJBIG2Decodeの場合 エントロピー プレーンテキスト 小 FlateDecode 大 実行ファイル 大 エントロピーの値が近いフィルタを 使用しているように偽装 (デコードしようとすると失敗する) 4.o-checkerの検知の仕組み
  • 46. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan 悪性文書ファイル 通常の文書ファイル ファイル 形式 拡張子 検体数 平均容量 (KB) 検体数 平均容量 (KB) Rich Text rtf 98 266.5 199 516.2 doc 36 252.2 1,195 106.1 CFB xls 49 180.4 298 191.7 jtd/jtdc 17 268.5 - - PDF pdf 164 351.2 9,109 101.7 合計 364 291.8 10,801 322.7 実験 46 2009年から2012年までに標的 型メール攻撃に使用された文 書ファイル※1 マルウェアダンプサイト contagioでclean(マルウェ アではない)とされた文書 ファイル※2 ※1:docに拡張子が偽装されたRich Textはrtfでカウント ※2:http://contagiodump.blogspot.jp/2013/03/16800-clean-and-11960- malicious-files.html 4.o-checkerの検知の仕組み
  • 47. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan o-checkerの検査項目と検知率 47 ①EOFの後にデータがついていないか ②ファイルサイズが異常でないか ③FATで参照できない領域が追加されていないか ④ファイル末端がFree Sectorでないか ⑤使途不明のsectorがないか ⑥分類できないセクションがないか ⑦参照されないオブジェクトがないか ⑧偽装されたStreamがないか Rich Text CFB PDF o-checker 99.0% 77.5% 90.2% 97.1% 96.1% 49.4% 43.9% 63.4% 99.0% 98.0% 99.4% 4.o-checkerの検知の仕組み
  • 48. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan 5.デモンストレーション 48
  • 49. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan o-checkerのログ 49 C:¥tmp>pdfanalysis.py a.pdf 00000000-00000008:comment, 00000009-0000000F:comment, 00000010-00000110:obj 25 0 old(not used) 00000111-00000197:obj 26 0 old(not used) : 00003622-000036B0:trailer 000036B1-000036C2:startxref 00003617 000036C3-000036C9:comment, 000036CA-0000E9E2:unknown 0000E9E3-0000E9E9:comment, 0000E9EA-0000EAEA:obj 25 0 ObjStm [7, 8, 13] : 0001209D-000120A3:comment, 000120A4-000120A7:unknown FFFFFFFF-FFFFFFFF:obj 7 0 xref from None FFFFFFFF-FFFFFFFF:obj 8 0 xref from None : offset address 分類結果 Dummy Document ObjStm 5.デモンストレーション
  • 50. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan 判定オプション 50 C:¥tmp>pdfanalysis.py a.pdf -j 00000000-00000008:comment, 00000009-0000000F:comment, 00000010-00000110:obj 25 0 old(not used) 00000111-00000197:obj 26 0 old(not used) : : 0001209D-000120A3:comment, FFFFFFFF-FFFFFFFF:obj 7 0 xref from None FFFFFFFF-FFFFFFFF:obj 8 0 xref from None : Malicious! -j 判定オプション ログの最後に Malicious! Suspicious! None! の3段階表示 5.デモンストレーション
  • 51. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan 51 DEMO 1
  • 52. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan 6.O-CHECKERの応用例 52
  • 53. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan NIDSとo-checker 53 LANケーブル NIDS o-checker パケット キャプチャ メール 復元 通知 既存のシステムをほとんど変更することなく o-checkerを導入可能 6.o-checkerの応用例
  • 54. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan NIDS NIDSとo-checkerの課題 54 LANケーブル o-checker パケット キャプチャ メール 復元 通知 メールの復元に失敗 ~2% 壊れた文書ファイル ~2% フォルス・ポジティブ up ~2% ネットワークフォレンジック製品の仕様または性能に応じ て誤検知が発生 6.o-checkerの応用例
  • 55. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan NIDS NIDSと改良型o-checker 55 LANケーブル new o-checker パケット キャプチャ メール 復元 通知 メールの復元に失敗 ~2% 壊れた文書ファイル ~2% フォルス・ポジティブ up ~0% ファイルフォーマットに着目した構造解析で 壊れた文書ファイルを除外 6.o-checkerの応用例
  • 56. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan o-checker Android端末へのo-checkerの適用その1 56 メールサーバ Manual delete Manual check
  • 57. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan 57 DEMO 2
  • 58. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan E-mailer o-checker Android端末へのo-checkerの適用その2 58 メールサーバ Auto delete Auto check
  • 59. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan 7.おわりに 59
  • 60. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan まとめ 60 • 従来の検知法には限界がある • 実行ファイルを埋め込んだ文書ファイル に対しファイルフォーマットに着目した 構造解析は有効 • o-checkerは高速に高確率で悪性文書ファ イルを検知するため様々な応用が考えら れる 7.おわりに
  • 61. CODE BLUE Feb.17 (Mon) - 18 (Tue), 2014 Tokyo, Japan 61 ありがとうございました