マルウェア分類に用いられる特徴量 kaggle - malware classification challenge勉強会
Post on 08-Jan-2017
2.824 Views
Preview:
TRANSCRIPT
内容
・そもそも特徴抽出とは
・マルウェアからの特徴抽出方法
n-gram フーリエ変換
Binary Texutre Analysis・まとめ
精度比較はちょっとむずかしい (論文によって評価方法が違う )
n-gramの例 (n=3)
The cow jumps over the moon
The cow jumps cow jumps over jumps over the over the moon
何を単語と定義するか
バイナリの1バイトを1単語とする
55 48 89 e5 b8 00 00 00
有用な情報はあまり得られないけどそこそこの精度は出るらしい
55 48 8948 89 e589 e5 b8b8 00 0000 00 00
Abdurrahman Pektaş, Mehmet Eriş, Tankut Acarman, Proposal of n-gram Based Algorithm for Malware Classification, SECURWARE 2011
何を単語と定義するか
逆アセンブルしたときのオペコードを単語とする
識別にあまり関係ないものを取り除ける
逆アセンブル難しいんじゃない?→IDA Pro使えばわりといけるっぽい (approximately 74% of the malware files)
A.Shabtai, R. Moskovitch, C. Feher, S. Dolev, and Y. Elovici, Detecting unknown malicious code by applying classification techniques on opcode patterns, 2012.
識別方法 (KNNの場合)
1. n-gram同士の類似度を測定する
2. 未知ファイルと似ているファイルをいくつか(k個)取ってくる
3. マルウェアがいっぱい取れたら未知ファイルをマルウェアとみなす
何を類似度(距離)とするか
X: 入力されたファイルの部分文字列集合
Y: クラスが既知のファイルの部分文字列集合
f(x) : XとY両方に含まれる部分文字列xのXにおける出現回数
距離定義の例
Igor Santos, Yoseba K. Penya, Jaime Devesa, Pablo Garcia Bringas, N-Grams-based file signatures for malware
detection, International Conference on Enterprise Information Systems - ICEIS , pp. 317-320, 2009
n-gramの欠点
n-gramは大量のメモリを必要とする
「15000個のファイルを解析したらメモリが250GB必要になった」
S. Ponomarev et al. (2013)
→データ構造を使う DTrie
→フーリエ変換を使う
n-gramの欠点
n-gramは大量のメモリを必要とする
「15000個のファイルを解析したらメモリが250GB必要になった」
S. Ponomarev et al. (2013)
→データ構造を使う DTrie
→フーリエ変換を使う
n-gramの欠点
n-gramは大量のメモリを必要とする
バイト列の出現パターンがわかればいいんでしょ?
→フーリエ変換使えばいけるんじゃね?
命令の出現頻度を周波数情報として保存できる
メモリ食わないし最強じゃん?
フーリエ変換メモリ消費量を抑えられる
2.2Stanislav Ponomarev, Nathan Wallace, and Travis Atkison, Fourier Transform as a Feature Extraction Method for Malware Classification, 2014.
バイナリを信号とみなす
55 48 89 e5 b8 00 00 00 00 e8 dd ff ff ff→[85, 72, 137, 229, 184, 0, 0, 0, 0, 232, 221, 255, 255, 255]
フーリエ変換する
N/2 < 最大ファイルサイズ < N となるようにする
バイナリ:55 48 89 e5 b8 00 00 00 00 e8 dd ff ff ff十進表現:[85, 72, 137, 229, 184, 0, 0, 0, 0, 232, 221, 255, 255, 255]
フーリエ変換する
ファイルの10進表現 (サイズ 14)
フーリエ変換の入力 (サイズ 16 = 24)
N=2pとなるようにする
ファイルサイズがNになるように空き部分を0で埋める
周波数特性Xkを特徴量とする
[85, 72, 137, 229, 184, 0, 0, 0, 0, 232, 221, 255, 255, 255]
[85, 72, 137, 229, 184, 0, 0, 0, 0, 232, 221, 255, 255, 255, 0, 0]
Binary Texture Analysis画像にしたらうまくいった・・・
2.3Lakshmanan Nataraj, Vinod Yegneswaran, Phillip Porras, Jian Zhang, A Comparative Assessment of Malware Classification using Binary Texture Analysis and Dynamic Analysis, 2011
GIST特徴量とは
画像を分割したときの各部分のgradient情報
シーン認識とかに使われる
局所的な情報よりも全体を見ている
正直よくわかんないけどライブラリはあるみたい (pyleargist)
University of Southern California, iLab and Prof. Laurent Itti, http://ilab.usc.edu/siagian/Research/Gist/Gist.html, 2000
top related