静的解析によるマルウェアの分類と結果の検討
Step 1. 論文題名,著者情報など
| 論文題名 | 静的解析によるマルウェアの分類と結果の検討 | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 著者 #1 |
| ||||||||||||||||||
| 著者 #2 |
| ||||||||||||||||||
| 分野 | 第1分野 3.セキュリティ | ||||||||||||||||||
| 発表形態 | 通常 | ||||||||||||||||||
| キーワード | マルウェア 静的解析 特徴抽出 クラスタ解析 アンチウイルス | ||||||||||||||||||
Step 2. 連絡先に関する情報を入力してください.
| 氏名 | 岩本一樹 |
|---|---|
| 勤務先/所属 | 日本コンピュータセキュリティリサーチ |
| 郵便番号 | 422-8052 |
| 所属先住所 | 静岡県静岡市駿河区緑が丘町1-1 |
| 電話番号 | 054-283-5327 |
| FAX 番号 | 054-283-5328 |
| E-mail* (半角で) | iwm@maid.org |
| E-mail*(確認のためもう一度) | iwm@maid.org |
Step 3. その他記入事項
- 査読専用アブストラクト(2,000字程度)
本研究では,プログラムの制御フロー解析からAPI推移(あるAPIが呼ばれたあとに呼ばれるAPIの組み合わせの頻度)からマルウェアを静的に分類する方法について提案する.この方法では,検体の表面的な特徴であるバイナリコードの並びに依存せずに,検体の構造に基づく本質的な特徴を捉えることができることができる.ゆえにマルウェア作成者側による,僅かな改変で分類が変わってしまうことがない点が利点である.
アンチウイルスソフトウェアは新たなマルウェアを検出するために,頻繁に更新が行われている.マルウェアはかつては技術的な興味などから作られていたが,今日ではマルウェアは主に営利目的で作られている.マルウェアはその目的のためにアンチウイルスソフトウェアによる検出を回避する必要があり,ゆえに同様に頻繁にマルウェアはわずかに改変されて配布されている.結果として今日ではマルウェアの亜種が大量に存在する.
マルウェアを何の前提知識もなく解析するのは困難であるが,マルウェアを分類して解析の対象となるマルウェアがどの既知のマルウェアに近いかがわかれば,解析対象となるマルウェアの動作や構造を推定でき,マルウェアの解析を行う上で有益な情報となる.また未知のマルウェアを分類することで,既に類似したマルウェアを解析したことがある技術者がマルウェアの解析者を行うことができるので解析作業の効率が良くなる.当然,マルウェアの分類技術にはマルウェアの検出も含んでおり,マルウェアと正常なプログラムとを分類することができる.
マルウェアを解析する方法は主に動的解析と静的解析に分けることができる.動的解析では実際にマルウェアを実行して,その動作からAPI呼び出しやシステムコールなどの動作ログから特徴を抽出して分類を行う.この方法では検体がマルウェアとして動作しなければ分類ができないため,動作環境(CPUやOSなど)や動作条件(日時や他のファイル・プロセス,ネットワークなどの環境)を整える必要がある.またマルウェアの動作を監視していることをマルウェアのコードから隠す必要もある.しかし動的解析では,マルウェアのバイナリコードが難読化されていたり,あるいは再コンパイルなどで異なっていても,動作が同じならば類似している検体として分類することができる.
それに対して静的解析では検体を実行せずに,逆アセンブルなどを行うことで特徴を抽出して分類を行う.この方法ではマルウェアの動作環境や動作条件に依存しない.また検体を動作させることなくその検体を解析できる.検体が実行される動作環境以外で検体の実行時間に関係なく解析が行える.しかし圧縮・暗号化されているマルウェアのバイナリコードを復号してオリジナルのバイナリコードを取り出して,さらにその機械語そのものを扱う必要がある.
いずれの方法でも何らかの特徴を抽出し,それに基づいて分類を行うことになる.僅かな改変でも変化が見られる部分を特徴として抽出した場合には,その僅かな改変を捉えることができ細かく分類できる.どのバイナリコードが追加・削除されたのかを知るには有効である.その反面,同じソースコードから派生したマルウェアであっても異なる分類がされる可能性がある.逆に細かな改変によって変化が少ない部分を特徴として抽出した場合には,同じような動作をする検体を1つのグループに分類することができる.しかし特徴を大まかに捉えれたならば,作成された経緯が異なる検体が同一に分類される可能性がある.
筆者らはこれまでに静的解析によるコールグラフの解析,制御フロー解析,API推移の解析,最長パスの解析を用いたマルウェアの分類を行ってきた[1][2][3].それらの結果を踏まえて本研究では静的解析により,検体のバイナリコードそのものの特徴ではなく,その検体の構造や動作からの分類を行う方法を提案する.コンパイル環境の違いなどからバイナリコードが異なっていたとしても,類似したソースコードから作られた検体ならば,それらが似ていると分類されることを目標とした.マルウェア作者がアンチウイルス製品による検出を避けるためなどの理由で,僅かに改変した程度で分類結果が変わることのないような方法を用いた.
具体的にはマルウェアの検体を逆アセンブルし,制御フロー解析の結果から呼び出されているAPIの推移を特徴として抽出した.このAPIの推移は異なる条件下でコンパイルしなおしても変化が少なく,これを大きく変えるためにはプログラムの構造を変える必要が特徴だと言える.
さらに抽出した特徴からクラスタ解析を行うことでマルウェアの分類を行った.教師なし学習の一種であるクラスタ解析を行うことでマルウェア検体間の関係を明らかにできた.またこの結果と既存のアンチウイルス製品などによる分類との比較を行った.
既存のアンチウイルス製品などの分類とは異なる結果があったが,本研究で提案する方法によりマルウェアの分類は可能であった.
- 岩本一樹, 和崎克己, コンピュータウイルスのコード静的解析による特徴抽出と分類について, 信学技報, vol. 107, no. 397, ISEC2007-127, pp. 107-113, 2007年12月
- 岩本一樹, 和崎克己, コールグラフと制御フロー解析によるマルウェアの静的解析と分類, DICOMO2008, pp.1-14, July 2008
- 岩本一樹, 和崎克己, 静的解析によるマルウェアのAPI推移の抽出とクラスタ解析, CSS2009, pp.361-366, October 2009
- 研究会その1
コンピュータセキュリティ(CSEC)
- 論文誌特集号への投稿
予定なし