読者です 読者をやめる 読者になる 読者になる

Twitterに書ききれないこと

イベントや技術的なことを記したい・・・

Practical Malware Analysis Chapter 0

マルウェア解析についての有名な書籍にPractical Malware Analysisがある。

その書籍を勉強のために翻訳・要約した記事。

全訳ではないので、詳細は原書を読んでください。

Practical Malware Analysis: The Hands-On Guide to Dissecting Malicious Software

Practical Malware Analysis: The Hands-On Guide to Dissecting Malicious Software

0章 マルウェア解析入門

マルウェア解析の用語、マルウェアの種類、マルウェア解析の基本的なアプローチ。

マルウェア解析の目標

通常、マルウェア解析の目的は、ネットワークの侵入に対応するため情報収集。 何が起こったかを正確に把握することを目的とし、全ての感染したマシンとファイルを確認する。

  • 疑わしいバイナリの挙動の把握
  • ネットワーク上の損害の把握

マルウェア感染を検出するためのシグネチャ開発。

マルウェア解析技術

ほとんどの場合、マルウェアは実行形式のファイルで、人間が読める形式でない。 そのため、さまざまなツールを使って解析をする。

マルウェア解析には、静的解析・動的解析という2つのアプローチがある。 静的解析では、マルウェアを実行せずに解析する。動的解析では、マルウェアを実行して解析する。 この2つは、さら基本的な解析と高度な解析に分類される。

基本的な静的解析

実際の命令を見ずに実行可能ファイルを調べる。 ファイルが悪質であるかを確認する。 単純なネットワークシグネチャを生成することが可能。 迅速かつ容易に行うことができるが、高度なマルウェアに対しては余り意味がない。

基本的な動的解析

マルウェアを実行して解析する。 マルウェアを除去するため、システム上のマルウェアの挙動からシグネチャを作成する。 マルウェアの実行前に、システムやネットワークへの損害のリスクがない安全な環境を構築する必要がある。 深いプログラミングの知識を必要とせず、ほとんどの人が解析することができるが、基本的な静的解析同様に効果が薄い。 マルウェアの重要な機能を見逃す可能性がある。

高度な静的解析

リバースエンジニアリングを行う。 逆アセンブラに実行ファイルをロードし、命令を見てマルウェアが内部で何をするかを見つける。 命令はCPUによって実行されるため、高度な静的解析は、プログラムの動作を正確に示す。 しかし、高度な静的解析では、専門的な逆アセンブリの知識、コード構成、およびWindowsオペレーティング・システムの概念など、基本的な静的解析より知識が必要となる。

高度な動的解析

悪意のある実行可能ファイルの内部をデバッガで解析する。 高度な動的解析技術は、実行可能ファイルから詳細な情報を抽出することができる。 他の技術と併用して収集困難な情報を取得しようとしているとき、これらの技術は最も便利な方法である。

マルウェアの種類

マルウェア解析の際、マルウェアの挙動を推測することが解析のスピードアップにつながる。 マルウェアの種類を知ることは、推測の際に役に立つ。 多くの場合、マルウェア複数のカテゴリにまたがる。

  • Backdoor
  • Botnet
  • Downloader
  • Information-stealing malware
  • Rootkit
  • Spam-sending malware
  • Worm or virus

対象となるマルウェアの詳細な解析がなければ、そのマルウェアからネットワークを保護し、マルウェアを駆除することはほぼ不可能である。マルウェアは通常、非常に高度で、解析には高度な解析スキルが必要となる。

マルウェア分析のための一般的なルール

  1. あまり詳細な解析をすることに捕らわれてはいけない。ほとんどのマルウェアのプログラムは、大規模かつ複雑であり、すべての詳細を理解することはできない。 代わりに主要な機能に焦点を当てる。難解で複雑なセクションに実行したとき、行き詰まる前に、全般的な概要を把握するようにする。

  2. 解析には、さまざまなツールやアプローチが利用可能であることを覚えておく。 1つのツールが使えない時は、他のツールを試してみる。 ツールやアプローチにこだわる必要はない。

  3. マルウェアの解析はいたちごっこのようであることを覚えておく。 新しいマルウェア解析技術が開発されると、マルウェア作成者は、解析を阻止するために、新しい技術を使用する。 マルウェア解析者として成功するために、マルウェアに使用される新たな技術を認識し、理解し、克服する必要がある。 マルウェア解析の分野の変化に素早く対応することができなければない。