时间简史——计算机取证中的时间研究

大连市公安局网络警察支队 刘浩阳(太阳风)

    在计算机犯罪侦查取证中,时间是最基本也是最重要的数字证据。计算机取证中关于时间的证据一直都是重要而且复杂的,通过时间,可以确定可疑文件可以确定何时被建立、修改和访问。计算机犯罪案件中,时间收集方法是否正确和结果是否精确,对于案件是至关重要的。举一个例子,时间结构在当地时间和UTC时间之间是有转换过程的。如果采用的时间标准不当,时间就会出现误差,那么结论就会出现偏差乃至错误。

一、时间的基本知识

    在计算机中,在确认时间的时候,通常包含两部分:日期(date)和时间(time),而且这二者始终是保存在一起的。出于利于理解的考虑,本文中所称的时间都是包括日期和时间。

    讨论计算机世界中的时间,首先要提及天文学和物理学中的时间概念。

1、GMT(Greenwich Mean Time,格林威治平均时)时间 :在本初子午线(英国格林威治子午线)上的平太阳时被确定为格林威治平时(GMT)。

2、UTC是协调世界时(Universal Time Coordinated)英文缩写,UTC是由国际无线电咨询委员会规定和推荐,并由国际时间局(BIH)负责保持的, UTC相当于本初子午线(即经度0度)上的平均太阳时,UTC的本质强调的是比GMT更为精确的世界时间标准,不过对于大部分应用来说,GMT与UTC的功能与精确度是没有差别的。在本文中,GMT时间等于UTC时间。

3、时区(Time zone)

    过去世界各地原本各自订定当地时间,但随着交通和通讯的逐渐发展,需要一个统一的时间基准来约定各地的时间。1884年的国际会议上制定了全球性的标准时,规定以英国伦敦格林威治这个地方为零度经线的起点(亦称为本初子午线),基准时间为格林威治时间(GMT),以地球由西向东每24小时自转一周 360°,订定每隔经度15°,时差1小时。而每15°的经线则称为该时区的中央经线,将全球划分为24个时区。例如中国的时区为GMT+8时区,意味北京时间比GMT/UTC时间晚8小时,以2008年1月1日0000为例,GMT时间是零点,北京时间为2008年1月1日早上8点整。

二、时间定义

(一)系统时间

1、系统时间的定义

    系统时间以CMOS时间作为基准, CMOS(Complementary Metal Oxide Semiconductor,互补金属氧化物)是板载的半导体芯片。CMOS由主板的电池供电,因此即使系统掉电,信息也不会丢失,它依靠主板上的晶振计算时间间隔,从而保存当前时间。很多桌面操作系统和应用程序使用0x1A中断访问CMOS时钟。CMOS时钟是操作系统的时间来源,电池电量不足或者晶振频率不准,可能会导致CMOS时钟变慢或者变快,从而影响操作系统的时间。系统时间一般以当地时间表示。在Windows XP系统中,可以使用网络校时,通过网络与Internet时间服务器同步,系统时间和CMOS时间可以被维护在一个较为精确的水平。

    但是有一个例外,MAC OS是将CMOS时间当作UTC时间来读取的。因此,一旦CMOS时间被设置为当地时间(Local time),MAC OS会将其加上时区,将会导致时间被重复计算。

    从某种意义上讲,CMOS时间是所有时间的来源,操作系统读取CMOS时间作为系统时间,文件在创建、修改、访问的时候,M-A-C时间是根据系统时间进行修正和存储的。

2、系统时间的存储格式

系统时间 – 以64bit格式存储

偏移量

0-7

8-15

16-23

24-31

32-39

40-47

48-55

56-63

含义

星期几

小时

分钟

毫秒

    系统时间除了以CMOS作为基准之外,还将时区信息保存在注册表中。

3、时区偏移

    在Windows NT/2000/XP系统中,系统时区偏移被存储于HKEY_Local_Machine/System/Current ControlSet/Control/TimeZoneInformation/Bias。Bias是相对于GMT时间的负偏移量,以分钟数计。而 ActiveTimeBias是实行夏时制的时间偏移(少60分钟)。计算当地时间的公式为Local Time = UTC – ActiveTimeBias。

例如当前计算机时区为格林威治(未考虑夏时制),它将显示为如下内容。

ActiveTimeBias

REG_DWORD

0x00000000

StandardName

REG_SZ

格林威治标准时间

    如果计算机时区被设为太平洋标准时间(未考虑夏时制,480分,GMT-8),就如下显示:

ActiveTimeBias

REG_DWORD

0x000001e0(480)

