マルウェア感染のフォレンジック調査方法

デジタルフォレンジック調査は、マルウェア感染の全容解明と再発防止に不可欠な技術です。適切な証拠保全と詳細な解析により、攻撃者の手口、侵入経路、被害範囲を正確に把握し、法的対応や保険請求の根拠とすることができます。2024年の調査では、フォレンジック調査を実施した組織の90%が、同様の攻撃を防ぐことに成功しています。本記事では、Chain of Custodyによる証拠保全から、メモリ・ディスク・ログの各フォレンジック手法、マルウェア解析との連携、そしてIOC抽出による脅威インテリジェンス活用まで、実践的な調査方法を体系的に解説します。「真実は細部に宿る」—微細な痕跡から攻撃の全貌を解明する技術を習得しましょう。

フォレンジックの基本原則|証拠の完全性確保

デジタルフォレンジックの最も重要な原則は、証拠の完全性を維持することです。法的証拠能力を持たせるためには、取得から保管、解析、報告までの全プロセスで、改ざんされていないことを証明する必要があります。

Chain of Custodyの確立

証拠の信頼性を法的に担保するためには、誰が、いつ、どのように証拠を扱ったかを記録するChain of Custody(証拠管理の連鎖)が不可欠です。

証拠の管理記録
取得日時、取得者、保管場所、アクセス者を全て記録します。法的効力を持たせるため、改ざん不可能な形式で管理し、デジタル署名とタイムスタンプを付与します。証拠管理台帳には、証拠ID、媒体種別、取得元システム、取得方法、保管責任者、アクセス履歴を含めます。
証拠の複製と原本保護
書き込み防止装置(ライトブロッカー)を使用して原本を保護します。ビットレベルの完全複製を作成し、作業は複製のみで実施します。原本は封印して保管し、解析作業で誤って改変されることを防ぎます。複製は最低2つ作成し、1つは作業用、もう1つは予備として保管することが推奨されます。
ハッシュ値による完全性保証
MD5、SHA-256の両方でハッシュ値を算出します。取得時と解析後で一致することを確認し、改ざんがないことを証明します。ハッシュ値は証拠管理台帳に記録し、第三者が検証可能な状態にします。業界標準では、SHA-256以上の強度を持つハッシュ関数の使用が推奨されます。

証拠取得の優先順位

デジタル証拠には揮発性があり、時間経過とともに消失するものから順に取得する必要があります。

揮発性の高い順序

証拠取得は、Order of Volatility(揮発性の順序)に従って実施します。最も揮発性が高く、システムの電源を切ると失われる証拠から優先的に取得します。

優先度 証拠の種類 揮発性 保持期間 取得方法
1 CPUレジスタ、キャッシュ 最高 数ミリ秒 専用ハードウェア
2 物理メモリ(RAM) システム稼働中のみ メモリダンプツール
3 ネットワーク接続状態 接続中のみ netstat、tcpdump
4 実行中プロセス プロセス終了まで プロセスリスト取得
5 一時ファイル、スワップ 再起動まで ファイルコピー
6 ディスク上のファイル 削除されるまで ディスクイメージ
7 ログファイル、バックアップ 最低 ローテーションまで コピー取得

Order of Volatilityの実践

実際のインシデント対応では、以下の順序で証拠を取得します。

第1段階:メモリとネットワーク状態(5-15分)
システムを停止せず、まず物理メモリをダンプします。同時にネットワーク接続、開いているポート、実行中のプロセスリストを取得します。この段階では、システムへの影響を最小限に抑え、攻撃者に気づかれないよう迅速に作業します。
第2段階:システム情報とログ(10-30分)
ユーザーアカウント、スケジュールタスク、サービス、起動項目、レジストリキー等のシステム設定を記録します。各種ログファイルをコピーし、時刻同期の状態も記録します。この時点でタイムライン作成の基礎データが揃います。
第3段階:ディスクイメージ(数時間)
最後に、ディスク全体のビットレベルイメージを取得します。削除されたファイルや未割り当て領域も含めて完全にコピーします。大容量ディスクの場合、取得に数時間かかる可能性があるため、並行して他の端末の調査を進めます。

法的考慮事項

フォレンジック調査は、民事訴訟、刑事告訴、保険請求の証拠となる可能性があるため、法的要件を満たす必要があります。

プライバシーとの両立

従業員のプライバシーに配慮しつつ、証拠を適切に収集する必要があります。個人情報保護法に準拠し、調査の正当性と範囲を明確にします。

事前の規定整備
就業規則やセキュリティポリシーで、インシデント発生時にはシステムの調査を行う旨を明記します。従業員に事前に周知し、同意を得ることで、後の法的トラブルを防ぎます。BYOD端末の場合は、個別の同意書を取得することが推奨されます。
調査範囲の限定
インシデントに直接関連する範囲のみを調査対象とし、無関係な個人情報には極力アクセスしません。調査計画書を作成し、対象システム、対象期間、調査項目を明確にします。過度に広範な調査は、プライバシー侵害と判断される可能性があります。
第三者の関与
内部調査の客観性を確保するため、外部の専門家や弁護士を関与させることが推奨されます。法律事務所経由での依頼により、弁護士・依頼者間秘匿特権が適用され、調査結果の保護が可能になる場合があります。

証拠能力の確保

裁判で証拠として認められるためには、証拠の真正性証拠収集の適法性を示す必要があります。

文書化と記録
全ての作業手順、使用ツール、設定、結果を詳細に記録します。作業ログには、作業者名、日時、作業内容、結果、異常事項を記載します。写真やスクリーンショットで現場の状況を記録し、誰が見ても再現可能なレベルの詳細さを確保します。
標準手法の採用
NIST(米国国立標準技術研究所)、ACPO(英国警察署長協会)等の国際的なガイドラインに準拠した手法を使用します。業界標準のツール(EnCase、FTK、Autopsy等)を使用し、その正当性を主張します。独自ツールを使用する場合は、検証結果を提示できるようにします。
専門家証人の準備
調査担当者が法廷で証言する可能性を考慮し、資格(GCFE、GCFA、EnCE等)の取得や、専門知識の研鑽を継続します。調査報告書は、専門家でない裁判官や陪審員が理解できる平易な表現を心がけ、専門用語には説明を付記します。

