电子数据取证

 

电子取证的基本概念

科学的运用提取和证明方法,对从电子数据源提取的证据进行保护、收集、验证、鉴定、分析、解释、存档和出示,以有助于进一步的犯罪事件重构或帮助识别某些计划操作无关的非授权性活动。

在网络安全大环境中,信息安全可以看作是解决事前防御问题,电子取证则是解决事后究责问题。

 

电子取证的发展历程

奠基时期

时间:1984年至九十年代中期

  • FBI成立了计算机分析响应组(CART)。
  • 数字取证科学工作组(SWGDE),这个小组首先提出了计算机潜在证据的概念形成了计算机取证概念的雏形。
  • 计算机技术取证技术工作组(TWGDE),更多地在技术层面上对“数据取证”技术进行研究。
  • 科学工作组(SWGs)的发展。

特点:公布了有关数字证据的概念、标准和实验室建设的原则等,截止1995年,美国48%的司法机关建立起了自己的计算机取证实验室。

初步发展时期

时间:九十年代中期至九十年代末期

典型的计算机取证产品:

  • Encase:美国Guidance软件公司开发,用于证据数据的收集和分析。
  • DIBS:由美国计算机取证公司开发,对数据进行镜像的备份系统。
  • Flight Server:由英国Vogon公司开发,用于证据数据的收集和分析。
  • 其他工具:密码破解工具、列出磁盘上所有分区的LISTDRV,软盘镜像工具DISKIMAG,在特定的逻辑分区上搜索未分配的或空闲的空间的工具FREESECS等。

理论完善时期

时间:九十年代末至今

计算机取证的概念及过程模型被充分研讨

较为典型的五类模型:

  • 基本过程模型
  • 事件响应过程模型
  • 法律执行过程模型
  • 过程抽象模型
  • 其他模型

科学体系建设

 

电子取证的技术类别和相关领域

数字取证在中国的启动

我国网络安全界曾经从战略高度上提出了如何建立使入侵者感到有威慑的主动防御策略:

  • 基于主动防御的网络安全技术改变了以往仅仅依靠防火墙、扫描、检测这些传统的网络安全工具,推动了我国的信息监控、数字取证等技术的发展以及相应产品的面世。
  • 2000年5月,国南部确立了以办理计算机犯罪案件为主线,以电子数据证据为核心,以计算机犯罪侦查为主要内容开展专门技术研究。
  • 计算机取证研究列入课题项目,出现一批早期的研究论文和文章。

取证业务涉及行业

  1. 刑事类案件的侦查取证和诉讼活动大量涉及电子证据。这类案件的侦查取证一般由公安系统和检察院完成并由第三方鉴定机构做司法鉴定,出具司法鉴定报告。这个领域也是我国电子证据的技术标准和规范相对比较完善的领域。采用的技术手段和产品相对比较先进,但大部分是国外或者国外产品的OEM版。
  2. 民事类型案件的举证涉及到电子证据的提取、分析和鉴定。一般由举证方提取并鉴定。但是,由于这个领域涉及普通百姓,还没有充分意识到电子证据的重要性,也没有特别适用于普通百姓的取证产品。
  3. 行政诉讼类案件的举证需要电子证据的相关技术,这个领域也刚刚意识到电子证据的重要作用。比如,工商行政执法已经开始意识到网络上的非法经营的治理需要获取电子证据,但是,也没有特别合适的技术和产品。
  4. 大型中外企业,特别是企业的内部安全工作涉及到电子证据的取证,因而对技术和产品有需求。

 

电子取证技术细则

数字取证面临的问题

  • 搜集或检查会改变证据的原始状态,数据易被改变。
  • 计算机调查和数字证据对法律执行、法庭和立法机关来说是个新生事物。
  • 指数性增长的数字媒体密度和普遍深入的计算机平台。
  • 数字数据或隐藏数据的非直观性。
  • 信息技术及广泛应用在日益变化。
  • 合格的取证人员的技能于培训。
  • 数字信息的短暂性。

电子数据的来源

  • 物理存储:包括传统介质,例如软盘、硬盘、移动硬盘、磁带等磁介质、光盘等光介质。新型的物理存储,例如固态硬盘、手机芯片、闪存(包括 U盘、存储卡)等电介质。
  • 逻辑存储:电子数据在逻辑状态下是不同的,操作系统将电子数据以一定编码保存。这些电子数据逻辑存储包括:
    1. 用户文件(电子文档、电子邮件、音视频文件,日程表、网络访问记录/收藏夹、数据库文件、文本文件等)。
    2. 操作系统文件(配置文件、备份文档、Cookies、交换文件、系统文件、隐藏文件、临时文件等)。
    3. 保护文件(压缩文件、加密文件:隐藏文件等)。
    4. 日志包括系统日志、IDS、防火墙、FTP、WWW和杀毒软件日志。
    5. 其他数据区中可能存在的电子数据,例如未分配空间(Unallocated Space)、松弛空间(Slack Space)、隐藏分区等。

