More Related Content
Similar to 初めて解析したマルウェアはMIPSアーキテクチャ
Similar to 初めて解析したマルウェアはMIPSアーキテクチャ (14)
初めて解析したマルウェアはMIPSアーキテクチャ
- 24. Stripped & Statically linked
VPNFilterは,
静的リンクかつシンボルテーブルが削除されている(Stripped) ELF
関数名が分からない int main(void) {
puts(“Hello World”);
return 0;
}
例えば右の様に簡単なバイナリでも
“puts”を読んでいる事が分からない.
標準ライブラリ関数“puts”の中身を読んで
これ“puts”っぽいなと推測しなければならない.
ここが一番大変
(Winodwsバイナリの場合は関数名を表示してくれたのに…)
- 25. Stripped & Statically linked
課題4: ライブラリ関数が判別できない
Crosstool-ng: 様々なアーキテクチャ対応クロスコンパイラ(ライブラリも利用可)
bindiff(IDA Pro Plugin): バイナリの類似度から関数名を推測
結果, 膨大な数の関数の内, 正しく関数名を提示できたのは数個
マルウェア製作者と同じ環境を用意して比較できれば…
本当は良いやり方があるのかもしれませんが, 現状有効性ほぼ無し
- 26. Stripped & Statically linked
課題4: ライブラリ関数が判別できない
では, 解析を進めたか
ライブラリ関数っぽくても地道にアセンブリを読んでいくしかなかった
コツ
・システムコールから同定していく
・引数, 返り値から推測する
・クロスリファレンスを確認し, 呼び出し回数が多いとライブラリ関数っぽい