メモリフォレンジック|揮発性データの解析

メモリフォレンジックは、システムのRAMに保存されている揮発性データを解析する手法です。ファイルレスマルウェアの検出や、暗号化されたデータの復号鍵抽出に不可欠です。

メモリダンプの取得

物理メモリの完全なコピーを取得することで、実行中のプロセス、ネットワーク接続、暗号化キー等の重要情報を保全します。

ライブ取得ツール
WinPmem、DumpIt、FTK Imager等を使用します。実行中のシステムから、カーネルメモリを含む全物理メモリをダンプします。USBメモリから起動し、システムへの影響を最小化します。取得時間は、8GBメモリで約1-2分、64GBで約10分が目安です。高速なUSB 3.0またはThunderboltインターフェースの使用を推奨します。
仮想マシンのメモリ取得
VMwareは.vmemファイル、Hyper-Vはチェックポイント機能から取得します。ハイパーバイザーレベルでの取得により、ゲストOS内のマルウェアに検知されません。VMware ESXiでは、vmss(サスペンド)ファイルにメモリ内容が保存されるため、これを取得することでも調査可能です。
ハイバネーションファイルの活用
Windowsのhiberfil.sysファイルには、休止状態時のメモリ内容が保存されています。削除されている場合も、ファイルカービング技術で復元可能な場合があります。ただし、Windows 10以降では高速スタートアップ機能により、部分的なメモリしか保存されない場合があるため、フルハイバネーションの設定確認が必要です。

メモリ解析手法

取得したメモリダンプから、攻撃の痕跡を抽出します。Volatility Frameworkが業界標準のツールとして広く使用されています。

Volatility Frameworkの活用

Volatility Frameworkは、オープンソースのメモリフォレンジックツールで、Windows、Linux、macOS、Androidのメモリ解析に対応しています。

プロファイル識別
imageinfo、kdbgscanプラグインで、メモリダンプのOSバージョンとアーキテクチャを特定します。正しいプロファイルを選択しないと、後続の解析が失敗するため、最初の重要なステップです。Windows 10以降では、自動プロファイル選択機能が向上しています。
主要プラグインの使用
pslist(プロセス一覧)、psscan(隠されたプロセス検出)、pstree(プロセスツリー)で、実行中プロセスを把握します。dlllist、ldrmodules、modscanで、各プロセスが読み込んでいるDLLを確認し、インジェクションを検出します。netscan、connscanで、ネットワーク接続を抽出し、C2サーバーとの通信を特定します。
出力の保存と相関分析
各プラグインの出力をテキストファイルとして保存し、後の相関分析に使用します。タイムライン作成、グラフ化、異常検知等、様々な分析手法を適用します。大量のデータから有意な情報を抽出するため、grep、awk、Python等のスクリプトを活用します。

プロセス・DLL分析

不正なプロセスやインジェクションを検出するため、プロセスとDLLの詳細を分析します。

分析項目 使用プラグイン 確認ポイント 異常の兆候
プロセス一覧 pslist, psscan 親プロセス、実行パス 正規プロセスから起動した不審なプロセス
プロセスツリー pstree 親子関係 explorer.exeから起動したcmd.exe等
DLL一覧 dlllist 読み込まれたDLL 一時フォルダのDLL、パスなしDLL
インジェクション malfind, ldrmodules メモリ実行権限 PAGE_EXECUTE_READWRITEの領域
コマンドライン cmdline 実行時の引数 エンコードされた文字列、長大な引数
ハンドル handles 開いているファイル/レジストリ 不審なファイルパス、レジストリキー

ネットワーク接続の抽出

メモリ内のネットワーク接続情報から、C2サーバーや外部への不正通信を特定します。

接続情報の抽出
netscanプラグインで、TCP/UDP接続、リスニングポート、リモートIPアドレスを抽出します。Windows 7以降では、netscanが最も正確な結果を返します。各接続のプロセスID、プロセス名、ローカル/リモートアドレス、ポート番号、接続状態を確認します。
異常な接続の特定
通常業務で使用しない国や地域へ��接続、非標準ポートの使用、正規プロセスからの不審な接続を特定します。例えば、notepad.exeやcalc.exeからのネットワーク接続は、通常ありえないため、インジェクションの可能性を示します。
DNSキャッシュの解析
メモリ内のDNSキャッシュを抽出し、名前解決されたドメイン名を確認します。DGA(Domain Generation Algorithm)で生成されたランダムなドメインや、既知のマルウェアC2ドメインを検出します。脅威インテリジェンスフィードと照合することで、迅速な判定が可能です。

マルウェアの痕跡発見

メモリ解析では、ディスク上に痕跡を残さない高度な攻撃手法の検出が可能です。

インジェクションの検出

プロセスインジェクションは、正規プロセスに悪意あるコードを注入する手法で、Living off the Land攻撃でも使用されます。

malfindプラグイン
実行可能なメモリ領域(PAGE_EXECUTE_READWRITE等)で、VAD(Virtual Address Descriptor)に記録されていない領域を検出します。これらはインジェクションの強い兆候です。検出された領域をdumpプラグインでダンプし、詳細解析やマルウェアスキャンを実施します。
インジェクション手法の特定
DLLインジェクション、プロセスハロウイング、APC(Asynchronous Procedure Call)インジェクション、リフレクティブDLLインジェクション等、様々な手法があります。ldrmodulesプラグインで、正規のローダー経由でないDLLを検出し、インジェクション手法を推定します。
Cobalt Strike Beaconの検出
攻撃者に広く使用されるCobalt Strike Beaconは、メモリ上でのみ動作する場合があります。特徴的な文字列(リフレクティブローダーのシグネチャ)や、既知のペイロードパターンをYARAルールで検索します。設定情報をメモリから抽出することで、C2サーバーのアドレスも特定可能です。

