エンジニアまで道半ば

興味を持った技術についての備忘録

マルウェア解析について -概略編ー

はじめに

弊学の学生の頑張りを見て、自分も何か記事を残さないとなと思い、ブログをはじめていこうと思います。

h0r4k.hatenadiary.jp/entry/2018/05/19/215518

今回は手始めに卒業研究で扱うマルウェア解析について、数回に分けて書いていきます。

マルウェア解析の概略

マルウェア解析は以下のステップで行う。

f:id:phantasmagoria812:20180521142136p:plain

  1. 環境構築
    マルウェアが端末に感染してもいいように、普段用とは別に解析専用の環境を用意する。
  2. マルウェア収集
    マルウェアの検体を有志で配布してくれるWebサイトからダウンロードしたり、ハニーポットやハニークライアントを設置したり、マルウェア解析のコンペティションに参加したりすることによって解析対象のマルウェア(マルウェア検体)を手に入れる。
  3. 表層解析
    ファイルが悪性であるかの情報収集やファイルのメタ情報を収集する。ファイルタイプや動作するCPUアーキテクチャの情報、ハッシュ値などをもとに、既知のマルウェアかどうかを判定する。実際にマルウェアを動作させたりマルウェア内のプログラムコードを分析したりはしない。
  4. 動的解析(ブラックボックス解析)
    解析専用環境でマルウェアを動作させ、感染動作を記録する。マルウェアが行うレジストリファイルシステムの変更、発生させる通信(宛先のIPやドメイン, URL, 通信ペイロード)などを確認する。動的解析では、プログラムコードを詳細には分析しない。
  5. アンパッキング
    マルウェアは、静的解析を妨げる“パッカー”と呼ばれるソフトウェアによって圧縮されていることが多い。そのため、パッキングを解く必要がある。
  6. 静的解析(ホワイトボックス解析)
    アセンブラやデバッガを使用してコードを分析する。動的解析だけではわからない、マルウェア潜在的な機能を調査したり、特徴的なバイト列が収集したりする。アセンブリコードを読み解くスキルが要求される。

以下に表層解析、動的解析、静的解析の長所と短所を示す。

各解析プロセスの長所と短所
 
長所
短所
表層解析
  • 短時間に解析結果を取得できる
  • 解析者に要求されるスキルレベルは高くない
  • 得られる情報が限定的である
  • 難読化されたマルウェアからは十分な解析結果が得られない
動的解析
  • 解析者に要求されるスキルレベルは高くない
  • 難読化されたマルウェアからも解析結果を取得できる
  • 短時間で解析結果を取得できる
  • 安全な解析環境を構築する必要がある
  • 解析妨害機能を有する検体を十分に解析できないことがある
  • 解析時に実行されなかったコードの振る舞いはわからない
静的解析
  • 動的解析で実行されないコードの動作を把握できる
  • 具備された機能の詳細なアルゴリズムを解明できる
  • 解析者に要求されるスキルレベルが高い
  • 詳細な解析結果を取得するのに時間がかかる
出典元:実践サイバーセキュリティモニタリング, 八木 毅 他

おわりに

マルウェア解析を語るにあたって、文献を頼りになるべく間違いがないようにまとめていきますが、もし間違っていた場合はお知らせください。