首页/安全/取证与溯源速查/时间戳篡改识别(Linux)
Linux 取证135 条

时间戳篡改识别(Linux)

touch 可以修改 atime 与 mtime,但 ctime 由内核对 inode 变更自动更新,用户无法回拨;mtime 明显早于 ctime 的异常组合是篡改信号。

取证与溯源速查安全更新于 2026-10-13

时间戳篡改识别

时间戳篡改(timestomp)指刻意改写文件时间以误导分析。可以直接改的是访问与修改时间,元数据变更时间只能通过改动元数据间接影响,创建时间则要动文件系统结构。因此「mtime 明显早于 ctime」这类内部矛盾,正是识别改写的主要线索。

基本信息

可直接改写atime 与 mtime,用 touch、touch -t 或参考文件方式
难以直接改写ctime 与 crtime 无法用常规命令设置
常见矛盾mtime 早于 ctime,或 crtime 晚于 mtime
辅助线索shell 历史、审计日志、包安装记录
检查范围文件与所在目录项都要看
权限要求改写属主文件需要相应权限

典型使用场景

  • 识别被刻意回拨时间的文件
  • 解释同一批文件时间戳高度一致的现象
  • 判断落地时间与时间戳不一致的样本
  • 为时间线结论标注可信度
  • 筛出需要优先核对的异常文件

最小示例

最小示例
stat -c '%n mtime=%y ctime=%z' /usr/bin/* | head     # 批量查看时间对
find /usr/local/bin -xdev -type f -newerct '2026-01-01' -printf '%p %CY-%Cm-%Cd\n' | head
find /tmp /var/tmp -xdev -type f -newermt '2026-01-01' -printf '%p %TY-%Tm-%Td\n' | head
stat -c '%n B=%w M=%y C=%z' suspect.bin              # 含创建时间的完整对比
ls -l --time-style=full-iso suspect.bin

现象与判断方向

现象含义判断方向
mtime 早于 ctime内容时间早于元数据时间常见于回拨,但复制与还原也会造成
crtime 晚于 mtime创建时间晚于内容修改时间几乎必然存在时间改写
同目录文件时间完全一致时间被批量设置需与解压和同步工具行为区分
ctime 与 mtime 相同刚发生过元数据操作可能刚改名或改过权限
mtime 早于 ctime 并不必然代表篡改:复制时保留属性、还原备份与解压归档都会产生同样现象,必须结合其它证据。
目录的 mtime 会随子项增删更新,检查目录时间有助于判断文件是何时被放进该目录的。
时间异常要落到具体文件上,并把异常清单与判定依据一并写进报告,避免只给结论不给依据。
不要用 touch 或改名的方式做实验来对照结果:这些操作会改写原始时间戳,破坏后续比对基础。

易错点

  • 见到 mtime 早于 ctime 就定性篡改:复制、解压与还原都会造成同样现象,需结合其它证据
  • 只看 mtime 不看 crtime:创建时间是识别回拨的关键,遗漏会让结论失去支撑
  • 在原始数据上做实验:任何 touch 或改名都会改写时间戳,破坏比对基线
  • 忽略目录时间:只查文件就判断不了文件何时被放入目录,时间线会出现断层

数据来源与参考

  • man 1 touch(GNU coreutils)
  • ext4 inode 时间戳说明
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