ルートキットの発見

カーネルモードルートキットは、システムの最深部に潜み、通常の検出手法では発見できません。

SSDT(System Service Descriptor Table)フック
ssdt、idt、gdtプラグインで、システムコールテーブルの改ざんを検出します。正規のアドレスから逸脱しているエントリは、ルートキットによるフックの可能性があります。各エントリのアドレスが、正規のカーネルモジュール範囲内にあることを確認します。
隠されたドライバとプロセス
modscan、driverscanで、リストに登録されていないカーネルモジュールを検出します。psscanとpslistの結果を比較し、隠されたプロセス(DKOM: Direct Kernel Object Manipulation)を発見します。これらはルートキットの典型的な痕跡です。
カーネルコールバックの検証
プロセス作成、レジストリ操作、ファイルシステム操作等の通知コールバックを確認します。不審なコールバック関数が登録されている場合、ルートキットによる監視や妨害が行われている可能性があります。

暗号化キーの抽出

メモリ内には、暗号化通信の鍵や、ランサムウェアの暗号化キーが残っている場合があります。

ランサムウェアキーの探索
ランサムウェアの暗号化処理中にメモリダンプを取得できた場合、対称鍵や秘密鍵がメモリに残存している可能性があります。文字列検索、エントロピー分析、既知のキー形式パターンマッチングで、キーを特定します。成功すれば、復号ツールを使ってファイルを復元できます。
ブラウザの保存パスワード
ChromeやFirefoxのマスターパスワード、復号化キーがメモリに残っている場合があります。mimikatz等のツールを使用し、メモリダンプから認証情報を抽出します。ただし、これは倫理的・法的に慎重な取り扱いが必要であり、調査目的の正当性を明確にします。
VPNと無線LANの鍵
VPN接続の事前共有鍵や、Wi-Fiのパスワードがメモリに平文で残っている場合があります。これらを抽出することで、攻撃者の横展開経路を特定できる場合があります。

ディスクフォレンジック|永続的データの調査

ディスクフォレンジックは、ストレージデバイスに保存された永続的データを解析する手法です。削除されたファイルや、タイムスタンプの改ざんも検出可能です。

ディスクイメージの作成

証拠保全の基本は、ディスク全体のビットレベルコピーを作成することです。マルウェア感染の初動対応では、まずイメージ取得を優先します。

dd/dcflddコマンド

Linux環境で広く使用される、ディスクコピーコマンドです。

# 基本的なdd使用例
dd if=/dev/sda of=/mnt/evidence/disk_image.dd bs=64K conv=noerror,sync status=progress

# dcfldd(拡張版)でハッシュ値を同時計算
dcfldd if=/dev/sda of=/mnt/evidence/disk_image.dd hash=sha256,md5 hashlog=/mnt/evidence/hash.log bs=64K
コマンドパラメータの意味
if(input file)は取得元デバイス、of(output file)は保存先ファイルです。bs(block size)は一度に読み書きするサイズで、64KBが一般的です。conv=noerror,syncは、読み取りエラーが発生しても処理を継続し、エラー箇所をゼロで埋めます。status=progressは、進行状況を表示します。
dcflddの利点
dcflddは、ddの機能拡張版で、コピー中にハッシュ値を計算し、ログファイルに記録します。複数のハッシュアルゴリズムを同時に適用でき、証拠保全の効率が向上します。ただし、標準でインストールされていない場合が多いため、事前準備が必要です。
圧縮イメージの作成
大容量ディスクの場合、容量を節約するため、圧縮イメージを作成します。dc3ddやEWF(Expert Witness Format)形式を使用し、圧縮率とアクセス速度のバランスを取ります。`dd | gzip` のパイプ処理でも可能ですが、エラーハンドリングが難しくなります。

FTK Imager使用

Windows環境でGUIを使用したイメージ取得が可能なツールです。

操作手順
File > Create Disk Imageを選択し、ソースドライブを指定します。Physical Drive(物理ドライブ)、Logical Drive(論理ドライブ)、ImageFile等の種類を選択します。出力形式は、E01(EnCase形式)、AFF(Advanced Forensics Format)、raw(dd形式)から選択可能です。
E01形式の利点
E01形式は、圧縮、分割、メタデータ埋め込み、CRC検証が可能で、業界標準です。複数のファイルに分割できるため、DVD等の記録媒体への保存に便利です。ケース情報、調査員名、説明等のメタデータを埋め込めます。
ベリファイの実施
イメージ作成後、Verify Image機能で、元のディスクとイメージのハッシュ値が一致することを確認します。この検証により、コピー中のエラーがないことを証明します。

論理vs物理イメージ

証拠の範囲に応じて、適切なイメージング方法を選択します。

比較項目 論理イメージ 物理イメージ
取得範囲 ファイルシステムのファイルのみ ディスク全体(未割り当て領域含む)
削除ファイル 復元困難 復元可能
ファイルシステム情報 限定的 完全
取得時間 短い(使用領域のみ) 長い(全容量)
サイズ 小さい 大きい
適用場面 迅速な特定ファイル取得 完全な証拠保全
論理イメージの使用ケース
特定のフォルダやファイルのみが対象で、迅速な取得が必要な場合に使用します。例えば、Webサーバーのログディレクトリのみを取得する場合等です。ただし、削除されたファイルやファイルシステムメタデータは取得できないため、完全な調査には不十分です。
物理イメージの必要性
重大インシデント、法的訴訟が予想される場合、または削除された証拠の復元が必要な場合は、必ず物理イメージを取得します。未割り当て領域には、削除されたファイルの残骸、ファイルスラック等、重要な証拠が残っている可能性があります。

