メモリ取得とVolatility Framework
WinPmemでRAMイメージを取得し、Volatility 3でプロセス、ネットワーク接続、インジェクションされたコードを一覧表示します。
「メモリ取得とVolatility Framework」はCoddyKit上の無料Cyber Security Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCyber Security Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cyber Security Academyコースには全4レッスンが含まれています。
メモリ解析が重要な理由
RAMには、実行中のプロセス、ネットワーク接続、暗号化キー、パスワード、挿入されたコード、攻撃者の痕跡が含まれており、その中にはディスクに一度も書き込まれないものもあります。ファイルレスマルウェアはメモリ上にのみ存在します。メモリ解析によって、ディスクフォレンジックでは完全に見逃してしまう証拠を取得できます。
WinPmemによるメモリ取得
WinPmemは、Windows向けの無料かつオープンソースのメモリ取得ツールです。Volatilityで解析できる raw 形式のメモリダンプを作成します。カーネル構造を含むすべての物理メモリを取得するには、管理者として実行してください。
winpmem_mini.exe -o memory.raw
# Verify size matches installed RAMLiMEによるLinuxメモリ取得
Linux Memory Extractor(LiME)は、RAMを取得してファイルに書き込むか、ネットワーク経由で送信するカーネルモジュールです。ライブインシデントレスポンスでは、侵害されている可能性のあるシステムにダンプを書き込まないよう、ネットワーク方式を使用してください。
Volatility 3の概要
Volatility 3は、主要なメモリフォレンジックフレームワークです。カーネル構造を解釈するには、対象OSのバージョンに対応するシンボルテーブルが必要です。主なコマンドは、windows.pslist、windows.pstree、windows.netstat、windows.dlllist、windows.malfindです。
vol -f memory.raw windows.pslist
vol -f memory.raw windows.pstree
vol -f memory.raw windows.netstatプロセス解析
windows.pslistは実行中のプロセスを一覧表示します。既知の正常なベースラインと比較してください。次の点を確認します。通常とは異なるパス(%TEMP%、%APPDATA%)から実行されているプロセス、親子関係の異常(winword.exeがcmd.exeを起動するなど)、関連付けられたディスク上のファイルがないプロセス(プロセスハロウイングの兆候)です。
メモリ上のネットワーク接続
windows.netstatは、メモリからTCP接続を抽出します。これには、ライブのnetstat出力には表示されない、直近に切断された接続も含まれます。C2接続を特定するには、既知の不正なIPアドレスに解決される外部アドレスや、一般的なプロセス名に対して通常とは異なるポート(svchost.exeから外部IPへの接続など)を確認します。
DLLインジェクションの検出
windows.dlllistは、プロセスごとに読み込まれたDLLを表示します。既知の正常なDLLリストと比較してください。explorer.exeやsvchost.exeに存在する通常とは異なるDLL、パスのないDLL、システムプロセス内にある不審な名前のDLLは、インジェクションを示しています。
Malfind:コードインジェクションの検出
windows.malfindは、PAGE_EXECUTE_READWRITE保護が設定され、ディスク上の対応ファイルがないメモリ領域を特定します。これは、プロセスインジェクションやシェルコードの典型的な兆候です。不審なメモリ領域をダンプし、解析用に先頭バイトを表示します。
メモリからの文字列抽出
メモリダンプ、またはVolatilityで抽出した特定プロセスのダンプに対してstringsを実行します。メモリ上の文字列には、実行中にディスクへ一度も書き込まれなかったC2 URL、暗号化キー、デコード済みペイロード、認証情報が含まれていることがあります。
メモリ上のハンドルとレジストリ
windows.handlesは、プロセスごとに開かれているファイルハンドル、レジストリキー、ミューテックス、イベントを表示します。ミューテックス名は強力なIOCです。あるインシデントで特定したミューテックスを他のメモリダンプからも探すことで、環境全体に存在する関連マルウェアを見つけられます。
メモリフォレンジックのワークフロー
体系的なワークフローは次のとおりです。(1) プロファイルの特定、(2) プロセスの列挙と異常検出、(3) ネットワーク接続の確認、(4) DLLインジェクションのスキャン、(5) Malfind、(6) 不審なプロセスのダンプ、(7) 文字列の抽出、(8) IOCの抽出と報告。
理解度チェック
ファイルレスマルウェアが従来のフォレンジック手法にとって特に困難なのはなぜですか?
まとめ
メモリフォレンジックは、ディスク解析では見えない揮発性の証拠を取得します。取得にWinPmem、解析にVolatility 3を使用し、プロセス、ネットワーク接続、挿入されたコード、DLLの異常を調べることで、ファイルレスマルウェアや、そうでなければ検出できない攻撃者の活動を明らかにできます。
よくある質問
「メモリ取得とVolatility Framework」レッスンは無料ですか?
はい。「メモリ取得とVolatility Framework」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cyber Security Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cyber Security Academyコースには全4レッスンが含まれています。
「メモリ取得とVolatility Framework」で何を学びますか?
WinPmemでRAMイメージを取得し、Volatility 3でプロセス、ネットワーク接続、インジェクションされたコードを一覧表示します。 ブラウザで直接実行するハンズオンコードでCyber Security Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cyber Security Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCyber Security Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「メモリ取得とVolatility Framework」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCyber Security Academyレッスンでコードを書いて実行できますか?
はい。すべてのCyber Security Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- ディスクイメージ取得とファイルシステムフォレンジック
- メモリ取得とVolatility Framework
- タイムライン分析とアーティファクトの相関付け
- Wiresharkによるネットワークフォレンジック