科学的运用提取和证明方法,对从电子数据源提取的证据进行保护、收集、验证、鉴定、分析、解释、存档和出示,以有助于进一步的犯罪事件重构或帮助识别某些计划操作无关的非授权性活动。
在网络安全大环境中,信息安全可以看作是解决事前防御问题,电子取证则是解决事后究责问题。
电子取证的发展历程
奠基时期
时间:1984年至九十年代中期
特点:公布了有关数字证据的概念、标准和实验室建设的原则等,截止1995年,美国48%的司法机关建立起了自己的计算机取证实验室。
初步发展时期
时间:九十年代中期至九十年代末期
典型的计算机取证产品:
理论完善时期
时间:九十年代末至今
计算机取证的概念及过程模型被充分研讨
较为典型的五类模型:
科学体系建设
电子取证的技术类别和相关领域
数字取证在中国的启动
我国网络安全界曾经从战略高度上提出了如何建立使入侵者感到有威慑的主动防御策略:
取证业务涉及行业
-
-
1. 刑事类案件的侦查取证和诉讼活动大量涉及电子证据。这类案件的侦查取证一般由公安系统和检察院完成并由第三方鉴定机构做司法鉴定,出具司法鉴定报告。这个领域也是我国电子证据的技术标准和规范相对比较完善的领域。采用的技术手段和产品相对比较先进,但大部分是国外或者国外产品的OEM版。
电子取证技术细则
数字取证面临的问题
电子数据的来源
-
-
1.
-
-
1. 用户文件(电子文档、电子邮件、音视频文件,日程表、网络访问记录/收藏夹、数据库文件、文本文件等)。
电子数据取证架构
电子取证涉及计算机科学和法律的各个层次。它集中了所有计算机科学知识,并与法律紧密结合。偏重技术而忽略法律,或者拘泥法律而不研究技术,都无法根本理解电子数据取证。
数字取证的过程
这个过程指从有关电子证据的载体取回实验室开始的技术取证活动。
第一步:预览并决定是否进一步分析。
第二步:获取。
第三步:克隆,制作和原硬盘内容相同的目标硬盘。
第四步:分析,在目标硬盘上采取各种技术方法分析提取有用的数据信息。
取证的基本流程
常见取证工具
在对计算机数据进行取证过程中相应的取证工具必不可少,常见的有Tcpdump、Argus、NFR、Tcpwrapper、Sniffers、Honeypot,Tripwires、Network
monitor、volatility、PTF、取证大师、Magnet AXIOM、
镜像工具等。目前在计算机取证过程中比较常用的工具是镜像工具和专业的取证软件,但很大多取证工具都是付费软件对于个人我们无法直接下载使用,但也有一些开源工具可以实现很好的使用效果。
根据取证工具的不通功能和作用,取证工具有如下分类:
碍于篇幅本文选择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文件及注册表加载信息等。