ファイルシステム解析

ファイルシステムの構造を理解し、詳細な情報を抽出します。

削除ファイルの復元
NTFSのMFT(Master File Table)エントリを解析し、削除されたファイルを復元します。削除直後であれば、MFTエントリが残っており、ファイル名、サイズ、タイムスタンプ、データ位置が特定可能です。未使用領域のファイルカービング(データカービング)により、MFTエントリがない場合も、ファイルヘッダーとフッターのパターンマッチングで復元できる場合があります。
タイムスタンプ分析
NTFSでは、各ファイルにMAC時間(Modified, Accessed, Created)に加え、MFT Entry Modified時間も記録されています。これら4つのタイムスタンプ(MACB時間)を分析することで、ファイルの操作履歴を詳細に追跡できます。タイムスタンプの改ざんや矛盾(作成日時よりも更新日時が古い等)を検出します。マルウェアは痕跡を隠すためタイムスタンプを改ざんすることがあり、$STANDARDINFORMATIONと$FILE_NAMEの不一致で検出可能です。
代替データストリーム(ADS)
NTFSの代替データストリーム機能を悪用し、マルウェアを隠すケースがあります。通常のファイル一覧では表示されない、Zone.Identifier以外のストリームを調査します。`dir /R` コマンドやStreams.exe(Sysinternals)で検出し、内容を確認します。最近では、ブラウザのダウンロードマーク等で正規利用されるため、文脈での判断が必要です。

レジストリ分析

Windowsレジストリには、システム設定、ユーザー操作履歴、マルウェアの永続化メカニズム等、豊富な情報が記録されています。

自動起動エントリ

マルウェアが再起動後も動作し続けるため、自動起動の設定を行います。

