【vfp开源代码栏目提醒】:网学会员鉴于大家对vfp开源代码十分关注,论文会员在此为大家搜集整理了“计算机取证中系统分析技术研究 - 其它资料”一文,供大家参考学习
2011.03 专 题 研 究 10.3969/j.issn.1671-1122.2011.03.016 doi : 计算机取证中 系统分析技术 研究 黄步根 (江苏警官学院,江苏南京 210012) 摘 要 :在打击涉计算机犯罪案件过程中,经常需要对计算机系统进行分析,本文探讨系统分析的静态 分析技术、动态分析技术和网络监控技术,并结合介绍有关的分析工具。
关键词 :风险社会 ;反计算机犯罪 ;系统分析 ;计算机取证 中图分类号 :TP393.08 文献标识码 :A 文章编号 :1671-1122(2011)03-0039-04 A Technical Study of Analyzing Computer System for Computer Forensics HUANG Bu-gen Department of Forensic Science and Technology Jiangsu Police Institute Nanjing Jiangsu 210012 China Abstract: People often need to analyze computer system when combating computer related crime. In this paper the static analysis technology and dynamic analysis technology and cybe monitoring technology are discussed and also introduce some tools for system analysis. Key words: risk society against computer crime system analysis computer forensics0 引言 现实社会中,利用最新科学技术成果进行犯罪活动越来越显突出,除了刑法应对外 1,对付技术犯罪也必须依靠技术,涉及计算机的犯罪活动在技术犯罪中占重要位置,打击涉及
计算机的犯罪活动,常常需要进行系统分析。
计算机系统中有什么样的证据,并非都是直接看出来的,需要通过专门技术或工具进行分析。
对于黑客程序、逻辑炸弹等程序,需要进行
代码分析,确认其功能。
如果能够获取源
代码,则可以直接阅读,分析其功能,如果只有目标
代码,则需要进行反汇编或反编译获取源
代码,再进行
代码分析,或者进行行为分析。
1 静态分析 静态分析主要用于确定文件类型、查看字符串、分析程序
代码等检验工作,对注册表文件的分析、上网历史记录的分析等也属于静态分析的范畴。
1.1 文件类型的确定 2009 年 6 月,某地公安机关破获一起案件,在对案件中涉及的财务数据检查时发现大量历史数据记录被删除。
在案件鉴定过程中,根据文件特征搜索,发现一个扩展名为“wav”的文件实际是“dbf”数据库文件,使用
VFP 系统打开文件后,被删除的记录被全部显示出来,案值 108.2 万元,不显示删除标记的记录只有 2.5 万元。
这是根据“dbf”文件特征发现伪装了的“dbf”,进而根据“dbf”文件的伪删除功能恢复数据。
文件的扩展名表明文件的类型,操作系统根据默认的调用关系选择应用程序。
但出于各种原因,包括反侦察在内,一些文件的扩展名可能被故意改成其它类型,比如将“.rar”(压缩文件)改成“.sys” 。
对此,可以通过专门软件从文件内容检 (系统文件)查文件类型,也可以通过 WinHex、UltraEdit(如图 1)等软件直接查看文件
代码。
因为许多应用系统的文件是结构化的,在文件头部包括特征串,可以用于确定文件类型。
收稿时间 :2010-12-24 基金项目 : 江苏高校哲学社会科学研究重点项目 “风险社会中的刑事犯罪、侦查权和公民权利研究”(2010ZDIXM007)阶段性成果 作者简介 :黄步根(1958-),男,江苏,教授,硕士,主要研究方向 :信息安全。
39专 题 研 究 2011.03 密执行,或检查系统中的进程看是否处于调试环境,自我消 失,增加了分析工作的难度。
恶意
代码普遍采用进程隐藏技术, 需要熟悉,才能辨别真伪。
对程序文件的分析,属于逆向工程的范畴。
以下考虑对 程序文件的静态分析。
1)文件的脱壳。
壳是一段执行于原始程序前的
代码。
原 图1 用UltraEdit32查看文件内容 始程序的
代码在加壳的过程中可能被压缩、加密。
当加壳后 不同类型文件有其特定的内容,根 据取证需要进行查 的文件执行时,壳
代码先于原始程序运行,它把
压缩、加密 看。
比如 拍摄的 JPG 文件中有照相机 型号、照相日期和时 后的
代码还原成原始程序
代码,然后再把执行权交还给原始 间、曝光时间等,可以使用工具 Exif Reader 检查。
如果使用
代码。
软件的壳分为压缩壳和加密壳等类。
压缩壳目的是使 Photoshop 处理过的图片,也能检查处理时间。
在打击淫秽网 文件大小变小,便于存储和在网上传播,并有一定的保护作用。
站时,可以对淫秽照片做
原创性认定,分析照片的照相机型号、 加密壳目的是用各种手段保护软件不被脱壳、跟踪,文件变 拍摄时间、场景、人物、受害人等,结合现场勘验进行分析判断。
小不是它的目的,有的甚至变大。
恶意
代码加壳的目的主要是 1.2 关键字查找 躲避防病毒软件的查杀,增加分析的难度。
基于特定的关键字,从已经获取的信息流进行查找,获 分析可执行文件,一般先要进行文件的脱壳。
VMUnpacker 取证据,是案件侦查中使用较多的一项技术。
可以对关键字 是常用的脱壳软件,PEid 则是查壳工具,高级的壳需要手工脱壳, 进行精确查询,也可以模糊查询,可以单个
查询,也可以多关 涉及到很多汇编语言和软件调试方面的知识。
键字组合查询。
VMUnpacker 是一款基于虚拟机技术的自动脱壳工具,可 字符串查找的特殊性在于字符的编码,有许多不同的编码 对各种常见壳进行脱壳处理,适合对病毒、木马等进行分析。
技术,比如汉字的内码有 GB2312、BIG5、Unicode、BASE64 程序运行后将需要脱壳的文件拖入,如果有壳,将显示出名 “证据”的 GB2312 码是 d6 a4 be dd,Unicode 码是 c1 8b 等, 称和版本,点击 Unpack,则完成脱壳。
6e 63。
在字符串查找时必须进行正确的设置,选定一个或多 还可以专门针对一些壳进行脱壳,效果要比通用脱壳器好。
个编码
方案。
在磁盘搜索空间上,不仅包括文件占用空间,还 有些软件加壳多层,需要逐层脱壳。
随着加密壳的不断 包括空闲空间、未分配空间、Slack 空间等。
出现,还有高版本的加密壳,脱壳工具可能无法脱壳,需要 Encase 在字符串搜索方面具有较强的功能,支持多个证 使用反汇编等分析
软件,手动脱壳。
据文件的多个关键字的
搜索,可控制查找范围,增加关键字, 2)反汇编。
反汇编就是把机器语言目标
代码转为汇编代 重用已有类似案例中的关键字库(可将典型案例中的关键字导 码的过程。
通常,编写程序是利用高级语言进行编程的,然 ,或者使用脚本语言设计搜索模式。
使用 Encase 需 出保存) 后再经过编译程序生成可以被 CPU 直接执行的文件。
反汇编 要根据案件需要进行关键字字库维护,关键字可以是具体的 即是指将这些执行文件反编译还原成汇编语言或其他高级语 文本串,也可以用十六进制编码,还可以使用模糊字符建立邮 言。
但通常反编译出来的程序与原程序会存在许多不同,虽 箱、URL、电话号码、银行账号、IP 地址等关键字。
Encase 然执行效果相同,但程序
代码会发生很大的变化,很难读懂。
中的过滤器、条件、脚本等可以进一步拓展搜索功能。
过滤 静态反汇编是从反汇编出来的程序清单上分析,从提示 “条件”是自己定 器可以设定文件的扩展名、时间、大小等 ; 信息入手进行分析。
动态反汇编通过调试工具跟踪部分
代码 义的过滤器,可以把目光聚集于感兴趣的或者最有嫌疑的文件, 的执行情况。
反汇编可了解软件的编程思路,以便顺利破解。
比如 Web 页、注册表 ;脚本也是起过滤作用,过滤脚本就是
常用的分析工具是 OllyDbg、IDA、W32DASM 和 HIEW 等。
利用 EnCase 中的文件属性对部分文件进行屏蔽,文件的属性 Ollydbg 是 32 位汇编级调试分析软件,对二进制
代码进 包括文件常见的属性和 EnCase 扩展出来的属性比如哈希值、 行分析,有 5 个窗口,如图 2。
文件签名等,过滤脚本能减轻调查者查找文件的负担。
1.3 程序文件的分析 破坏性程序鉴定等需要对程序文件进行分析。
程序分析 需要具有相应的程序
设计、操作系统、应用软件等方面的知识, 比如分析网页木马需要熟悉
JavaScript,反汇编程序
代码需要 熟悉汇编语言,还要熟悉 Windows 中的 API 函数等。
还要注意, 在一些程序中设置了反跟踪功能,将
代码加密存储,动态解 图2 Ollydbg 40 2011.03 专 题 研 究 (1)反汇编窗口 : (2)信 显示被调试程序的反汇编
代码 ; 动态分析和事后分析,需要注意破坏性程序及其可能的息窗口 :显示反汇编窗口中选中的第一个命令的参数及一些跳 触发条件,防止系统被破坏。
必须严格限定在镜像盘 上进 (3)寄存器窗口 :转目标地址、字串等 ; 显示当前所选线程的 行,一般要借助分析工具。
以下介绍虚拟机 Vmware 和沙盘 (4)数据窗口 :CPU 寄存器内容 ; (5) 显示内存或文件的内容 ; Sandboxie,还要介绍 Sysinternals 系列工具,用于动态分析程序,堆栈窗口 :显示当前线程的堆栈。
执行后检查内存、注册表、网络通信等内容,分析
程序的行为。
Debug 菜单提供了丰富的调试功能。
调试过程中设置的 2.1 VMware断点、添加的注释等保存在 udd 文件,下次调试时可以继续以 虚拟机可以在一台电脑上虚拟出很多的主机,只要真实主前的
工作。
要开始调试只需设置好断点,找到感兴趣的
代码 机的配置足够就可以。
VMware workstation 是 VMware 公司设段再使用单步功能来一条条分析指令功能就可以了。
计的专业虚拟机,可以虚拟现有任何操作
系统。
手工脱壳首选 Ollydbg。
普通加壳在 Ollydbg 载入时一般 配置安装虚拟机,就是对已经装好的虚拟机的内存容量,都会发现,提示软件被加壳,是否继续分析。
还有些是脱壳 硬盘大小和数量,网络类型等进行修改。
没有脱干净,载入时也提示有壳。
手动脱壳的基本原则就是 关于网络,在 VMware 下使用 NAT 模式主要的好处是可单步跟踪,只能往前,不能往后。
主要步骤是 :查壳、寻找 以隐藏虚拟机的拓扑和上互联网时极为方便。
NAT 模式由入口点、转储程序、修复引入函数表(Import Table)。
VMnet 8 的 DHCP server 提供 IP,gateway 和 DNS。
IDA(The Interactive Disassembler)在对加密程序进行分 “Share folder”功能,是为了在与真实主机共享文件时方析方面具有独特的优势,不必退出,直接通过其虚拟内存进 便一些而设定的,它会在虚拟机里添加一个名为 Share folder行解码。
IDA 的流程图功能给程序的整体分析提供了很大的 的磁盘,盘符为 Z。
共享文件夹中的文件在真实主机和虚拟机方便。
IDA 能通过程序特征自动识别系统函数。
中都可以直接访问。
1.4 实例研究:木马宿源鉴定的一种方法 使用虚拟机的好处是可以在虚拟环境下对被分析的程序 2008 年,南京市公安局破获了一起利用木马(业内称为“大 进行测试。
先创建快照,然后运行测试的程序,进行分析,小姐”木马)盗窃网络游戏用户帐户信息,将虚拟财产转卖而 “快照” 数据收集完成后,返回系统快照点。
(Snapshot)功能获利的案件 2。
在案件侦办过程中,提取了木马作者的木马源 类似 XP 的系统还原,如果在虚拟机上系统被破坏,可用此恢复,
代码,对于木马流通环节中的木马生成器和网络游戏用户计 但每个虚拟机只能拥有一个 Snapshot 点。
算机上提取的木马,需要鉴定是否属于“大小姐”木马 3。
经 还有专门地设备可以仿真硬盘,采用了 VMware 虚拟机技过分析发现,该系列木马将盗取的账户信息发送到收信服务 术,可以完整的将对方的系统仿真并运行起来。
该方式可以器,收信地址一般有两个,一个用于收信,另一个用于“挂马” 让调查人员像使用自己的计算机一样,开启对方的计算机并统计,外加一些其他信息和干扰信息并加密保存在生成的木马 提取更多有价值的数据。
ATT-3000 就是这样的设备。
程序文件最后。
各款木马加密运算的参数相异,地址结构不 使用虚拟机时要注意 :有些恶意软件检测自身是否运行断变化,但加密方法相同。
地址结构、加密参数和加密算法 在虚拟机环境,其行为发生变化,或者不运行。
如果是这种形成了木马的固定特征,可以用于木马宿源鉴别。
情况,可以在真实环境下进行测试,但是先要对系统作克隆, 分析源
代码,找出一段与收信地址有关的关键
代码,破解工作的核心就是反汇编被检验的木马,不需要全部分析理解, 建立光盘镜像,测试完成后恢复系统。
常见的克隆工具 有只要找到分析出的特征关键
代码,获得地址结构信息和有关 Symantec 公司的 Ghost。
一般不要在网络环境下进行测试,防参数,从而破解出收信地址,并以此作为宿源认定依据。
止恶意程序在网络中传播。
分析木马源程序自身的特征,根据收信地址的保存方式 2.2 Sandboxie(沙盘)和加密计算算法和参数进行鉴别,该方法客观而高效。
Sandboxie 就是相当于在要运行的程序与系统之间建立一 个隔离层,当运行程序时,就会将程序直接调入该隔离层中,2 动态分析和事后分析 此后,程序对系统所做的修改,都会被限制在这个隔离层中, 动态分析 :在执行程序的过程中了解程序的行为。
而不会真正的去触及系统。
事后分析 :检查程序执行后的遗留物从而间接地了解程序 在沙盘中运行程序后,增加的文件可以从沙盘中直接查的目的和行为。
看。
在沙盘中运行注册表查看程序,可以查看注册表的变化, 比如注册表分析工具 RegShot 利用事前事后生成的
注册 不过这也是在隔离层中。
表快照,进行比对,生成
报告,可用于程序动态分析时查看 在沙盘中运行的程序所产生的变化可以随时删除。
可用注册表的修改情况。
来保护浏览网页时真实系统的安全,也可以用来清除上网、运 41专 题 研 究 2011.03 行程序的痕迹,还可以用来测试软件,测试病毒等。
即使在 进程退出运行。
沙盘进程中下载的文件,也可以随着沙盘的清空而删除。
2) 隐 藏 进 程 的 发 现。
使 用 Sysinternals 系 列 工 具 或 2.3 Sysinternals IceS
word 查看启动组、服务、端口、进程及进程模块。
Sysinternals 系 列 实 用 程 序 对 管 理、 故 障 排 除 和 诊 断 Windows 系统和应用程序很有帮助,以下介绍几个实用程序。
3 网络通信监控 RegMon,可以实时监视注册表,并可设置过滤条件。
网络取证的证据来源主要在网络
通信数据包和各种网络 Autoruns,列出在计算机启动和登录时的各类自启动项, 通信日志。
取证的关键是网络通信的监控和日志分析。
各种操 包括 “Run”“RunOnce”和注册表键值等, “开始”文件夹、 、 作都会留下痕迹,日志记录了计算机运行的记录,是计算机 Autoruns 还能够完整列出应用程序,可以配置自动启动设置的 取证的重要内容,可以从中发现侦查线索和犯罪证据,这是 注册表和文件位置。
事后分析。
在此只讨论网络监控,是事中分析。
Diskmon,实时监控和显示硬盘活动。
Windows 自带的 netstat 可以检查网络连接情况,但是功能 Filemon,实时监控和显示文件系统中文件操作。
比较弱,不方便进行连续监控。
Process Monitor,实时监控和显示文件系统、注册表、进程、 TCPView 可以显示 TCP 和 UDP 连接情况,不仅包括地址 线程和 DLL 活动,如 CreateFile、RegSetValue、Thread Create。
和端口,还包括所属进程,及时刷新,缺点是不保存历史数据。
显示时间、进程名、进程号、操作、结果等内容。
在程序查错、 Wireshark 原名 Ethereal,是一款
开源、流行的网络包分 恶意软件分析等方面有独特的效果,非常方便用于跟踪分析 析工具,主要作用是尝试捕获网络包,并尝试显示包的尽可 程序的外部行为特征。
Process Monitor 的过滤(Filter)功能可 能详细的信息。
Wireshark 可以运行在 Unix 和 Windows上。
这 以设置任意属性作为过滤条件,Include(包含)或 Exclude(排 个强大的工具可以捕捉网络中的数据,并为用户提供关于网络 除),过滤器是非破坏性的,只改变显示,仅是显示过滤器。
和上层协议的各种信息。
2.4 进程隐藏技术 Wiresha rk 有捕获(Captu r.