一种基于虚拟硬件环境的恶意代码自动分析方法及系统技术方案

技术编号:4178385 阅读:291 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种基于虚拟硬件环境的恶意代码自动分析方法及系统,属于网络安全技术领域,本发明专利技术通过在虚拟硬件环境之上构建恶意代码所需的运行环境,并通过操纵和控制虚拟CPU指令和各种虚拟硬件的访问操作,收集恶意代码各种操作信息,控制恶意代码的运行过程,分析所有的收集到的数据,动态显示虚拟系统状态信息和恶意代码运行信息。由于数据采集通过虚拟硬件实现,恶意代码无法感知自身是否运行在虚拟环境中,也无法分辨自身是否被跟踪,从而实现对恶意代码完全透明的分析。

【技术实现步骤摘要】

本专利技术属于网络安全
,尤其涉及一种恶意代码分析的方法及系统。
技术介绍
随着社会的不断发展和进步,计算机在社会各个领域的应用越来越广泛。由于软件漏 洞的广泛存在和用户安全意识的不足,恶意代码的传播速度越来越快,感染范围不断扩大, 造成的破坏日益严重,传统的安全防护手段由于受分析效率限制,响应周期难以縮短,响 应速度已经逐渐不能适应这种新情况。因此,提高恶意代码分析速度和分析效率显得十分 必要。现有的恶意代码分析方法主要依赖于传统的软件分析和调试工具,主要包括静态反编 译,动态跟踪调试和人工分析。利用静态反编译技术分析恶意代码,主要是利用静态反编译工具如IDA Pro,对恶意 代码的二进制文件进行静态分析,反编译出汇编指令,通过分析指令的执行流程,检查其 中包含的各种操作。这种方式的主要缺陷是,无法反编译自修改代码、动态生成代码、加 壳代码,同时难以消除花指令,代码混淆等技术造成的影响,极大的影响了分析效率和有 效性。利用动态跟踪调试技术分析恶意代码可以在一定程度上解决静态反编译无法解决的 问题。借助软件和硬件提供的调试功能,SoftICE, OllyDbg等工具可以动态跟踪恶意代码 的运行过程,观察恶意代码运行过程中的各种行为。动态跟踪调试通常还借助VMWare, Virtual PC等操作系统虚拟工具实现。这种方式的主要问题在于,调试器与恶意代码运行 在同一个操作系统平台上,依赖于平台自身提供的调试功能,从而使得恶意代码可以检测 到调试器的存在。并且,由于操作系统虚拟工具都存在明显的特征,也很容易被恶意代码 检测到,恶意代码往往通过反跟踪,反调试,虚拟机检测技术,阻止对自身的调试,退出 运行甚至隐藏特定行为等,造成动态跟踪分析难以有效开展。利用辅助工具进行人工分析,主要指通过观察恶意代码对文件系统,网络,进程线程 等运行环境资源的访问操作,推断恶意代码的行为特征。由于恶意代码的行为往往依赖于 外部环境,使得这种方式难以全面覆盖恶意代码可能的所有行为。同时,这种分析方法自 身特性也决定了其分析能力存在跟动态跟踪类似的同一平台竞争问题,大量的人工操作也极大地限制了其分析效率。在恶意代码数量不断膨胀的今天,人工分析的缺陷更加明显。
技术实现思路
本专利技术提供一种基于虚拟硬件环境的恶意代码自动分析方法及系统。通过在虚拟硬件 环境之上构建恶意代码所需的运行环境,并通过操纵和控制虚拟CPU指令和各种虚拟硬件的访问操作,收集恶意代码各种操作信息,控制恶意代码的运行过程。由于数据采集通过 虚拟硬件实现,恶意代码无法感知自身是否运行在虚拟环境中,也无法分辨自身是否被跟 踪,从而实现对恶意代码完全透明的分析。为实现以上目的,本专利技术的构思是分析人员通过用户控制模块配置分析环境和分析 目标的参数,启动硬件虚拟模块,加载恶意代码运行所需的操作系统镜像,启动该操作系 统,并运行待分析的恶意代码。数据采集模块根据分析目标,拦截特定的虚拟CPU指令, 收集并记录相关的访问数据,并可根据需要,更改恶意代码指令的执行流程。数据采集模 块还拦截各种虚拟硬件的访问操作,收集并记录相关操作的数据,并根据需要提供特定的 输入数据。数据分析模块综合数据采集模块收集的各种数据,通过用户控制模块实时显示 最新的恶意代码运行信息,并在分析过程终止后,关联分析所有的搜集到的数据,自动输 出分析结果。基于以上构思,本专利技术的技术方案为一种基于虚拟硬件环境的恶意代码自动分析方法,包括步骤1) 搭建恶意代码运行环境,包括根据恶意代码运行环境的要求,虚拟所需的硬件设 备,准备相关的操作系统镜像;2) 配置分析环境和分析参数,包括恶意代码运行所需的操作系统镜像所在位置,虚 拟硬件的各种参数,如虚拟内存大小,虚拟系统时间等,以及需要收集的恶意代码运行数 据和需要监控的恶意代码操作,如网络收发数据,文件读写操作等;3) 完成各种虚拟设备的初始化后,加载恶意代码运行所需的操作系统镜像,启动该 操作系统,同时拦截加载操作,并将所有支持拦截的系统调用操作转换为虚拟系统对应的 系统调用的指令起始地址;4) 运行待分析的恶意代码,虚拟CPU执行任何指令之前,判断即将执行的指令是否 为转换过来的指令起始地址,当匹配时,则暂停虚拟系统的运行,记录当前匹配操作,并 收集该操作相关的数据,如网络数据发送操作的内容,文件创建操作的文件名等信息,然 后再恢复虚拟系统的运行;同时,对于读取操作,还可根据需要提供特定的输入数据,改变恶意代码的执行流程;5)分析所有的收集到的数据,动态显示虚拟系统状态信息和恶意代码运行信息,恶 意代码退出,分析自动终止;用户终止恶意代码的运行过程,提取某一时刻虚拟内存中的 恶意代码的二进制代码,关联分析搜集到的所有数据,输出分析结果。一种基于虚拟硬件环境的恶意代码自动分析系统,其特征在于,包括一硬件虚拟模块, 一数据采集模块, 一数据分析模块和一用户控制模块,硬件虚拟模块和数据采集模块通过 网络连接与数据分析模块和用户控制模块进行通讯和数据交互,其中-硬件虚拟模块虚拟实现物理计算机所需的硬件设备,加载恶意代码运行所需的操作系 统镜像;数据采集模块拦截各种虚拟系统调用和虚拟硬件的访问操作,收集并记录相关操作的 数据;数据分析模块关联分析所有的搜集到的数据;用户控制模块配置分析环境和分析目标的参数,动态显示虚拟系统状态信息和恶意代 码运行信息。根据恶意代码运行所需操作系统的不同,可以包含多个不同的数据采集模块,如图2 所示。本专利技术的配置信息,可以XML结构化方式组织并存储。进一步配置信息的分析环境信息可包括虚拟软盘镜像文件,虚拟硬盘镜像文件,虚 拟CDROM镜像文件,启动顺序,虚拟内存大小,虚拟CPU数量,虚拟时间,虚拟键盘类 型,虚拟USB设备,虚拟网卡MAC地址,虛拟网络端口到物理主机端口的重定向。进一步配置信息的分析参数信息可包括要监控的系统调用名称,参数和返回值的结 构,以及可选的待分析的恶意代码文件名。本专利技术的硬件虚拟模块和数据采集模块,与数据分析模块和用户控制模块可以运行在 不同的体系结构和操作系统上,可以通过网络通信实现交互。本专利技术的优点在于,整个分析过程对恶意代码完全透明,恶意代码无法识别是否运行 在虚拟环境中还是真实环境中,也无法察觉指令执行过程是否被监控,从而能够观察到真 实环境中的恶意代码的所有可能行为。并且,由于监控操作在指令在虚拟CPU上执行前展 开,监控不会受到恶意代码中花指令,代码动态生成等各种保护技术的干扰。此外,由于 能够控制所有虚拟硬件,本专利技术还能够在恶意代码运行过程中,从虚拟内存中转储当前正 在执行的恶意代码的二进制代码用于静态分析,从而解决代码加壳,自修改等动态行为造成的静态分析的困难。 附图说明图1为本专利技术的系统工作过程流程图图2为本专利技术的系统组成与模块间详细关系示意图具体实施例方式下面结合附图和具体实施方式对本专利技术作进一步详细描述分析人员搭建恶意代码运行环境,配置分析环境和分析目标等参数,启动硬件虚拟模 块,加载并启动恶意代码运行所需的操作系统镜像,并运行待分析的恶意代码。数据采集 模块根据分析目标,拦截特定的虚拟CPU指令和虚拟硬件的访问操作,收集并记录相关的 访问数据。数据分析模块综合数据采集模块收本文档来自技高网
...

【技术保护点】
一种基于虚拟硬件环境的恶意代码自动分析方法,其步骤包括: 1)虚拟实现物理计算机所需的硬件设备,准备恶意代码运行环境相关的操作系统镜像; 2)配置恶意代码分析环境和分析目标的参数; 3)加载恶意代码运行所需的虚拟操作系统镜 像,同时拦截操作系统内核模块的加载,将所有支持拦截的系统调用操作转换为虚拟系统对应的系统调用的指令起始地址; 4)运行待分析的恶意代码,虚拟CPU在执行指令之前,判断即将执行的指令是否为转换过来的指令起始地址,是则暂停虚拟系统的运行, 收集并记录该操作相关的访问数据后,再恢复虚拟系统的运行; 5)分析所有的收集到的数据,动态显示虚拟系统状态信息和恶意代码运行信息,恶意代码退出,分析自动终止。

【技术特征摘要】

【专利技术属性】
技术研发人员:应凌云苏璞睿冯登国
申请(专利权)人:中国科学院软件研究所
类型:发明
国别省市:11[]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1