@port139 Blog

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

MACtimeのお話

フォレンジック調査ではよく耳にすることが多い MAC time や timeline というお話ですが、原典が何かはよく知らないのですが、私が勉強を開始した頃の資料としては、The Coroner's Toolkit (TCT)*1 でのお話がメジャーでした。あれ?確か TCT ツールキットの中に mactime ってスクリプトが入っていたんでしたっけ?記憶が...
Forensic Discovery 本は内容が Web で公開されているみたいですが、MAC time 関連としては以下が参考になるお話ですかね。

Forensic Discovery
http://www.porcupine.org/forensics/forensic-discovery/
Chapter 2: Time Machines
http://www.porcupine.org/forensics/forensic-discovery/chapter2.html

TCT 方面の動きなどについては、不正アクセス調査ガイド―rootkitの検出とTCTの使い方で渡辺さんが詳しく解説されていたと思うので、そちらを読んでいただくといいかもしれません。
大雑把な説明からいくと、そもそもの MAC という単語は、UNIX が持つ以下の三つのタイムスタンプの頭文字を取って MACフォレンジック調査方面では呼ばれています。Apple の OS や、NICなどが持つ MAC とか、強制アクセス制御の MAC とか、ハンバーガーでもない MAC ですね。

http://en.wikipedia.org/wiki/MAC_times
Modification time (mtime)
Access time (atime)
Change time and creation time (ctime)

私が最初に混乱したのは、M の Modification と、C の Change の単語はどう違うのか?という点で、どちらも更新とかって意味ではないのか?!という基本的な辺りでしたが、M は“更新”、C は“変更”のような日本語にトレーニングなどではしています。それぞれのタイムスタンプ毎に、どのタイミングで更新されるかが決まっていますが、大雑把にいくと、M はファイルの内容が更新された場合、A はファイルがアクセスされた場合、C はファイルを管理しているレコードが更新された場合、に変化することになります。この辺りの詳細は mtime とかを man で引くか、Google などで検索するともっと詳しい説明が出てくると思いますが、stat とかいうコマンドもありましたね。
この辺りのファイルシステム毎の MAC の関連性については、「フリーツールを活用したディスクフォレンジック解析」の資料で、スライド番号13〜の辺りの資料で詳しく解説されているのでそちらを参照いただくとよいかもしれません。

もともとが UNIX 系からきているので、MACWindows ではそのまま当てはまらない部分があります。Windows XP から NTFS 上のファイルをエクスプローラからプロパティを表示した場合には、以下の三つが表示されます。

作成日時
更新日時
アクセス日時

まず最初の作成日時というのは UNIX 系ではお見かけしたことがありません。ひょっとすると持っているファイルシステムもあるかもしれませんが、思わず MAC の C を Creation とかで間違えてしまいそうですが、すくなくとも Ctime は inode 更新日時ですので作成日時とは異なります。C を Creation とかで読み替えて Windows の場合には C は作成という形に無理やりあてはめるってのもありかもしれませんが...*2
更新日時は Mtime と同じで、ファイルの内容が更新された場合のタイムスタンプで、アクセス日時も Atime で意味としては最終アクセス日時なので基本的な意味合いとしては同じです。
基本的なという書き方をしたのは、ファイルシステムによって分解能というか記録している精度が異なったりもするのでまぁだいたいの意味としてはという趣旨です。
Windowsエクスプローラから見た場合のタイムスタンプには、Ctime に相当する時刻情報は表示されません。
FAT ファイルシステムでは、ファイルはディレクトリエントリで管理されていますが、ディレクトリエントリのそれぞれのレコードが何時更新されたのかという時刻情報は記録されていません。ですので FAT では Ctime に相当する時刻情報がそもそもありません。
しかし、NTFS では MFT ファイルのレコードでファイル情報を管理していますが、MFT レコードの更新日時*3が記録されています。ファイルシステムでは記録していますが、エクスプローラのプロパティ情報では表示されないだけです。NTFS の MFT レコードの更新日時が Ctime とほぼ同じような意味になると思いますが、わかりにくいので、ツールによってはエントリモディファイ('Entry Modified')などの表現を使っているケースもあるようです。下記の Wiki だと'MACE'とかにしているみたいですね。

MAC times
http://www.forensicswiki.org/wiki/MAC_times

まぁ、長いと画面で表示しにくなどの理由で省略形が使われることが多いとは思うのですが、C とかは意味が違ってくることがあるので、使うツールがどのタイムスタンプをどのカラムで表示しているかや意味はマニュアルで確認した方がいいかもしれません。その昔、M と C を逆にして表示しているツールとかあって困ったんですけど、サポートからの回答は「読み替えて使ってくれ」ということだった気がする(--;;
UNIX 方面での mactime に関するもう少し詳しいお話は下記 URL を参照いただいた方がいいかもしれません。

mactime
http://www.kazamiya.net/node/27

*1:直訳すると検視官ツールキットですかね

*2:かなり昔にそんな資料を作ったことがあるような気がしないでもない

*3:厳密にレコードの更新日時といえるのかはちょっと悩める気がしないでもないですけど、更新タイミングなどは過去に調べた結果をここに書いていたりするのでそちらも参照ください