第4回静岡ITPro勉強会」に行ってきた.

  • テーマ: マルウェア(ウイルス)解析技術
  • 講師: 岩本一樹さん@日本コンピュータセキュリティーリサーチ株式会社
  • メモ:
    • マルウェアの解析方法は「動的解析」と「静的解析」の2つに大別される.
    • 動的解析はマルウェアを実行してその動作を見る.
    • 静的解析はマルウェア(以下,検体)を逆アセンブル1して出力された(機械語の)ソースを解析する.今回は主に静的解析についての話.
    • マルウェア(の静的)解析の実際は出力されたソース中の命令2API呼出,サブルーチンなどに注目しながら,コールグラフ3を作成する.
    • 最近のマルウェアは(アセンブリ言語ではなく)高級言語で書かれたものが増えている.
    • 解析を自動化するためにいくつかの方法が考えられている.
    • コールグラフに沿ってAPIを抽出して,それぞれの(マルウェアの)プログラムからAPI呼出の配列を作成する.
    • マルウェアから作成されたAPI呼出の配列にギャップを挿入した後,それぞれを比較する4ことで,マルウェアの亜種間で共通する部分や新たに追加された部分がわかる.また,マルウェアの検体間の距離や一致度を数値化することもできる.
    • このようにして得られたマルウェア間の距離を多次元尺度構成法で可視化したり,階層型クラスタ分析で分類することにより,新たな検体の解析を始める場所の手がかり5にしたり,新しいマルウェアの機能を推定したりすることができる.
    • API推移によるマルウェアの分類をいくつかのウイルス対策ソフトウェアの名称(分類)と比較してみると,ウイルス対策ソフト会社の命名規則が,コードの特徴によるものから振舞によるものへと変わってきていることがわかる.
    • 今後の課題として静的手法と動的手法の融合や複数の解析手法の組み合わせ,解析を妨害するアンパッカーなどのツールへの対応などが挙げられる.

毎回のことながら,参加費も安い6し,いろいろな立場の人の話も聞けるので有意義だった…


  1. IDA Proなど. ↩︎

  2. jmp, loop命令に注目. ↩︎

  3. サブルーチンの呼出関係を表現したグラフ. ↩︎

  4. ギャップを挿入して比較するのは,DNA解析などでも行われる手法. ↩︎

  5. 例えば,新たに追加された部分を先に解析する. ↩︎

  6. たぶん,会場と休憩時のおやつ代くらい. ↩︎