电子数据取证架构

电子取证涉及计算机科学和法律的各个层次。它集中了所有计算机科学知识,并与法律紧密结合。偏重技术而忽略法律,或者拘泥法律而不研究技术,都无法根本理解电子数据取证。

数字取证的过程

这个过程指从有关电子证据的载体取回实验室开始的技术取证活动。

第一步:预览并决定是否进一步分析。

第二步:获取。

第三步:克隆,制作和原硬盘内容相同的目标硬盘。

第四步:分析,在目标硬盘上采取各种技术方法分析提取有用的数据信息。

取证的基本流程

 

常见取证工具

在对计算机数据进行取证过程中相应的取证工具必不可少,常见的有Tcpdump、Argus、NFR、Tcpwrapper、Sniffers、Honeypot,Tripwires、Network monitor、volatility、PTF、取证大师、Magnet AXIOM、

镜像工具等。目前在计算机取证过程中比较常用的工具是镜像工具和专业的取证软件,但很大多取证工具都是付费软件对于个人我们无法直接下载使用,但也有一些开源工具可以实现很好的使用效果。

根据取证工具的不通功能和作用,取证工具有如下分类:

  • 磁盘和数据捕获工具
  • 文件查看器
  • 文件分析工具
  • 注册表分析工具
  • 互联网分析工具
  • 电子邮件分析工具
  • 移动设备分析工具
  • Mac OS分析工具
  • 网络取证工具
  • 数据库取证工具

碍于篇幅本文选择Volatility Framework取证工具进行简单介绍

Volatility Framework是一个 完全开放的内存分析工具集,其基于GNU GPL2许可,以Python语言编写而成。 由于Volatility是一款开源免费的工具,因此无须花任何费用即可进行内存数据的高级分析。因为代码具有开源的特点,所以当遇到一些无法解决的问题时,还可以对源代码进行修改或扩展功能。

在Windows操作系统平台下,有两种方式可以运行Volatility工具。第一种是先独立安装Python运行环境,再下载Volatility源代码执行命令行。第二种是下载Volatility独立Windows程序无须另外安装和配置Python环境。最新Volatility版本为V2.6,可以通过官方网站下载。在Windows 64位平台上,最便捷的方式就是直接使用独立Windows程序的Volatility版本。进入管理员命令行模式,运行volatility 2.6_win64 standalone.exe 程序即可。程序如下图:

Volatility常用命令行参数:

-h:查看相关参数及帮助说明。
--info:查看相关模块名称及支持的Windows版本。
-f:指定要打开的内存镜像文件及路径。
-d:开启调试模式。
-V:开启显示详细信息模式(verbose)。

获取--profile的参数 
volatility -f mem.vmem imageinfo

volatility -f mem.vmem --profile=WinXPSP2x86
shell的命令: dt("内核关键数据结构名称") 
如: dt("_PEB")

列举进程:pslist
volatility -f mem.vmem --profile=WinXPSP2x86 pslist

列举缓存在内存的注册表 :hivelist
olatility -f mem.vmem --profile=WinXPSP2x86 hivelist

hivedump 打印出注册表中的数据 :
volatility -f mem.vmem --profile=WinXPSP2x86 hivedump -o 注册表的 virtual 地址

获取SAM表中的用户 :printkey
volatility -f mem.vmem --profile=WinXPSP2x86 printkey -K "SAM\Domains\Account\Users\Names" 

获取最后登录系统的账户 :
volatility -f mem.vmem --profile=WinXPSP2x86 printkey -K "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" 

提取出内存中记录的 当时正在运行的程序有哪些,运行过多少次,最后一次运行的时间等信息 
volatility -f mem.vmem --profile=WinXPSP2x86 userassist

 将内存中的某个进程数据以 dmp 的格式保存出来 。
volatility -f mem.vmem --profile=WinXPSP2x86 -p [PID] -D [dump 出的文件保存的目录]

提取内存中保留的 cmd 命令使用情况 。
volatility -f mem.vmem --profile=WinXPSP2x86 cmdscan

获取到当时的网络连接情况 。
volatility -f mem.vmem --profile=WinXPSP2x86 netscan

获取 IE 浏览器的使用情况。 
volatility -f mem.vmem --profile=WinXPSP2x86 iehistory 

获取内存中的系统密码,我们可以使用 hashdump 将它提取出来 。
volatility -f mem.vmem --profile=WinXPSP2x86 hashdump -y (注册表 system 的 virtual 地址 )-s (SAM 的 virtual 地址)
volatility -f mem.vmem --profile=WinXPSP2x86 hashdump -y 0xe1035b60 -s 0xe16aab60 