レジストリキー 説明 確認ポイント
HKLM\Software\Microsoft\Windows\CurrentVersion\Run 全ユーザーの自動起動 不審な実行ファイルパス
HKCU\Software\Microsoft\Windows\CurrentVersion\Run 現在のユーザーの自動起動 一時フォルダからの実行
HKLM\System\CurrentControlSet\Services サービスとドライバ 不明なサービス名
HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce 一度だけの自動起動 ダウンローダー的な用途
HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows\Load レガシーな自動起動 見落としやすい場所
スケジュールタスク
`HKLM\Software\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\` 配下に、スケジュールタスクの情報が記録されています。XMLファイルとして`C:\Windows\System32\Tasks\` にも保存されており、両方を確認します。タスク名、実行ファイル、トリガー条件、実行アカウントを解析します。
WMI永続化
WMI(Windows Management Instrumentation)イベントサブスクリプションによる永続化は、レジストリ`HKLM\SOFTWARE\Microsoft\Wbem\ESS\` やWMIリポジトリ(CIM)に記録されています。PowerShellの`Get-WmiObject`やAutoruns(Sysinternals)で検出します。

実行履歴の抽出

ユーザーやシステムの操作履歴から、マルウェアの動作を追跡します。

MUICache
`HKCU\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\MuiCache` に、過去に実行されたプログラムの名前が記録されています。実行ファイルのフルパスと、アプリケーション名(FriendlyAppName)が保存されており、削除された実行ファイルの痕跡も残ります。
UserAssist
`HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\` に、ユーザーが実行したプログラムの統計情報が記録されています。ROT13で難読化されているため、デコードが必要です。実行回数、最終実行日時が記録されており、ユーザーの操作パターンを把握できます。
RecentDocs
`HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs\` に、最近使用したファイルの履歴が保存されています。拡張子ごとにサブキーが存在し、マルウェアが開いたファイルを特定できます。

USBデバイス履歴

外部記憶デバイス経由の感染を調査するため、接続履歴を確認します。

デバイス情報
`HKLM\SYSTEM\CurrentControlSet\Enum\USBSTOR\` に、接続されたUSBストレージデバイスの情報が記録されています。ベンダーID、製品ID、シリアル番号から、具体的なデバイスを特定します。
ドライブレター割り当て
`HKLM\SYSTEM\MountedDevices\` に、各デバイスに割り当てられたドライブレターの履歴があります。`\DosDevices\` で始まるエントリを確認し、どのUSBデバイスがどのドライブレターで認識されたかを特定します。
最終接続日時
システムログ(イベントID 20001, 20003)や、Setupapi.dev.logファイルから、デバイスの接続・切断日時を特定します。これにより、攻撃者の物理的なアクセス時刻を推定できます。

ログ解析|時系列での行動追跡

ログファイルは、システムやアプリケーションの動作を時系列で記録したものです。インシデント対応では、複数のログを相関させることで、攻撃の全体像を把握します。

Windowsイベントログ

Windowsイベントログには、システム、セキュリティ、アプリケーションの各カテゴリで、重要なイベントが記録されています。

セキュリティログ(イベントID 4688等)
イベントID 4688は、新しいプロセスが作成された際に記録されます。グループポリシーで「プロセス作成イベントにコマンドライン情報を含める」を有効にしておけば、実行されたコマンドの完全な引数も記録されます。マルウェアの実行コマンド、PowerShellスクリプト、不審なプロセス起動を特定可能です。イベントID 4624(ログオン成功)、4625(ログオン失敗)、4672(特権割り当て)も重要です。
PowerShellログ
PowerShell 5.0以降では、Script Block Logging(イベントID 4104)、Module Logging、Transcription機能により、実行されたPowerShellコマンドを完全に記録できます。難読化されたスクリプトも、実行時には復号されるため、ログから平文を取得可能です。Living off the Land攻撃では、PowerShellが頻繁に悪用されるため、このログは極めて重要です。
Sysmon拡張ログ
Sysinternals Sysmonをインストールすることで、標準イベントログでは記録されない詳細情報を取得できます。プロセス作成(ID 1)、ファイル作成時刻の変更(ID 2)、ネットワーク接続(ID 3)、プロセス終了(ID 5)、ドライバロード(ID 6)、イメージロード(ID 7)、レジストリ変更(ID 12-14)、パイプ接続(ID 17-18)等が記録されます。設定ファイル(XML)を適切にチューニングすることで、ノイズを減らし、有用な情報のみを記録します。

ネットワークログ

ネットワーク通信のログから、C2サーバーとの通信、データ流出、横展開を検出します。

ファイアウォールログ

ファイアウォールのログには、許可・拒否された通信の記録があります。

Windows Defenderファイアウォール
`%SystemRoot%\System32\LogFiles\Firewall\pfirewall.log` にテキスト形式で記録されます。送信元/送信先IP、ポート、プロトコル、アクション(ALLOW/DROP)、日時が記録されています。デフォルトでは無効のため、事前に有効化が必要です。
次世代ファイアウォール(NGFW)
Palo Alto Networks、Fortinet、Check Point等のNGFWは、アプリケーション識別、ユーザー識別、URLフィルタリングのログを提供します。SIEMに転送し、集中管理・相関分析を行います。長期保存により、過去の不審な通信パターンを遡及調査可能です。

プロキシログ

Webプロキシサーバーのログには、Webアクセスの詳細が記録されています。

アクセスログの解析
Squid、BlueCoat、Zscaler等のプロキシログから、アクセスURL、HTTP ステータスコード、ユーザーエージェント、転送バイト数を抽出します。マルウェアのC2通信は、特定のURLパターンや、定期的なビーコン通信として現れる場合があります。
TLS/SSL復号
HTTPS通信を復号するプロキシ(SSL Inspection)を使用している場合、暗号化された通信の内容もログに記録されます。これにより、TLSで保護されたC2通信も検出可能です。ただし、プライバシーへの配慮と、証明書の適切な管理が必要です。

DNSクエリログ

DNS問い合わせのログから、マルウェアが通信を試みたドメインを特定します。

DNSサーバーログ
Windows DNS ServerやBIND等のDNSサーバーで、クエリログを有効にします。問い合わせ元IP、問い合わせドメイン、レコードタイプ(A、AAAA、TXT等)、応答を記録します。DGA(Domain Generation Algorithm)で生成されたランダムなドメインへの問い合わせは、マルウェア活動の強い兆候です。
DNS シンクホール
既知の悪性ドメインへの問い合わせを、内部のシンクホールサーバーに誘導することで、感染端末を特定します。問い合わせが発生した時点で、その端末がマルウェアに感染している可能性が高いと判断できます。
Passive DNSデータベース
Passive DNS(PDNS)サービスを利用し、過去のDNS解決履歴を照会します。攻撃者のインフラストラクチャ(IPアドレス、ドメイン)の変遷を追跡し、関連する他の脅威を発見します。

アプリケーションログ

各アプリケーション固有のログには、攻撃の詳細な痕跡が残っています。

Webサーバーログ

Apache、nginx、IIS等のWebサーバーログから、Webアプリケーションへの攻撃を検出します。

アクセスログとエラーログ
アクセスログには、リクエストURL、HTTPメソッド、ステータスコード、ユーザーエージェント、リファラーが記録されています。エラーログには、アプリケーションエラーやスクリプトエラーが記録されます。SQLインジェクションXSS攻撃の試行は、不審なURLパラメータとして現れます。
Webシェルの検出
アップロードされたWebシェル(.php、.aspx、.jsp等)へのアクセスログを検索します。通常のユーザーがアクセスしないパスへのPOSTリクエスト、Base64エンコードされたパラメータ等が兆候です。

データベースログ

データベースサーバーのログから、不正なクエリや、データ流出を検出します。

クエリログ
MySQL、PostgreSQL、SQL Server等で、実行されたSQL文を記録します。通常と異なるパターンのクエリ(UNION SELECT、OR 1=1等)は、SQLインジェクションの兆候です。大量のデータを返すクエリは、データ流出の可能性があります。
監査ログ
データベースの監査機能を使用し、ログオン試行、権限変更、テーブルアクセス、データ変更を記録します。特権アカウントの不審な使用、深夜のアクセス、通常と異なるIPアドレスからのアクセスを検出します。

認証ログ

認証サーバー、Active Directory、SSOシステムのログから、認証情報の窃取や不正ログインを検出します。

Active Directoryログ
ドメインコントローラーのセキュリティログから、認証関連イベントを抽出します。イベントID 4768(Kerberosチケット要求)、4769(Kerberosサービスチケット要求)、4771(Kerberos事前認証失敗)を分析し、Pass-the-Ticket攻撃やKerberoasting攻撃を検出します。
認証失敗の分析
短時間での大量の認証失敗は、ブルートフォース攻撃やパスワードスプレー攻撃の兆候です。成功した認証の前に複数回失敗している場合、最終的に正しいパスワードを見つけた可能性があります。
異常な認証パターン
通常と異なる時間帯、場所、デバイスからの認証は、アカウント乗っ取りの可能性があります。不可能旅行(impossibletravel)の検出—短時間に地理的に離れた場所からのログイン—はSIEMやUEBAツールで自動化できます。

マルウェア解析との連携|動的・静的解析

フォレンジック調査で発見したマルウェア検体は、詳細解析により、機能、通信先、起動条件を明らかにします。

静的解析

実行せずに、ファイル自体を解析する手法です。

ハッシュ値での照合

既知のマルウェアデータベースと照合し、迅速に脅威を特定します。

VirusTotalへの照会
MD5、SHA-1、SHA-256ハッシュ値を使用し、VirusTotalで検索します。既に他の組織で検出されている場合、マルウェア名、検出率、振る舞いの情報が得られます。ただし、検体をアップロードすると第三者に共有されるため、機密性の高い組織では注意が必要です。ハッシュ値での検索のみであれば、ファイル内容は送信されません。
内部脅威インテリジェンス
過去のインシデントで発見したマルウェアのハッシュ値をデータベース化し、再発を迅速に検出します。YARA、OpenIOC、STIX形式でIOCを管理し、EDRやSIEMと連携させます。

文字列抽出

実行ファイルから、人間が読める文字列を抽出し、機能を推測します。

stringsコマンド
Linux の`strings`コマンドや、Windows用の`Strings.exe`(Sysinternals)を使用します。最低4文字以上の連続した文字を抽出します。URL、IPアドレス、ファイルパス、エラーメッセージ、レジストリキー等が含まれていれば、マルウェアの動作を推測できます。
難読化への対応
Base64エンコード、XOR暗号化等で文字列が難読化されている場合があります。エンコードパターンを認識し、デコードします。CyberChefのようなツールで、複数の変換を試行錯誤的に適用できます。
APIとDLLの特定
インポートテーブルから、使用されているWindows API関数を確認します。`CreateRemoteThread`、`VirtualAllocEx`等はプロセスインジェクション、`InternetOpenUrl`はネットワーク通信、`CryptEncrypt`は暗号化を示唆します。

パッカー検出

マルウェアは、検出を回避するため、パッカー(圧縮・難読化ツール)で処理されている場合があります。

PEiD、Detect It Easy
実行ファイルのエントロピーやシグネチャから、使用されているパッカーを特定します。UPX、ASPack、Themida、VMProtect等、様々なパッカーが検出可能です。パッカーが使用されている場合、アンパッキング(展開)してから解析します。
高エントロピーセクション
圧縮や暗号化されたコードは、高いエントロピー(ランダム性)を持ちます。PEファイルの各セクションのエントロピーを計算し、7.0以上であれば、パッキングまたは暗号化の可能性があります。

動的解析

隔離された環境でマルウェアを実行し、実際の振る舞いを観察します。

サンドボックス実行
Cuckoo Sandbox、Joe Sandbox、Hybrid Analysis、Any.run等で隔離実行します。API呼び出し、ファイル操作、レジストリ変更、ネットワーク通信を自動的に記録します。実行後のレポートには、IOC、MITRE ATT&CKマッピング、スクリーンショット、PCAファイルが含まれます。仮想環境検出(VM検出)を回避するため、サンドボックスの設定を工夫する必要がある場合があります。
デバッガでの解析
OllyDbg、x64dbg、WinDbg、IDA Pro等のデバッガで詳細解析します。ブレークポイントを設定し、レジスタやメモリの状態をステップ実行で確認します。アンチデバッグ機能(IsDebuggerPresent、NtQueryInformationProcess等)を回避するため、プラグインや手動パッチが必要な場合があります。
メモリ上での振る舞い
Process Monitor(Procmon)、API Monitor等で、実行時の動作をリアルタイム観察します。ファイルシステム、レジストリ、ネットワーク、プロセスのアクティビティをフィルタリングし、重要な操作のみを抽出します。DLLインジェクション、プロセスハロウイング、APC インジェクション等の高度な手法も検出可能です。

IOC(Indicators of Compromise)

マルウェアから抽出した痕跡を、IOC(侵害指標)として整理し、他のシステムでの検索や、組織間での共有に使用します。

IOCの抽出と共有

フォレンジック調査で得られた情報を、再利用可能な形式で管理します。

IOCタイプ 用途 注意点
ファイルハッシュ MD5, SHA-256 同一ファイルの検出 パッカー変更で回避される
IPアドレス 192.0.2.1 C2サーバーの特定 IPは使い回される
ドメイン名 evil.example.com DNS通信の監視 ドメイン変更が容易
URL http://evil.example.com/payload 配布サイトの特定 完全一致のみ有効
レジストリキー HKLM\Software\Malware 永続化の検出 環境依存の場合あり
ファイルパス C:\Windows\Temp\malware.exe ファイル存在確認 環境依存
Mutexes Global\MalwareMutex 実行中の検出 変更が容易
ネットワークパターン ビーコン間隔、User-Agent 通信パターン検出 最も回避困難
IOCの優先順位
**戦術的IOC**(ハッシュ、IP、ドメイン)は、攻撃者が容易に変更できるため、短期的な検出に有効です。**戦略的IOC**(TTPs: Tactics, Techniques, Procedures、通信パターン、振る舞い)は、攻撃者が変更するコストが高く、長期的な検出に有効です。両方をバランスよく収集し、階層的な防御を構築します。

STIX/TAXII形式

脅威インテリジェンスの標準形式で、組織間でのIOC共有を可能にします。

STIX(Structured Threat Information Expression)
サイバー脅威情報を記述するための標準化されたXML/JSON形式です。STIX 2.0以降では、Indicator、Malware、ThreatActor、Campaign等のオブジェクトで脅威を表現します。関係性(Relationship)で、マルウェアと攻撃者、キャンペーンを関連付けます。
TAXII(Trusted Automated eXchange of Intelligence Information)
STIX形式の脅威情報を、組織間で自動的に交換するためのプロトコルです。TAXII Serverから定期的にフィードを取得し、SIEMやEDRに取り込みます。FS-ISAC、JPCERT/CC等の情報共有組織がTAXIIサーバーを提供しています。
OpenIOC
Mandiantが開発したIOC記述形式で、XML形式で論理演算を使用した複雑なIOCを表現できます。Redline、IOC Editor等のツールで作成・検証します。STIX形式への変換も可能です。

脅威インテリジェンス連携

収集したIOCを、組織の防御に活用します。

SIEM/EDRへの統合
抽出したIOCを、SIEM(Splunk、QRadar、Sentinel)やEDR(CrowdStrike、SentinelOne、Microsoft Defender)に取り込みます。既存ログやエンドポイントで、IOCに一致する活動を検索(IOC Sweep)し、同様の感染を発見します。
TIP(Threat Intelligence Platform)
MISP、ThreatConnect、Anomali等のTIPを使用し、複数のソースからの脅威情報を集約・管理します。重複排除、エンリッチメント(追加情報付加)、False Positive判定、優先度付けを自動化します。
攻撃グループのプロファイリング
収集したIOCを、既知の攻撃グループ(APT28、APT29、Lazarus Group等)のTTPsと照合します。MITRE ATT&CKフレームワークにマッピングし、攻撃のフェーズ(Initial Access、Execution、Persistence等)を特定します。これにより、次の攻撃フェーズを予測し、先回りして防御を強化できます。

実践的なフォレンジック調査フロー

理論を実践に適用するため、典型的なインシデントでの調査フローを示します。

ケーススタディ:ランサムウェア感染の調査

初動(0-2時間)

被害範囲の特定
暗号化されたファイルのあるサーバー・PCをリストアップします。ネットワークを遮断し、感染拡大を防止します。ランサムノート(身代金要求文)から、ランサムウェアの種類を特定します。
証拠保全の開始
感染端末のメモリダンプを取得します。電源を落とさず、ネットワークケーブルを抜くだけに留めます。ログサーバーのログをバックアップし、上書きを防ぎます。

詳細調査(2-24時間)

侵入経路の特定
フィッシングメール、VPN、RDP等、初期侵入のベクトルを特定します。メールログ、認証ログ、ファイアウォールログを時系列で整理します。脆弱性を悪用された場合、CVE番号と影響範囲を特定します。
横展開の追跡
最初に感染した端末から、他の端末への展開経路を追跡します。SMB、WMI、PSExec、RDP等のプロトコルログを分析します。ドメイン管理者アカウントの不正使用を確認します。
データ流出の有無
最近のランサムウェアは、二重恐喝として、暗号化前にデータを流出させます。大量のアウトバウンド通信、圧縮ファイルの作成、クラウドストレージへのアップロードの痕跡を調査します。

復旧と改善(24時間以降)

根絶と復旧
全ての感染端末を特定し、マルウェアを駆除します。バックアップから、暗号化されたデータを復元します。復旧前に、侵入経路を完全に塞ぎます。
再発防止策
調査で明らかになった脆弱性、設定不備、運用課題を改善します。検出ルール、ファイアウォールポリシー、EDR設定を更新します。従業員への教育を実施し、フィッシング訓練を強化します。
法的対応
必要に応じて、警察への届出、個人情報保護委員会への報告、顧客への通知を行います。調査報告書と証拠を整理し、法的要件を満たします。

フォレンジックツール一覧

効率的な調査のため、適切なツールを選択します。

主要フォレンジックツール比較

ツール名 タイプ 主な機能 価格帯 習得難易度
FTK(Forensic Toolkit) 統合プラットフォーム イメージング、解析、レポート 商用(高額)
EnCase 統合プラットフォーム イメージング、解析、法廷向け 商用(高額) 中~高
X-Ways Forensics 統合プラットフォーム 高速解析、詳細調査 商用(中価格)
Autopsy オープンソース タイムライン、ファイル解析 無料 低~中
Volatility メモリ解析 包括的メモリフォレンジック 無料 中~高
Rekall メモリ解析 クロスプラットフォーム対応 無料
Velociraptor エンドポイント収集 大規模環境での証拠収集 無料
KAPE 証拠収集 トリアージ、高速収集 無料
Wireshark ネットワーク解析 パケット詳細解析 無料
Plaso/Log2Timeline タイムライン作成 複数ソース統合 無料

カテゴリ別推奨ツール

証拠収集・イメージング
**商用**: FTK Imager(無料版あり)、EnCase Imager **オープンソース**: dc3dd、Guymager、KAPE(トリアージ)
メモリフォレンジック
**推奨**: Volatility 3、Volatility 2.6(レガシー) **補助**: Rekall、MemProcFS(マウント型)、WinDbg(デバッグ用)
ディスク解析
**統合環境**: Autopsy、Sleuth Kit、X-Ways Forensics **特化ツール**: MFTECmd(MFT解析)、RegRipper(レジストリ)、Hindsight(ブラウザ履歴)
タイムライン・ログ解析
**タイムライン**: Plaso/Log2Timeline、Timeline Explorer **ログ解析**: Splunk、ELK Stack、Graylog、EvtxECmd(Windowsイベントログ)
マルウェア解析
**静的**: IDA Pro、Ghidra、CFF Explorer、PEiD **動的**: Cuckoo Sandbox、Process Monitor、Process Hacker、Regshot
ネットワーク解析
**パケット解析**: Wireshark、NetworkMiner、tcpdump **フロー解析**: Zeek(旧Bro)、Suricata、Moloch/Arkime

法的・倫理的考慮事項

フォレンジック調査には、高度な技術力だけでなく、法的・倫理的な理解が不可欠です。

日本における法的フレームワーク

刑事訴訟法上の証拠能力
デジタル証拠が裁判で採用されるためには、**真正性**(改ざんされていないこと)、**関連性**(事件との関連)、**証拠収集の適法性**が必要です。Chain of Custodyの確立、ハッシュ値による完全性証明、標準的手法の採用が重要です。
不正アクセス禁止法
調査目的であっても、権限のないシステムへのアクセスは違法です。自社システムであっても、従業員のプライバシーに配慮し、調査範囲を明確にします。調査計画書を作成し、法務部門の承認を得ます。
個人情報保護法
調査過程で取得した個人情報は、目的外利用の禁止、安全管理措置、第三者提供の制限等の規制を受けます。特に、委託先に調査を依頼する場合は、秘密保持契約(NDA)と、委託先の監督義務を果たします。
電気通信事業法の通信の秘密
通信内容、通信の存在、通信の相手方を知られないようにする義務があります。社内ネットワークでも、従業員の私的な通信は保護対象となり得ます。就業規則やポリシーで、監視の範囲と目的を明示します。

倫理的ガイドライン

比例原則
調査の侵襲性は、インシデントの重大性に比例すべきです。軽微なインシデントで、過度に広範な調査を行うことは、プライバシー侵害となり得ます。必要最小限の範囲で調査します。
客観性と中立性
フォレンジック調査は、事実を明らかにすることが目的であり、特定の結論を導くために証拠を選別してはなりません。相反する証拠も含め、全ての関連情報を報告します。
専門家としての継続的学習
技術の進化に対応するため、継続的にスキルを向上させます。GCFA、GCFE、EnCE、CISSP等の資格取得、カンファレンス参加、論文・ブログでの情報収集を継続します。
情報の適切な取り扱い
調査で得られた機密情報は、厳格に管理します。Need-to-Knowの原則に基づき、必要な関係者のみに共有します。調査終了後の証拠の適切な廃棄も重要です。

よくある質問(FAQ)

Q: フォレンジック調査にかかる時間とコストは?
A: 規模により大きく異なりますが、①簡易調査(1台):2-3日/50-100万円、②標準調査(10台):1-2週間/300-500万円、③大規模調査(100台以上):1ヶ月以上/1000万円以上が目安です。内製化により費用は削減可能ですが、専門知識と高額なツールが必要です。重大インシデントでは外部専門業者への依頼が確実です。調査範囲、目的、緊急性により、適切な調査レベルを選択します。
Q: メモリダンプを取ると業務に影響はありますか?
A: 一時的な影響はありますが、最小限に抑えられます。8GBメモリなら1-2分、64GBでも10分程度です。CPU使用率が一時的に上昇しますが、業務継続は可能です。ただし、リアルタイムシステムや高負荷サーバーでは、業務影響を考慮して夜間実施を推奨します。仮想マシンならスナップショット取得で影響ゼロも可能です。事前に関係部門と調整し、ビジネスへの影響を最小化します。
Q: 削除されたマルウェアも調査できますか?
A: 多くの場合可能です。①削除直後ならMFTエントリから復元、②上書きされていなければファイルカービング、③実行痕跡はレジストリやイベントログに残存、④メモリには数時間~数日間痕跡が残る場合もあります。ただし、ワイパー型マルウェアや意図的な証拠隠滅(アンチフォレンジック技術)があった場合は困難です。早期の証拠保全が重要であり、インシデント発覚後、可能な限り早くメモリダンプとディスクイメージを取得します。
Q: クラウド環境のフォレンジックは可能?
A: 可能ですが、制約があります。AWS:CloudTrail、VPCフローログ、EC2のメモリダンプ取得可能。Azure:Activity Log、NSGフローログ、VMメモリ取得可能。ただし、①物理ディスクへの直接アクセス不可、②ログ保持期間の制限、③管理者権限の範囲制限、④複数リージョンでのデータ分散、等の課題があります。事前のログ設定(CloudTrail有効化、ログの長期保存設定)と収集体制が重要です。クラウドプロバイダーの協力を得られる体制も整備します。
Q: AIはフォレンジックでどう活用できますか?
A: ①異常検知:正常パターンを学習し、異常な挙動を自動検出、②タイムライン生成:大量ログから自動的に時系列整理、③相関分析:複数の証跡から攻撃シナリオを推定、④自然言語処理:ログやメモリ内の文字列から重要情報抽出、⑤画像認識:スクリーンショットやメモリダンプから不審な画像を検出、等が可能です。ただし、法的証拠としては人間の検証が必要であり、AIの判断を盲信してはいけません。AIは調査効率化のツールとして活用し、最終判断は専門家が行います。

まとめ

デジタルフォレンジック調査は、マルウェア感染の真相を科学的に解明し、法的対応の基礎を提供する重要な技術です。本記事で解説した手法を実践することで、以下を達成できます。

重要なポイント:

  • 証拠の完全性:Chain of Custodyとハッシュ値検証により、法的に有効な証拠を保全
  • 揮発性の理解:Order of Volatilityに従い、メモリ→ディスク→ログの順で取得
  • 多層的解析:メモリ、ディスク、ログ、ネットワークの各レイヤーで痕跡を追跡
  • マルウェア解析連携:静的・動的解析により、攻撃の詳細を解明
  • IOC活用:抽出した侵害指標を、組織全体の防御に活用
  • 法的・倫理的配慮:プライバシーと証拠収集のバランスを保つ

フォレンジック調査能力の構築は、マルウェアインシデント対応全体の成功を左右します。継続的な訓練、ツールの習熟、最新手法の学習により、組織のレジリエンスを高めましょう。


関連リソース

本記事に関連する詳細情報は、以下のページでご確認ください。

インシデント対応関連:

脅威と攻撃手法:

総合ガイド:


【重要なお知らせ】

本記事は一般的な情報提供を目的としており、個別の状況に対する法的助言ではありません。実際にマルウェア感染が発生した場合は、専門のフォレンジック業者、弁護士、警察(#9110)や情報処理推進機構(IPA)等の公的機関にご相談ください。法的な対応が必要な場合は、サイバーセキュリティに精通した弁護士にご相談ください。記載内容は作成時点の情報であり、技術や法規制は日々進化している可能性があります。フォレンジック調査を実施する際は、最新の技術動向、法的要件、業界標準に準拠してください。

更新履歴

初稿公開

京都開発研究所

システム開発/サーバ構築・保守/技術研究

CMSの独自開発および各業務管理システム開発を行っており、 10年以上にわたり自社開発CMSにて作成してきた70,000以上のサイトを 自社で管理するサーバに保守管理する。