StandardName

REG_SZ

太平洋标准时间

    类似的北京时间(GMT+8),偏移量会相反(未考虑夏时制,-480分,GMT-(-8)=GMT+8)。如下显示:

ActiveTimeBias

REG_DWORD

0xfffffe20(-480)

StandardName

REG_SZ

中国标准时间

    例如。开启两个窗口,一个显示注册表内容,一个显示日期和时间属性。使用Windows时间属性修改时区,检查注册表和显示的时间。二者全变了。

(二)文件时间

1、32位Windows/Dos文件时间格式

    32位Windows/Dos时间格式被存储于32bit(4字节)二进制数据格式内。具体来说,从开始位置(偏移量0),5bit的数据表示秒,6bit(偏移量5开始)表示分钟,5bit(偏移量11开始)表示小时。但是5bit不能存储60s容量,因此需要以2秒为增量。5bit(偏移量 16开始)表示日,4bit(偏移量21开始)表示月,7bit(偏移量25开始,从1980年开始计算)表示年。32位Windows/Dos时间格式应用于FAT文件格式,记录文件创建、文件修改和最后访问的日期和时间。它也同样应用于MS DOS(某些16bit的DOS系统除外)。

Windows/Dos文件时间格式 – 32bit

偏移量

0-4

5-10

11-15

16-20

21-24

25-31

含义

分钟

小时

2、64位Windows文件时间格式

    64位Windows文件时间格式是基于1601年1月1日00:00:00,以100ns(1ns=10-9s)递增的UTC时间格式。这种格式应用于 NTFS格式文件系统中的NTFS Master File Table(MFT)。存储文件建立时间,最后修改时间、最后访问时间和MFT记录最后修改时间。

3、C/Unix文件时间格式

    这种格式存储于32bit二进制中,基于1970年1月1日00:00:00,以秒递增。它在Unix系统中很常见。

4、HFS和HFS+文件时间格式

    这是苹果Mac文件系统的日期时间格式,它存储于32bit二进制中,基于1904年1月1日00:00:00,以秒递增。

三、时间取证的方法

    现在我们认识到,时间结构取决于某一标准。它取决于文件系统、操作系统、应用程序的设计和编码方式。以64位Windows 文件系统的时间为例,它常常(但不总是)将当地时间转换为UTC时间。

    时间作为一种重要的标记,可以成为令人信服的证据。保存在磁盘或文件中的时间又可以称为时间戳(timestamp)。每个文件都有不同形式的时间戳:修改时间戳、访问时间戳、创建时间戳、M-A-C时间戳和日志里的时间,甚至压缩入光盘里的时间戳。

    时间证据应该被重点检查。一旦程序存储的时间不是你所熟悉的或者以一种新的格式。那么结果就必须要以实验验证。

在计算机取证中,时间戳的检查顺序基本分为:

*系统时间:
    系统时间是否准确,记录CMOS时间与标准时间的差异
    用户是否设置过时间
    用户设置系统时间的次数
*进程和应用程序写入的时间戳
*查看系统设置的时区或者从注册表中获取当前时区
*调查人员或者检查人员的时区
*取证系统的时区
*查看夏时制
*操作系统写入的时间戳
*查看时间结构种类,是否为当地时间或者UTC
*在相同操作系统和应用程序版本上检验结论

    当分析一个计算机调查结果的可靠性,还需要注意以下因素:

*是否有多个用户登录这台计算机
*帐号劫持
*恶意程序和木马

    时间取证需要遵循以下规则:

1、如果修改时间等于建立时间,那么文件是原始文件,既没有被修改也没有被剪切。

2、如果修改时间早于建立时间,则文件被复制或者移动过。

3、如果在硬盘上大量的文件具有很近的访问时间,这些文件极有可能被同一个工具软件扫描过,如杀毒软件。如果在一个文件夹中的一些图像和视频文件有很近的访问时间,并且没有其他的图像和视频文件具有相似的访问时间,则这些图像和视频文件极有可能被一个图像和视频预览工具访问或者打开过,例如用 Windows资源管理器以缩略图的方式查看。

四、结论

    时间的取证是计算机取证的基础,只有确定时间基点,计算机取证获得证据才有时间上的意义。计算机取证专家清楚地明白案件的焦点常常会集中到时间问题上,因为时间是连接现实世界和难以理解的计算机证据世界的实质。

闻香止步 木雕 摆件 收藏于:http://blog.csdn.net/BroadviewSecurity/archive/2009/04/15/4075526.aspx

你可能感兴趣的:(时间简史——计算机取证中的时间研究)