Application Compatibility Cache (Shimcache)とはApplication Compatibility (Shim)に関連するキャッシュです。Windowsは最初にこのキャッシュ情報を参照して、アプリケーションにShim処理が必要かどうかを判断します。
Application Compatibility Cacheを調査することによって、対象のWindowsホスト上で、どのようなプログラムが実行されたかを確認することができます。
Application Compatibility Cacheに関するデータはシステムがシャットダウンする際に以下のレジストリに格納されます。
Windows Vista, Windows 7, Server 2003, Server 2008HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\AppCompatCache\AppCompatCache
Windows XPHKLM\CurrentControlSet\Control\Session Manager\AppCompatibility\AppCompatCache
Application Compatibility Cacheには以下のような情報が含まれています。
- ファイルのフルパス
- ファイル・サイズ
- ファイルの最終更新日時($Standard Information timestampより)
- Application Compatibility Cacheの最終更新日時
- プロセスの実行フラグ(Execution Flag)
Application Compatibility Cacheのエントリーを調べるとExecution Flagが"FALSE"となっているファイルを少なからず見かけます。
ファイルのExecution Flagが"FALSE"となっている場合、以下のようなケースが考えられます。
1. ユーザーが実行可能ファイルの配置されているディレクトリをエクスプローラー等で閲覧した(なので実際には実行されていない)
2. ほかのプログラムによってファイルが実行された
2の具体例としてはWindowsのバッチ(.bat)ファイルが挙げられます。
バッチファイルはファイル単体では実行できません。多くの場合、ほかのプログラム経由で実行されます。例えば"foo.bat"というバッチファイルがなんらかのプログラムから実行された場合、Application Compatibility Cacheでは"foo.bat"のExecution Flagは"FALSE"として記録されます。そして"foo.bat"のエントリーの直近にバッチファイルを実行したプログラム名がExecution Flag "TRUE"として記録されます。
以下はWindow7での検証結果です。
下記のコマンドを含んだtest.bat
というバッチファイルをC:\Windows\System32
にコピーして、ダブルクリックして実行しました。
@echo off
REM cmd.exe /c test.bat
echo "Hello world"
Hostname
whoami
AppCompatCacheのレジストリをエクスポートしてShimCacheParserでパースし、CSVに結果を出力させました。(AppCompatCacheの情報の更新のため、Windowsを再起動させる必要あり)python ShimCacheParser.py -r appcompat.reg -o out.csv
test.bat
を実行したcmd.exe
のExec FlagがTrue
、test.bat
のExec FlagがFalse
、test.bat
によって実行されたHOSTNAME.EXE
およびwhoami.exe
のExec FlagがTrue
として記録されました。
参考URL
https://docs.microsoft.com/en-us/windows/desktop/DevNotes/application-compatibility-database
https://www.fireeye.com/blog/threat-research/2015/06/caching_out_the_val.html
https://www.fireeye.com/blog/threat-research/2015/10/shim_shady_live_inv.html
https://www.fireeye.com/blog/threat-research/2015/10/shim_shady_live_inv/shim-shady-part-2.html
https://www.fireeye.com/content/dam/fireeye-www/services/freeware/shimcache-whitepaper.pdf