最大程度上将内存中的信息提取出来,那么你可以使用 timeliner 这个插件。它会从多个位置来收集系统的活动信息 
volatility -f mem.vmem --profile=WinXPSP2x86 timeliner

文件扫描
volatility -f mem.dump --profile=Win7SP1x64 filescan | grep 'flag.ccx'
文件导出
volatility -f mem.dump --profile=Win7SP1x64 dumpfiles -Q 0x000000003e435890 -D ./

 

电子数据取证技术-windows操作系统取证

日志取证

Windows事件日志

事件日志为操作系统及关联的应用程序提供了一种标准化、集中式地记录重要软件及硬件信息的方法。微软将事件定义为:系统或程序中需要向用户通知的任何重要的事项。事件是统一由Windows事件日志服务来统一收集和存储的。它存储了来自各种数据源的事件,常称为事件日志。

事件日志可以为取证人员提供丰富的信息,还可将系统发生的各种事件关联起来。事件日志通常可以为取证人员提

供以下信息:

(1)发生什么:Windows内 部的事件日志记录了丰富的历史事件信息。

(2)发生时间:事件日志中记录了丰富的时间信息,也常称为时间戳,它记录了各种事件发生的具体时间。

(3)涉及的用户:在Windows操作 系统中,几乎每一个事件都与相关的系统账号或用户账号有关。

(4)涉及的系统:在联网环境中,单纯记录主机名对于取证人员来说比较难以进一步追踪回溯访问请求的来源信息。

(5)资源访问:事件日志服务可以记录细致的事件信息。

常见取证和分析方法

(1)事件日志文件内容查看方法。

通常采用商业化计算机取证软件直接分析事件日志文件,如EnCase、FTK、X-Ways Forensics、Safe Analyzer、取证大师、取证神探等,操作简便快捷。

通过在 Windows 操作系统中运行 eventvwr.exe,即可调用系统自带的事件日志查看器。其具体操作方式如下:在命令行中输入 eventvwr.exe, 也可以同时按 Win+R 组合键,然后在运行输入框中输入 eventvwr.exe 或eventvwr (扩展名可省略),即可运行系统事件日志查看器。将待分析的 .evtx 日志文件通过取证软件导出或用其他方式复制到取证分析机中,即可使用取证分析机系统自带的事件日志查看器来查看与分析内容。取证分析机的操作系统建议使用最新的 Windows 10,以便能最佳兼容 .evtx 文件格式。

Event Log Explorer 的亮点在于它支持 .evt 及 .evtx 两种格式,提供了丰富的过滤条件,此外可正确解析出日志中的计算机名、系统账户或用户的 SID(Security Identifiers,安全标识符)等信息。

(2)常见的Windows事件日志的分析方法。

Windows事件日志中记录的信息中,关键要素包含事件级别、记录时间、事件来源、事件ID、事件描述、涉及的用户、计算机、操作代码及任务类别等。其中事件ID与操作系统版本有关,同类事件在不同操作系统中的事件ID不完全相同,最大的差异主要体现在第一版和第二版的事件日志中。(Windows事件日志第一版,即Windows Vista之前的版本含Windows NT 3. 1至Windows XP或Windows 2003之间的各个版本默认的事件日志存储位置为%System Root%\System32\Config。Windows事件日志第二版,即Vista及以 上版本含Vista、Windows 7、Windows 8、Windows 8.1、Windows 10、Windows Server 2008/2012/2016等采用了新的文件格式,文件扩展名为.evtx。)因此,在取证过程中需特别注意,当使用事件ID进行过滤搜索时,需要考虑操作系统版本的差异。

(3)事件日志文件结构。

事件日志文件是一-种二进制格式的文件,文件头部签名为十六进制30 00 00 00 4C 664C 65。在默认情况下,全新的事件日志文件的事件日志记录均按顺序进行存储,每条记录均有自己的记录结构特征。然而当日志文件超出最大大小限制时,系统将会删除较早的日志记录,因此日志记录也将出现不连续存储,同一个记录分散在不同的扇区位置的情况。

Windows事件日志取证分析注意要点

Windows操作系统默认没有提供删除特定日志记录的功能,仅提供了删除所有日志的操作功能。在电子数据取证过程中仍存在有人有意伪造事件日志记录的可能性。如遇到此类情况,建议对日志文件中的日志记录ID(Event Record ID)进行完整性检查,如检查记录ID的连续性。通过事件日志记录ID的连续性可以发现操作系统记录的日志的先后顺序。

