@port139 Blog

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

Excelファイルのオープン日付

Excelファイルのプロパティ(メタ情報)としては、作成者、前回保存者、改訂番号、プログラム名や、コンテンツの作成日時、前回保存日時などが存在しています。
この記事を読むまで知らなかったのですが、それ以外に「最後に開いた日時(Last Opened Time)」がファイル内部には存在し、ファイルオープン時に自動的に更新するという事です。
また、この値はExcelファイルをオープンしただけで更新され、ファイルを上書き保存せずに単純に閉じても自動的に更新されてしまう&ファイル自体の最終更新日時は変化しない、という動作になっており大変興味深いです。

MS Excel and OLE Metadata: Last Opened Time
http://dfstream.blogspot.jp/2013/07/ms-excel-and-ole-metadata-last-opened.html

Excelファイルを開いて・閉じた場合のNTFS上の動き

Facebookで参考になるURLを教えていただきましたが、動作としては以下のようになっているようです。

  1. まずサンプルのExcelファイル(拡張子XLS)を用意
  2. サンプルXLSファイルのMD5ハッシュ値を確認(e9bae5bf53d8cc0b8f55b1cda53b616c)
  3. サンプルXLSファイルのNTFS File Identifierは381793
  4. 最終更新日時: 2013/08/19 19:43:34
  5. Root Entryに記録されているOpenタイムスタンプ:2013/08/19 19:45:17
  6. サンプルXLSファイルをオープン
  7. ファイルをオープン中の最終更新日時:2013/08/20 08:37:32
  8. サンプルXLSファイルを保存せずにクローズ
  9. クローズ後の最終更新日時:2013/08/19 19:43:34
  10. クローズ後のMD5ハッシュ値を確認(adbfddc88bdcf13bdb1983de47cb4436)
  11. クローズ後のRoot Entryに記録されているOpenタイムスタンプ:2013/08/20 08:37:32

この流れからすると、ファイルのオープン時に更新されていて、その後Excelファイルが閉じられたタイミングでファイルのタイムスタンプは戻すが、ファイル内のオープン時刻を更新しているのハッシュ値は変化するという事みたいですね。
読み取り専用フラグを設定している場合にはこの現象は出ませんので、ファイルオープンによる値の更新が発生しないようにする場合にはライトブロックするか、読み取り専用フラグを設定してから開いた方が安全ですね。

ファイルを開いても保存しなければ安全さ!!、というのはExcelには通じないという事になるので要注意ですね。

PPTとDOC形式ファイルではどうなるのか?

ExcelではOpen Timeが更新されましたが、追加でPPTとDOC形式ファイルについても上記と同じテストを実施してみましたが現象は再現されませんでした。
どうやらExcel(XLS)形式の場合のみ発生する処理のようで、最新のXLSX形式でも試してみましたが、やはりこの現象は発生しませんでした。