カーネギーメロン大学セキュリティ・ワークショップ「情報セキュリティのためのリバースエンジニアリング 2.0w」

に行ってきた。

岩本氏の「コンピュータウイルスが使う手法とそれに対する解析方法」が面白かったので、メモメモ。

  • 静的解析
    • IDA Pro で逆アセンブル結果を印刷
    • 関数電卓 鉛筆
    • ジャンプとループを記入
    • コードグラフを書いていく
    • 2002年から大変になる アセブラ→C言語
  • 進化
  • Q&A
    • Q 過去のウィルスにも適用できるのか
    • できる。
    • 過去のどれに似ているかが分かる
    • Q IDAproのプラグインでやらないで、鉛筆でやるのか
    • マルウェアの構造を理解するため
    • 結果を見ただけでは、すぐには把握できない
    • Q オートメーションはどうやってやったのか
    • 現状はIDAの出力をPerlで処理している。
    • Q アセンブラだと、動きが同じだけど、コードが違う場合があるけど
    • それも研究している
    • フロー解析や、コールグラフでは、意味を見ているので類推可能
    • 流れを変えることや、APIの呼び方を変えられてしまうと
    • Q if文の取り扱いは?
    • フロー解析では分岐を追う
    • コールグラフは分岐を無視

すげぇ地道だなぁ、と思った。やっぱり、コードを頭を入れるためには、地道な努力が必要だなぁと思います。
そっか、Video maidの人なんだ、と気付いた。


2008/11/25に追記
岩本一樹さんのサイトに、上記発表と関連する研究成果が公開されていた。
http://www.maid.org/sugsi/index.html
http://www.maid.org/dicomo2008/section4.html