analyzing-windows-amcache-artifacts について
インシデント対応向けに、Windows Amcache アーティファクトを調べるフォレンジック分析スキルです。レジストリデータの解析、プログラムやドライバーの確認、他の実行証拠との照合を支援します。
主な機能
- 01Amcache ハイブとトランザクションログの収集
- 02エントリの CSV 解析
- 03ファイルハッシュとパスの確認
- 04インストール済みプログラムとドライバーの調査
- 05証拠を照合したタイムライン作成
活用シーン
- 01インシデント中に存在したソフトウェアの特定
- 02ハッシュとマルウェア情報の照合
- 03未承認インストールの調査
- 04不審なドライバー記録の確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ mukul975/ anthropic-cybersecurity-skills --skill analyzing-windows-amcache-artifactsインストール後、Claude Code で/analyzing-windows-amcache-artifactsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
LICENSEreferences/api-reference.mdscripts/agent.py詳細
Windows Amcache アーティファクトの分析
使用する状況
- インシデント対応中に、Windows システム上に存在していた、または実行されたプログラムを特定する場合
- Amcache の SHA-1 ハッシュを既知のマルウェアデータベース(VirusTotal、CIRCL、MISP)と照合する場合
- フォレンジック調査用に、アプリケーションのインストールと実行のタイムラインを作成する場合
- ファイルの削除後も Amcache に痕跡が残る、削除済みの実行ファイルを特定する場合
- どのポータブルアプリケーションや未承認アプリケーションが存在していたかを記録して、内部脅威を調査する場合
- ルートキットや悪意のあるカーネルモジュールを検出するために、ドライバーの読み込み履歴を分析する場合
プログラムが実行されたことの唯一の証拠として使用しないでください。Amcache が示すのは、ファイルの存在とメタデータの登録です。ShimCache(AppCompatCache)と Prefetch のほうが、実行を示す強い証拠となります。決定的な分析には、これら3つのアーティファクトをすべて併用してください。
前提条件
- フォレンジックイメージ、または
C:\Windows\appcompat\Programs\Amcache.hve(および関連する.LOG1、.LOG2トランザクションログ)のライブトリアージコピー - https://ericzimmerman.github.io/ からダウンロードした Eric Zimmerman の AmcacheParser(
AmcacheParser.exe) - 解析した CSV 出力を表示するための Eric Zimmerman の Timeline Explorer
- 任意:ハイブを手動で調査するための Registry Explorer
- フィルタリング用の既知の正常な実行ファイルの SHA-1 ホワイトリスト(NSRL ハッシュセットなど)
- インストール済みの .NET 6+ ランタイム(現在の EZ ツールで必要)
- CSV 結果の出力先ディレクトリへの書き込みアクセス権
ワークフロー
ステップ 1:Amcache.hve ファイルを取得する
フォレンジックイメージまたはライブシステムから Amcache ハイブを抽出します。
# From a live system (requires elevated privileges and raw copy tool)
# Amcache.hve is locked by the system; use a raw disk copy tool
# Option A: FTK Imager - mount image and navigate to:
# C:\Windows\appcompat\Programs\Amcache.hve
# Also collect: Amcache.hve.LOG1, Amcache.hve.LOG2
# Option B: Using KAPE for automated triage collection
kape.exe --tsource C: --tdest D:\Evidence\%m --target Amcache
# Option C: From a mounted forensic image (E: = mounted image)
copy "E:\Windows\appcompat\Programs\Amcache.hve" D:\Evidence\
copy "E:\Windows\appcompat\Programs\Amcache.hve.LOG1" D:\Evidence\
copy "E:\Windows\appcompat\Programs\Amcache.hve.LOG2" D:\Evidence\
ハイブと一緒に、トランザクションログファイル(.LOG1、.LOG2)も必ず収集してください。AmcacheParser はこれらのログから未コミットのトランザクションを再生し、可能な限り完全なデータを復元します。
ステップ 2:AmcacheParser で Amcache を解析する
取得したハイブに対して AmcacheParser を実行します。
# Basic parsing with CSV output
AmcacheParser.exe -f "D:\Evidence\Amcache.hve" --csv "D:\Evidence\Output"
# Parse with a SHA-1 whitelist to exclude known-good entries (NSRL)
AmcacheParser.exe -f "D:\Evidence\Amcache.hve" -w "D:\Whitelists\nsrl_sha1.txt" --csv "D:\Evidence\Output"
# Parse with a SHA-1 inclusion list (only show matches against known-bad hashes)
AmcacheParser.exe -f "D:\Evidence\Amcache.hve" -b "D:\IOCs\malware_sha1.txt" --csv "D:\Evidence\Output"
# Include deleted entries with high-precision timestamps
AmcacheParser.exe -f "D:\Evidence\Amcache.hve" --csv "D:\Evidence\Output" -i --mp
AmcacheParser は、出力ディレクトリに複数の CSV ファイルを生成します。
| 出力ファイル | 内容 |
|---|---|
Amcache_AssociatedFileEntries.csv | SHA-1 ハッシュ、パス、サイズ、タイムスタンプを含むファイルエントリ |
Amcache_UnassociatedFileEntries.csv | 古い Amcache 形式の孤立したファイルエントリ |
Amcache_ProgramEntries.csv | インストール済みプログラムのメタデータ(名前、発行元、バージョン、インストール日) |
Amcache_DeviceContainers.csv | USB およびデバイスの接続履歴 |
Amcache_DevicePnps.csv | プラグアンドプレイデバイスのドライバー情報 |
Amcache_DriverBinaries.csv | パスとハッシュを含む読み込み済みドライバーのバイナリ |
ステップ 3:ファイルエントリを分析して不審なプログラムを特定する
Timeline Explorer で AssociatedFileEntries.csv を開き、主要な列を確認します。
Key columns to review:
- ProgramId : Links file to its parent program entry
- SHA1 : Hash for threat intel lookups
- FullPath : Original file location on disk
- FileSize : Size of the executable
- FileKeyLastWriteTimestamp : When the Amcache entry was last updated
- Name : File name
- Publisher : Code signing publisher (blank = unsigned)
- BinProductVersion : Version string from the PE header
- LinkDate : PE compilation timestamp (useful for detecting timestomping)
不審な兆候をフィルタリングします。
# In Timeline Explorer, apply these filters:
# 1. Find unsigned executables (potentially malicious)
Publisher column = (empty)
# 2. Find executables from suspicious paths
FullPath contains: \temp\, \appdata\, \downloads\, \public\, \programdata\
# 3. Find executables with recent timestamps during incident window
FileKeyLastWriteTimestamp between: 2026-03-15 00:00:00 and 2026-03-16 00:00:00
# 4. Find executables with suspicious compilation dates (timestomping)
LinkDate year < 2015 AND FileKeyLastWriteTimestamp year = 2026
ステップ 4:SHA-1 ハッシュを脅威インテリジェンスと照合する
SHA-1 ハッシュを抽出し、マルウェアデータベースと照合します。
# Extract unique SHA-1 hashes from the parsed output
# Using PowerShell to extract the SHA1 column
Import-Csv "D:\Evidence\Output\Amcache_AssociatedFileEntries.csv" |
Select-Object -ExpandProperty SHA1 -Unique |
Where-Object { $_ -ne "" } |
Out-File "D:\Evidence\Output\extracted_hashes.txt"
# Check hashes against VirusTotal using vt-cli
foreach ($hash in Get-Content "D:\Evidence\Output\extracted_hashes.txt") {
vt file $hash --format json | Select-Object -Property meaningful_name, last_analysis_stats
}
# Check hashes against CIRCL hashlookup
foreach ($hash in Get-Content "D:\Evidence\Output\extracted_hashes.txt") {
Invoke-RestMethod -Uri "https://hashlookup.circl.lu/lookup/sha1/$hash"
}
# Cross-reference with NSRL to identify known-good vs. unknown
# Unknown hashes that are not in NSRL warrant closer investigation
ステップ 5:プログラムエントリを分析して未承認のインストールを特定する
ProgramEntries.csv を確認し、攻撃者がインストールした可能性のあるソフトウェアを調べます。
Key columns in ProgramEntries:
- ProgramName : Display name of installed application
- ProgramVersion : Version string
- Publisher : Software publisher
- InstallDate : When the program was installed
- Source : Installation source (msi, exe, etc.)
- UninstallKey : Registry uninstall path
- PathsList : Installation directories
次の項目を確認します。
- リモートアクセスツール(AnyDesk、TeamViewer、ngrok、Chisel)
- ハッキングツール(Mimikatz、PsExec、Cobalt Strike)
- トンネリングユーティリティ(plink、socat、WireGuard)
- インシデント発生期間中にインストールされたプログラム
- 標準以外の場所にインストールされたプログラム
ステップ 6:ドライバーのバイナリを分析してルートキットの証拠を探す
DriverBinaries.csv を確認し、不審な読み込み済みドライバーを調べます。
Key columns in DriverBinaries:
- DriverName : Name of the driver
- DriverInBox : Whether it shipped with Windows (false = third-party)
- DriverSigned : Whether the driver has a valid signature
- DriverTimeStamp : Compilation timestamp
- Product : Product associated with the driver
- ProductVersion : Driver version
- SHA1 : Hash of the driver binary
DriverInBox = false と DriverSigned = false でフィルタリングすると、ルートキットや BYOVD(脆弱なドライバーの持ち込み)攻撃に使用された可能性のある、署名のないサードパーティ製ドライバーを見つけられます。
ステップ 7:Amcache データからタイムラインを作成する
包括的なタイムラインを作成するため、Amcache データを他のアーティファクトと組み合わせます。
# Merge Amcache CSV with other EZ Tools output using Timeline Explorer
# Load the following CSVs into Timeline Explorer:
# - Amcache_AssociatedFileEntries.csv (file evidence)
# - Amcache_ProgramEntries.csv (install evidence)
# - Prefetch output from PECmd.exe (execution evidence)
# - ShimCache output from AppCompatCacheParser.exe (execution evidence)
# Sort all entries by timestamp to reconstruct the attack sequence
# Timeline Explorer supports multi-file loading and column-based sorting
# Export the combined timeline
# File > Save to CSV > combined_timeline.csv
主要な概念
| 用語 | 定義 |
|---|---|
| Amcache.hve | アプリケーション互換性のために、アプリケーション、ファイル、ドライバーのメタデータを保存する、C:\Windows\appcompat\Programs\Amcache.hve にある Windows レジストリハイブ |
| 関連付けられたファイルエントリ | 特定のプログラムのインストールに関連付けられた Amcache レコード。ファイルパス、サイズ、ハッシュ、タイムスタンプを含みます |
| 関連付けられていないファイルエントリ | プログラムエントリに関連付けられていない、古い形式の孤立した Amcache レコード。Windows 7/8 システムでよく見られます |
| プログラムエントリ | インストールのメタデータ(プログラム名、バージョン、発行元、インストール日、アンインストールキー)を含む Amcache レコード |
| SHA-1 ハッシュ | 登録された各ファイルについて Amcache に保存される暗号学的ハッシュ。脅威インテリジェンスで照会することで、マルウェアを特定できます |
| LinkDate | 実行可能ファイルのヘッダーに埋め込まれた PE のコンパイルタイムスタンプ。ファイルシステムのタイムスタンプとの不一致は、タイムスタンプの偽装を示している可能性があります |
| トランザクションログ | 未コミットのレジストリトランザクションを含む .LOG1 と .LOG2 ファイル。AmcacheParser は完全なデータ復元のために、これらを再生します |
| NSRL(National Software Reference Library) | 既知の商用ソフトウェアの SHA-1 ハッシュを収録した NIST 管理のデータベース。無害なエントリを除外するための許可リストとして使用されます |
検証
- Amcache.hve とトランザクションログ(LOG1、LOG2)がフォレンジックイメージから収集されている
- AmcacheParser が予期されたすべての CSV 出力ファイルをエラーなしで生成している
- SHA-1 ハッシュが抽出され、VirusTotal または CIRCL hashlookup で確認されている
- 不審なパスにある署名のない実行可能ファイルに、さらなる分析が必要であるというフラグが付けられている
- プログラムエントリに、インシデント期間内のすべてのソフトウェアインストールが記録されている
- ドライバーのバイナリについて、署名の有無や標準搭載かどうかが確認されている
- タイムスタンプの偽装を検出するため、LinkDate と FileKeyLastWriteTimestamp の比較が実施されている
- 実行を確認するため、Amcache の調査結果が Prefetch および ShimCache と照合されている
- 最終的なタイムラインに、Amcache のデータが他のフォレンジックアーティファクトと統合されている