@port139 Blog

基本的にはデジタル・フォレンジックの技術について取り扱っていますが、記載内容には高確率で誤りが含まれる可能性があります。

Atimeのメモリキャッシュ

ディスク上の Atime は分解能に従って更新されますが、Atime そのものはメモリ上でキャッシュされ更新されていきます。
例えば、timestomp で notepad.exe の Atime を確認します。

timestomp.exe c:\WINDOWS\system32\notepad.exe -v
Modified:               Wednesday 8/4/2004 16:55:53
Accessed:                  Sunday 4/2/2006 14:41:15
Created:                 Thursday 4/3/2003 21:0:0
Entry Modified:            Sunday 4/2/2006 14:35:56

最終アクセス時刻は 14:41:15 となっていますので、14:41:28 に notepad.exe を実行します。
分解能 1時間以内ですので、Atime は変化しないと思いきや、timestomp で確認すると Atime が 14:41:28 に更新されています。

timestomp.exe c:\WINDOWS\system32\notepad.exe -v
Modified:               Wednesday 8/4/2004 16:55:53
Accessed:                  Sunday 4/2/2006 14:41:28
Created:                 Thursday 4/3/2003 21:0:0
Entry Modified:            Sunday 4/2/2006 14:35:56

しかし、HDD 上のデータ($MFTファイルの内容)を EnCase で確認すると、タイムスタンプは 14:41:15 のままで変化していません。これは、OS がメモリ上でだけ Atime を更新しており、アプリケーション等に対しては最新のアクセス日時を返す為の仕組みです。
メモリ上にキャッシュされている Atime は、電源断(シャットダウン等)により失われますので、揮発性情報と言えますね。*1

*1:OSをシャットダウンしても、メモリ上にキャッシュされているAtimeはディスク上へは反映されません