wivern ロゴ

サイバーセキュリティ研究所

サイバーセキュリティを中心に、軍事、防犯、サーバーの管理と監視、その他、最新技術を研究しています。


ファイルのタイムスタンプの改竄方法

ファイルの時刻情報に対応したタイムスタンプの改竄方法

タイムマシン制御パネル

ハッカーの学校」でファイルのタイムスタンプの改竄方法を読んだので、その内容に自分で調べて得た知見を追加して備忘録としてまとめました。

Linux におけるファイルの時刻情報には、以下の4種類があります。

名称 説明 表示方法 ファイルシステム
atime 最終参照時刻 ls -u (※1,2) EXT3
ctime 最終 i-node 更新時刻 ls -c (※1,2) EXT3
mtime 最終更新時刻 ls -l (※1,2) EXT3
crtime 作成時刻 (※2) EXT3, EXT4

改竄方法(ファイルへの書き込み権限が必要)
atime, mtime
「touch -d "2011/3/11 02:46:18 pm" file.txt」で atime と mtime の両方を改竄可能。

atime
「touch -a -d "2011/3/11 02:46:18 pm" file.txt」で atime だけを改竄可能。

mtime
「touch -m -d "2011/3/11 02:46:18 pm" file.txt」で mtime だけを改竄可能。

※「-d "2011/3/11 02:46:18 pm"」は(任意の)時間指定。省略すると現在日時が適用される。
 ちなみに「2011/3/11 02:46:18 pm」は、東日本大震災の発生時刻。

ctime
i-node を更新した際にカーネルによって設定されるために、touch コマンドなどでは変更できない。
debugfs コマンドでパーティションを書き込み可能にして、modify_inode によって改竄可能。
その場合、Creation time の部分は UNIX タイムスタンプを入力する。

以下の方法でも。それぞれの時刻情報は表示可能です。
(※1)
「# stat ファイル名」で、
「Access:」と表示されるのが atime
「Change:」と表示されるのが ctime
「Modify:」と表示されるのが mtime

(※2)
(1)「# ls -i ファイル名」で i-node 値を確認
(2)「# debugfs -R 'stat ' /dev/sda1」でatime,ctime,mtime,crtime が表示される

記述に際しては、細心の注意をしたつもりですが、間違いやご指摘がありましたら、こちらからお知らせいただけると幸いです。


→「内部からポートの使用状況を調べる方法」
←「ログイン履歴(ログ)と確認コマンドについて」


« 戻る