タイムスタンプを最低限知る

はじめに

タイムスタンプについて勉強したので書いていこうと思います。
ログ解析やマルウェア解析の際に重要なタイムスタンプについて最低限に知っておくべきだと思った事をまとめました。

タイムスタンプとは

ファイルの作成や更新のなどに記録される作成日時や更新日時のことです。
タイムスタンプの情報は各ファイルの中に保存されるわけではなく別の領域に保存されます。 Windowsの場合は赤の四角で囲んでいる部分です。

f:id:kura_hyt51:20190227160210p:plain

MACE times

MACE timesとは「Modify」「Access」「Create」「Entry Modified」の頭文字をとったものです。
イベントが最後に発生した日時を記録するファイルシステム メタデータです。

Modify - 最終更新時刻
・ファイルが最後に更新された日時を記録します。
・内容が変わっていなくても変更日時は更新されます。

Access - 最終アクセス時刻
・ファイル読み取られた最後に開かれた日時を記録します。
・この情報は頻繁に更新されます。

Create - 作成時刻
・ ファイルの作成された時間を記録します。

Entry Modified - エントリ更新時間
・そのファイルのMFTエントリが最後に変更された日時を表します。
・MFTエントリには多くの情報が含まれているためにサイズや名前などのいずれかを変更するとEntry Modifiedも変更されます。

SI属性とFN属性

WindowsファイルシステムNTFSではModify、Access、Create、Entry Modifiedの4つのタイムスタンプを$ STANDARD_INFORMATION属性と$ FILE_NAME属性の2つの属性でもっています。

$ STANDARD_INFORMATION属性(SI属性)

Explorerなどで表示される属性です。
・ツールやコマンドで簡単にタイムスタンプを変更できます。

$STANDARD_INFORMATION Attribute Values:
Flags: Archive
Owner ID: 0
Security ID: 3591  (S-1-5-21-3763767945-1047358448-4033639875-7949)
Last User Journal Update Sequence Number: 5285539120
Created:        2019-02-27 15:57:08.887866200 (File Modified:   2019-02-27 15:57:08.888364500 (MFT Modified:    2019-02-27 15:57:30.930578000 (Accessed:        2019-02-27 15:57:08.887866200 (

(istatコマンドで確認した際のSI属性)

$ FILE_NAME属性(FN属性)

・通常の操作方法では表示することができません。
・SI属性に比べて改ざんが難しいとされています。

$FILE_NAME Attribute Values:
Flags: Archive
Name: haririntest.txt
Parent MFT Entry: 529349        Sequence: 58
Allocated Size: 0       Actual Size: 0
Created:        2019-02-27 15:57:08.887866200 (File Modified:   2019-02-27 15:57:08.888364500 (MFT Modified:    2019-02-27 15:57:08.888364500 (Accessed:        2019-02-27 15:57:08.887866200 (

(istatコマンドで確認した際のFN属性)

まとめ

・タイムスタンプには様々な情報が格納されている。
・SI属性は視覚的に確認でき改ざんも容易であるためマルウェア感染の際などにタイムスタンプが変更されることがある。
・FN属性は一般的な操作方法では確認することができず改ざんがされにくい属性である。

タイムスタンプの各要素を知ることで目的のファイルが改ざんされてたとしてもファイルの作成日などを推測できることがわかりました。
SI属性、FN属性が更新される条件もたくさんあるようなので確認していきたいです。