Windows事件日志记录列表视图在用户没有对任何列进行排序操作前,默认是按其事件日志记录编号进行排序的。默认情况下,事件日志记录编号自动连续增加,不会出现个别记录编号缺失情况。值得注意的是,当Windows操作系统用户对操作系统进行大版本升级时,操作系统可能会重新初始化事件日志记录编号。通过对Windows事件日志的取证分析,取证人员可以对操作系统、应用程序、服务、设备等操作行为记录及时间进行回溯,重现使用者在整个系统使用过程中的行为,对虚拟的电子数据现场进行重构,了解和掌握涉案的关键信息。

Windows注册表取证

要对Windows操作系统的注册表文件进行分析,最简单的查看工具就是Windows自带的注册表编辑器。要对涉案的计算机磁盘或镜像文件进行注册表分析,首先将要分析的注册表文件复制到指定目录,然后通过注册表编辑器进行加载,然后查看注册表文件的内容。该方式无法提取和分析已删除的注册表信息。

Registry Explorer分析注册表

Registry Explorer v0.9.0.0是一个十分优秀的注册表分析工具,它与大多数商业取证软件一样,支持恢复已删除的注册表信息。其搜索能力甚至超越了大多数取证分析软件,内置了取证常用的书签功能,选择要查看的注册表信息即可直接跳转到具体位置。Registry Explorer支持批量添加多个注册表配置单元文件。在电子数据取证过程中使用该分析工具非常方便,特别是不清楚键值存在于哪个注册表文件时,取证人员可以直接加载所有系统注册表文件及多个用户的注册表文件(NTUSER.dat),然后对所有注册表文件进行全部搜索。

X-Ways Forensics分析注册表文件

利用X-Ways Forensics取证软件分析注册表文件,可以通过过滤器找到注册表文件,直接双击注册表文件,X-Ways Forensics将自动打开一个独立的注册表查看窗口。

取证神探分析注册表文件

取证神探分析软件内置注册表分析功能,除了可以自动提取系统注册表、用户注册表中的操作系统信息、设备信息、软件安装信息、USB设备使用痕迹等外,还可以对注册表文件进行高级手工分析,甚至是数据解码。

取证神探引入了取证结果溯源功能,将自动取证后的结果的数据来源清晰地告诉取证人员,取证人员可以看到取证

结果是从哪个文件读取并解析数据的。

取证神探还可以对注册表文件进行手工查看与分析、数据搜索及数据解码。可通过关键词对注册表文件中的内容进行搜索,可设定搜索类型(如键、值或数据)、搜索范围(当前选中的键或整个注册表),此外还可以使用通配符进行快速搜索。

在Windows注册表中,不少数据经过了编码或加密。取证神探内置的注册表分析工具提供了查看注册表原始数据及高级手工解码的能力。有经验的取证人员可以对注册表值的数据(如十六进制、ROT-13编码)进行数据解码,取证工具内置了数值型、时间类型等数据常用的解码方法。

内存取证

Windows 内存取证方法和分析技术

内存取证通常是指对计算机及相关智能设备运行时的物理内存中存储的临时数据进行获取与分析,提取有价值的数据的过程。内存是操作系统及各种软件交换数据的区域,内存中的数据易丢失(Volatile),即通常在关机后数据很快就会消失。

常见的物理内存获取方法有冷启动攻击(Cool Boot Attack)、基于火线1394或雷电ThunderBolt接口的直接内存访问(Direct Memory Access,DMA)获取及内存获取软件工具。

不同的操作系统需要用到不同的物理内存获取工具。

Windows操作系统平台支持内存获取的常见工具有DumpIt(早期版本名为Winn32dd)、Belkasoft RAM Capturer、Magnet RAM Capture、WinEn、Winpnen、 EnCase Imager、FTK Imager、取证大师、取证神探。

Linux操作系统支持内存获取的常见工具有dd (适合Linux早期版本)、LiME、linpmem、 Draugr、 Volatilitux、Memfetch、Memdump。Mac OSX操作系统支持内存获取的常见工具有Mac Memory Reader、OSXPmem、Recon for Mac OSX、Blackbag Mac Quisition。

Windows操作系统平台下的DumpIt是一个简单易用的计算机内存镜像获取工具。通常直接将该工具存放在大容量移动硬盘或U盘中,可在正在运行的Windows操作系统上直接运行,根据提示操作即可。在获取物理内存数据时还需尽量减少对原有内存数据的覆盖,最大限度地提取内存数据。

从Windows操作系统获取的物理内存镜像需要使用专门的内存分析工具对其进行分析。常见的内存分析工具有Volatility、Rekall、 Forensic Toolkit(FTK)、取证大师及取证神探等,利用这些工具可以解析出常见的基本信息,包括进程信息、网络连接、加载的DLL文件及注册表加载信息等。

(完)