linux 中的时间戳功能,Linux中时间戳取证研究
【 摘 要 】 文章分析了Linux操作系統中文件時間戳的更新情況。通過對相關工具的研究,闡述了如何獲取、分析時間戳,為取證工作提供了依據。
【 關鍵詞 】 計算機取證;Linux操作系統;時間戳;Ext2/3/4 【 中圖分類號 】 TP309
1 引言
計算機取證中關于時間的分析非常重要,在一些情況中可直接用來還原案件發生的過程,是取證分析的基礎。文件的時間戳是文件系統對文件發生變化的記錄,一般包括創建時間、最后修改時間和刪除時間。由于每一個案件幾乎都會涉及到對文件的分析,所以掌握文件時間戳的更新情況至關重要。目前,Windows系統中關于時間戳的分析較多,有大量工具和文獻對其進行詳細描述,但Linux中涉及較少。針對此情況,本文以Linux下常見的Ext2/3/4文件系統中時間戳的概念、類型及底層結構為基礎,詳細分析了其更新規律,并簡單介紹了幾款分析時間戳的工具,希望對計算機取證工作提供一些理論依據,有助于取證工作的進行。
2 文件的時間戳
在任何一個文件系統中,都有若干時間屬性對文件進行記錄,最為常見的MAC時間用來表示文件的Modification Time(文件內容的最后修改時間)、Access Time(文件的最后訪問時間)、Change Time(文件屬性的最后修改時間),此外還有一些系統對文件的創建時間(文件或目錄首次被寫到磁盤上的時間)和刪除時間(文件被用戶刪除的時間)做了記錄,給取證工作提供了大量信息。如圖1所示為Windows系統中文件屬性的簡單查看結果,其中表示時間的屬性有文件的創建時間、修改時間和訪問時間。
Linux操作系統將所有內容表示為文件,這些文件按照樹狀結構組織在一個根目錄下,每一個文件都由目錄項、索引節點和數據塊組成,其中目錄項用來存放文件名和索引節點號,索引節點記錄著文件的基本屬性,包括文件的大小、時間戳等重要信息,數據塊存放文件的內容。Linux操作系統中有許多命令都可以顯示文件的屬性,如圖2為Linux系統中使用stat命令查看文件屬性的結果,與Windows中的文件系統時間戳不同的是Linux系統將文件的創建時間改為文件屬性的修改時間,即呈現的是MAC時間。
Linux操作系統支持多種文件系統,如Ext2、Ext3、Ext4、vFat、swap等,其中Ext2/3/4文件系統為許多Linux版本的默認文件系統,本文將做詳細分析。
3 Ext2/3/4 文件系統的時間戳
Ext2/3/4文件系統的時間戳儲存在索引節點中,放在文件大小屬性之后。同時,由于Ext4文件系統的時間戳與Ext2/3 文件系統相比,時間屬性增加為64位表示,首先我們將分別分析時間屬性的底層數據結構。
3.1 Ext2/3文件系統中的時間戳
Ext2和Ext3文件系統底層結構完全相同,不同之處在于Ext3增加了日志功能,表1是Ext2/3文件系統索引節點的簡單結構圖。由圖中可知,Ext2/3文件系統的索引節點為128字節,時間戳共四個,分別是文件的最后修改時間、最后訪問時間、屬性最后修改時間和刪除時間,每個時間戳由8字節組成,存放在索引節點起始位偏移8-39字節處。
3.2 Ext4文件系統中的時間戳
Ext4文件系統的底層結構相對于Ext2/3有較大改變,如表2為Ext4文件系統的索引節點結構圖,由圖可知Ext4文件系統的索引節點擴大位256字節,時間戳有五個:文件的最后修改時間、最后訪問時間、屬性最后修改時間、刪除時間和創建時間,每個時間戳增大為16字節表示,擴大的部分全部存儲在索引節點的后部,如最后訪問時間是由一個索引節點的第9到12字節和141到144字節構成。
4 時間戳變化規律
由于時間戳只記錄了其最后一次更新的時間,所以其極易改變,如使用系統中的cat、grep、more、less、tail、file、cp等命令操作文件會改變文件的訪問時間,create、write、utime等命令會對文件內容訪問時間進行更新,create、mv、chmod等命令會對文件屬性修改時間進行更新,rm命令對文件的刪除時間進行更新。另外,在Ext4文件系統中增加了文件的創建時間,使用系統中的create命令可更新此時間戳。
從用戶角度來講,對文件的操作一般包括創建、修改、復制、刪除等,考察這些操作對文件時間戳的變化情況,可以判斷文件的來源和日期,在取證過程中起著重要作用。
我們以Ubuntu9.04操作系統為實驗平臺,在其上分別搭建了Ext2、Ext3、Ext4三個文件系統,之后分別在這些系統中對文件進行創建、修改、復制和刪除操作,結果見表3。
通過實驗結果,我們可總結出幾點規律。
(1)若一個文件的修改時間早于訪問時間和屬性修改時間,此文件極有可能是從網上下載或是其它地方復制過來的。
(2)一個文件不可能出現修改時間或者創建時間晚于訪問時間,若有則文件異常。
5 時間戳相關分析工具
取證工具中有許多工具可用來分析時間戳,如Linux操作系統中的find命令、TCT(The Coroner’s Toolkit)中的mactime命令等。
find命令的-mtime、-atime、ctime選項可用來查找指定目錄下文件的修改時間、訪問時間、屬性修改時間的變化情況,如圖3所示為使用find命令查找根目錄下24小時內文件修改時間發生更新的文件,其中-n表示n天以內,+n你表示n以前。
TCT工具是由D. Farmer和W. Venema與2000年開發的一個開源取證工具,它基于Unix操作系統,可對Ext2/3、FFS等文件系統進行取證。TCT工具中的mactime用來分析指定目錄或數據源中文件的MAC更新情況,并按照時間順序顯示,如圖4為使用mactime命令的運行結果,其表示的意思是顯示根目錄“/”下文件的MAC時間戳在2012年3月2日之后變化的情況。
總結
以上是生活随笔為你收集整理的linux 中的时间戳功能,Linux中时间戳取证研究的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux+系统优化基础,Linux入门
- 下一篇: php变量原格式输出,PHP格式化输出打