メモリフォレンジックは、揮発性情報であるメモリ上のデータを解析し、コンピュータ上でどのようなプログラムが動作し、どのような相手と通信していたかなどの情報を得ることで、不正行為やセキュリティインシデントの証拠を収集するための技術です。本書ではメモリフォレンジックの概念から始まり、オープンソースのツールVolatilityを使った高度なマルウェア解析の手法といった実践的なテクニックを学びます。マルウェアによる事故や複雑な標的型攻撃を調査し対応する技術が身に付くよう、実際の事故から得られたメモリイメージを用いています。本書を通して独自にメモリダンプを作成し、ユーザのアクティビティを調べ、ファイルレスおよびメモリベースのマルウェアの痕跡を検出するスキルを習得することができます。
実践 メモリフォレンジック
―揮発性メモリの効果的なフォレンジック分析
Svetlana Ostrovskaya、Oleg Skulkin 著、石川 朝久、小林 稔 技術監修、北原 憲 訳
- TOPICS
- Security
- 発行年月日
- 2023年11月
- PRINT LENGTH
- 352
- ISBN
- 978-4-8144-0047-8
- 原書
- Practical Memory Forensics
- FORMAT
- Print PDF EPUB
正誤表
ここで紹介する正誤表には、書籍発行後に気づいた誤植や更新された情報を掲載しています。以下のリストに記載の年月は、正誤表を作成し、増刷書籍を印刷した月です。お手持ちの書籍では、すでに修正が施されている場合がありますので、書籍最終ページの奥付でお手持ちの書籍の刷版、刷り年月日をご確認の上、ご利用ください。
第1刷正誤表
2024年3月更新
■P.151 コード
【誤】PS D:\> .\bulk_extractor.exe -e .\output\ .\pagefile.sys
【正】PS D:\> .\bulk_extractor.exe -o .\output\ .\pagefile.sys
■P.101 表5-2の下から2行目
【誤】Metarpreter
【正】Meterpreter
■P.101 下から6行目
【誤】Merepreter
【正】Meterpreter
■P.151 コード
【誤】PS D:\> .\bulk_extractor.exe -e .\output\ .\pagefile.sys
【正】PS D:\> .\bulk_extractor.exe -o .\output\ .\pagefile.sys
■P.101 表5-2の下から2行目
【誤】Metarpreter
【正】Meterpreter
■P.101 下から6行目
【誤】Merepreter
【正】Meterpreter
目次
訳者まえがき まえがき 第Ⅰ部 メモリフォレンジックの基礎 1章 メモリフォレンジックの意義 1.1 メモリフォレンジックの恩恵 1.1.1 痕跡を残さない攻撃手法 1.1.2 プライバシーの番人 1.2 調査の目的と手法 1.2.1 被害者の端末 1.2.2 容疑者の端末 1.3 メモリフォレンジックの課題 1.3.1 ツール 1.3.2 調査対象の重要性 1.3.3 不安定性 1.4 まとめ 2章 メモリダンプの取得 2.1 メモリ管理の概念 2.1.1 アドレス空間 2.1.2 仮想メモリ 2.1.3 ページング 2.1.4 共有メモリ 2.1.5 スタックとヒープ 2.2 ライブメモリ解析 2.2.1 Windows 2.2.2 LinuxとmacOS 2.3 部分的なメモリダンプと完全なメモリダンプ 2.4 一般的なメモリ取得ツールと手法 2.4.1 仮想端末と物理端末 2.4.2 ローカル端末とリモート端末 2.4.3 ツールの選択 2.4.4 メモリダンプを作成する時刻 2.5 まとめ 第Ⅱ部 Windowsでのメモリフォレンジック 3章 Windowsでのメモリの取得 3.1 Windowsでメモリを取得する際の問題 3.2 Windowsでメモリを取得する準備 3.3 FTK Imagerによるメモリの取得 3.4 WinPmemによるメモリの取得 3.5 Belkasoft Live RAM Capturerによるメモリの取得 3.6 Magnet RAM Captureによるメモリの取得 3.7 まとめ 4章 Windowsでのユーザの挙動の解析 4.1 前提知識と準備 4.2 実行されたアプリケーションの解析 4.2.1 Volatility Frameworkの導入 4.2.2 プロファイルの特定 4.2.3 稼働プロセスの調査 4.2.4 終了したプロセスの調査 4.3 閲覧された文書ファイルの探索 4.3.1 プロセスのメモリに存在する文書 4.4 Webブラウザの履歴の調査 4.1.1 YaraルールによるChromeの解析 4.4.2 Bulk ExtractorによるFirefoxの解析 4.4.3 StringsによるTorブラウザのメモリダンプ解析 4.5 コミュニケーションアプリケーションの調査 4.5.1 電子メールの調査 4.5.2 メッセンジャーの調査 4.6 パスワードの復元 4.6.1 Hashdump 4.6.2 Cachedump 4.6.3 Lsadump 4.6.4 平文パスワード 4.7 暗号コンテナの解析 4.8 レジストリの調査 4.8.1 仮想レジストリ 4.8.2 MemProcFSのインストール 4.8.3 Windowsのレジストリの調査 4.9 まとめ 5章 Windowsでのマルウェアの検知と解析 5.1 悪性プロセスの探索 5.1.1 プロセス名 5.1.2 異常な挙動の検知 5.2 コマンドライン引数の解析 5.2.1 プロセスのコマンドライン引数 5.2.2 コマンド履歴 5.3 ネットワーク接続の調査 5.3.1 ネットワーク通信を行うプロセス 5.3.2 IPアドレスとポート 5.4 ペイロードが注入されたプロセスの調査 5.4.1 DLLインジェクション 5.4.2 PEインジェクション 5.4.3 Process Hollowing 5.4.4 Process Doppelgänging 5.5 永続化の痕跡の探索 5.5.1 システム起動時とログオン時の自動実行 5.5.2 アカウントの作成 5.5.3 システムプロセスの作成と変更 5.5.4 スケジュールタスク 5.6 タイムラインの作成 5.6.1 ファイルシステムを活用したタイムラインの構築 5.6.2 メモリを活用したタイムラインの構築 5.7 まとめ 6章 Windowsにおける揮発性メモリの情報源 6.1 ハイバネーションファイルの調査 6.1.1 ハイバネーションファイルの取得 6.1.2 hiberfil.sysの解析 6.2 ページファイルとスワップファイルの調査 6.2.1 ページファイルの取得 6.2.2 pagefile.sysの解析 6.3 クラッシュダンプの解析 6.3.1 クラッシュダンプの作成 6.3.2 クラッシュダンプの解析 6.4 まとめ 第Ⅲ部 Linuxでのメモリフォレンジック 7章 Linuxでのメモリの取得 7.1 Linuxでのメモリ取得の課題 7.2 Linuxでのメモリ取得の準備 7.3 LiMEによるメモリ取得 7.4 AVMLによるメモリ取得 7.5 Volatility Framework用のプロファイル作成 7.6 まとめ 8章 Linuxでのユーザの挙動解析 8.1 技術要件 8.2 実行されたプログラムの調査 8.3 Bashの履歴の解析 8.4 操作されたファイルの調査 8.5 ファイルシステムの復元 8.6 ブラウザの履歴の調査 8.7 コミュニケーションアプリケーションの調査 8.8 マウントされたデバイスの調査 8.9 暗号コンテナの調査 8.10 まとめ 9章 Linuxでのマルウェアの検知と解析 9.1 ネットワーク的な挙動の調査 9.2 悪意のある挙動の解析 9.3 カーネルオブジェクトの調査 9.4 まとめ 第Ⅳ部 macOSでのメモリフォレンジック 10章 macOSでのメモリの取得 10.1 macOSでのメモリ取得の課題 10.2 macOSでのメモリ取得の準備 10.3 osxpmemによるメモリ取得 10.4 Volatility Frameworkのプロファイル作成 10.5 まとめ 11章 macOSでのマルウェアの検知と解析 11.1 Volatility FrameworkでmacOS解析の特色を学ぶ 11.2 技術要件 11.3 ネットワーク接続の調査 11.4 プロセスとそのメモリの解析 11.5 ファイルシステムの復元 11.6 アプリケーションデータの入手 11.7 悪意のある挙動の探索 11.8 まとめ 付録 Volatility 3の基本的な使用方法 A.1 解析対象のサンプル A.2 Volatility 3のインストール A.2.1 ソースコードからインストールする方法 A.2.2 Wheelファイルからインストールする方法 A.3 シンボルの追加 A.4 基本的な使用方法 A.5 オフライン環境での使用方法と新規シンボルの作成方法 A.5.1 Windows用シンボルの作成 A.5.2 Linux用シンボルの作成 A.5.3 macOS用シンボルの作成 A.6 Kernel Debug Kitの閲覧方法 A.6.1 macOSの場合 A.6.2 Linuxの場合 A.7 まとめ 索引