一种基于硬件模拟器的恶意代码在线分析方法及系统的制作方法

文档序号:6433473阅读:120来源:国知局
专利名称:一种基于硬件模拟器的恶意代码在线分析方法及系统的制作方法
一种基于硬件模拟器的恶意代码在线分析方法及系统技术领域
本发明主要涉及网络环境下的恶意代码分析方法,更确切地是涉及一种基于硬件 模拟器的恶意代码在线分析方法和系统。
背景技术
我国的互联网正处于快速发展阶段,各种互联网应用层出不穷,互联网规模不断 膨胀。第27次中国互联网络发展状况统计报告显示,截至2010年12月,中国网民规模达到 4. 57亿;互联网普及率攀升至34. 3%,较2009年提高5. 4个百分点。互联网迅速发展的背 后,螺虫(Worm)、僵尸网络(Botnet)、间谋软件(SpyWare)、计算机病毒(Computer Virus) 等恶意代码在互联网上也以爆发性的速度进行传播,对商业组织,政府机构以及网络服务 提供商都造成了巨大的损失,并且引发难以估量的安全风险。金山网络发布的《2010-2011 中国互联网安全研究报告》显示,2010年病毒集团横行互联网,80%的病毒传播渠道被病毒 集团所操控,而作为互联网最直接的经济交易平台,网购人群也成为了病毒集团攻击的主 要目标。
恶意代码的广泛传播,更新速度的大大加快和对抗手段的不断提高,对现有的检 测和分析技术带来了严峻的挑战。其特征主要表现在
(I)恶意代码版本更新越来越快。由于当前反病毒厂商普遍使用特征码匹配技 术检测病毒,恶意代码编写人员开始尝试使用短时间内快速修改代码特征的方法来躲避查 杀。
(2)恶意代码对抗检测和分析的技术能力不断提高,生存能力不断增强。恶意代码 编写者普遍使用代码变形、加壳等技术来对自身进行混淆,同时使用底层技术破坏恶意代 码检测工具和调试工具的工作机理,以干扰工具检测和研究人员的分析。
(3)恶意代码行为相似性越来越高,同族变种层出不穷。恶意代码编写者通过使用 快速修改特征码和代码混淆的方法升级恶意代码,使恶意代码族群不断出现变种。同时恶 意代码作者通过模块化设计,通过更新局部模块的方法产生新的变种,导致同族恶意代码 之间的行为相似程度越来越高。
目前应对恶意代码的解决方案仍然是使用杀毒软件、防火墙等传统的基于特征码 匹配的恶意代码检测和防护手段。如何针对未知恶意代码样本展开分析引起了国内外学者 的广泛关注,并且提出了一系列的解决思路和方法。主要可以分为如下三个研究重点一是 恶意代码分析研究,通过对恶意代码进行静态分析和动态分析,分析恶意代码的行为模式, 提取恶意代码的特征;另一方面是同族恶意代码识别研究,通过研究二进制文件结构或恶 意代码外部行为的相似性,试图判定或划分恶意代码的族类并以族类为目标进行分析和研 究,提取族类特征以解决当前分析和检测针对单个样本的问题;最后一方面是恶意代码检 测研究,通过改进恶意代码检测手段提高检测的准确性,通过使用族类特征提高检测恶意 代码族类变种的能力。然而针对恶意代码的分析往往需要专业人员携带专业设备进行人工 分析,这种分析方法便利性差、且耗费人力物力,因此,在互联网普及的当下环境中,如何能够提供一种即准确又方便的在线恶意代码机理分析服务成为了当下较为迫切的需求。发明内容
针对上述问题,本发明提出一种基于硬件模拟器的恶意代码在线分析方法,其目 的在于提供一种只需要用户在互联网环境下就可以获得恶意代码机理分析服务的方法。利 用该方法,当用户需要分析一种恶意代码时,只需提交该代码到响应服务器,由服务器通过 负载平衡算法等方法自动从应用服务器机群中选择应用服务器,启动硬件模拟平台,运行 并分析该恶意代码,运行结束后形成恶意代码分析报告并返回给用户。在这种方式下,可 以满足用户在各种条件下分析恶意代码的需求,节约大量的人力物力,同时,本发明中所采 用的虚拟化平台恶意软件动态分析方法是近年来国际学术界研究的重要思路之一,具有分 析透明性好、分析粒度细、分析可控性高等优点,对于恶意代码分析准确性提供了重要的保 障。
根据以上目的,本发明的具体方案为一种基于硬件模拟器的恶意代码在线分析 方法,其步骤如下
I)用户通过浏览器提交待分析恶意代码样本;
2)响应服务器响应用户的提交请求,存储待分析恶意代码样本,启动应用服务 器;
3)启动后的应用服务器将样本运行参数组织为配置文件;
4)应用服务器按照配置文件将待分析恶意代码样本发送到对应的镜像系统中,然 后在硬件模拟器中加载镜像系统并在镜像系统中运行恶意代码样本;
5)样本运行结束后应用服务器生成样本分析报告,并向响应服务器发送完成信号。
在步骤2)中,所述被启动的应用服务器采用负载平衡方法选出。
所述负载平衡方法的步骤为
a)查找运行样本数最小的应用服务器;
b)将a)步骤找到的应用服务器的样本数与应用服务器的运行阈值比较;
c)选择应用服务器样本数小于阈值的应用服务器启动。
所述镜像系统的版本和存放样本的具体目录由配置文件确定。
所述的样本运行参数由用户提交或按缺省值进行配置。
通过下述方法执行步骤4)
a)将待分析恶意代码样本发送到镜像系统中,镜像系统的系统版本、以及存放样 本的具体目录由样本运行参数指定;
b)将配置文件存储到a)步骤中所述的镜像系统C盘根目录;
c)启动硬件模拟器,加载a)步骤中所述的镜像,在镜像系统中运行恶意代码样 本;
d)硬件模拟器监控恶意代码样本的运行。
硬件模拟器监控恶意代码样本的运行是指硬件模拟器在样本运行过程中记录样 本运行信息包括调用的系统AP1、启动的进程和线程及加载的模块。硬件模拟器监控到的这 些信息经过条理化就形成了样本分析报告。
所述样本分析报告包括恶意代码调用的系统API信息,启动的进程和线程信息以 及加载的模块信息。
所述恶意代码调用系统API的信息包括API的调用时间、传入参数、传出参数和返 回值。
样本启动的进程、线程包括样本启动的线程、子进程。
加载的模块信息包括加载的模块的创建与销毁信息。
本发明还提供一种恶意代码在线分析系统,包括响应服务器,数据库服务器,文件 服务器和至少一台应用服务器,所述应用服务器上包括硬件模拟器;响应服务器响应用户 提交待分析恶意代码样本的请求;数据库服务器存储待分析恶意代码样本的运行参数;文 件服务器存储待分析恶意代码样本,应用服务器中的硬件模拟器运行待分析恶意代码样本 并进行分析。
所述应用服务器上包括数据库操作模块、通信模块、文件操作模块、操作员模块和 样本启动模块,数据库操作模块负责在数据库服务器中读取和更新样本运行参数,文件操 作模块负责在文件服务器中读取待分析恶意代码样本和上传样本分析报告;通信模块接 收和反馈响应服务器的信号,并将样本运行参数和待分析恶意代码样本发送到操作员模块 上,操作员模块控制硬件模拟器的启动、运行和结束,样本启动模块负责启动待分析恶意代 码样本并按照样本运行参数要求为样本模拟运行环境。
样本启动模块运行于硬件模拟器加载的镜像系统中。
与现有技术相比,本发明的优点在于
提供恶意代码在线分析服务,分析过程全自动化,极大地改善了恶意代码分析的 便携性与效率性,使得用户只需要在接入互联网情况下就可以满足分析恶意代码机理的需 求,而不需要配备高性能专业性分析系统,同时后台应用服务器使用硬件模拟器技术,在硬 件模拟器环境下恶意代码运行全过程一览无余,全面记录恶意代码的真实运行行为,包括 调用系统API信息包括API的调用时间、传入参数、传出参数、返回值等和样本进程、模块的 创建与销毁等信息,提供完善的信息供后续的特征提取,同时硬件模拟器技术的特性保证 了在运行恶意代码样本后系统不会被样本的恶意行为所危害,很好地保护了系统的一致性 和可用性。


图1为基于硬件模拟器的恶意代码在线分析系统总体结构图2为基于硬件模拟器的恶意代码在线分析方法的流程图3为基于硬件模拟器的恶意代码在线分析系统中的模块关系图4为负载平衡方法的流程图。
具体实施方式
下面详细说明本发明的技术方案
本发明的恶意代码在线分析系统如图1所示由3大部分组成,分别是用户、服务 器、应用服务器集群,其中服务器包括响应服务器、文件服务器和数据库服务器,响应服务 器响应用户的请求,将待分析恶意代码样本和样本运行参数(即图中的样本信息)分别发送到文件服务器和数据库服务器中存储,并将样本和运行参数提取后分发到应用服务器。 数据库服务器存储样本运行参数,文件服务器存储待分析恶意代码样本。
图2和图3具体显示了恶意代码的在线分析方法
I)用户可以从浏览器端上传样本文件及其样本运行参数,当样本运行不需要特殊参数时,用户也可以不提交样本运行参数;
2)服务器由响应服务器、数据库服务器和文件服务器组成,其中响应服务器负责响应用户请求、存储样本和样本运行参数、分发提交样本到应用服务器;
3)应用服务器至少为一台,在本实施例中为应用服务器集群,应用服务器主要负责提供恶意代码分析服务。应用服务器端主要由5个模块组成,分别是Launcher模块(样本启动模块)、通信模块、SQL操作模块(数据库操作模块)、文件操作模块和Operator模块(操作员模块)。应用服务器还包括硬件模拟器,硬件模拟器加载镜像系统并在镜像系统中运行待分析恶意代码样本。
a) Launcher模块运行在Guest OS (镜像系统)中,功能是启动样本并按照样本运行参数要求为样本模拟运行环境。除了 Launcher模块,其余四个模块均运行在Host OS(宿王系统)中;
b)通信模块负责等待、执行响应服务器发来的命令,并向响应服务器反馈执行结果;
c) SQL操作模块负责从数据库中获取和更新数据库中样本运行参数;
d)文件操作模块负责从文件服务器中获取待分析恶意代码样本,以及向文件服务器中上传样本处理结果分析报告文件;
e) Operator模块负责启动、操作和结束硬件模拟器。
具体实现方式如下
I)用户提交待分析样本
由用户从浏览器端提交待分析恶意代码样本可以同时提交样本运行需要的参数, 如用户不提交运行参数,则系统以缺省参数启动样本。此处参数的选择建立在观察大量恶意代码运行参数基础上,包括系统类别、样本运行前存放的位置、系统启动后的样本运行延时、启动样本的父进程等,如表I所示
表I样本运行参数表
序号名称备注缺省值Iimage Version镜像系统版本,Windows xp Pro spl, Windows xp Pro sp2. Windows xp Pro sp3Windows xp Pro sp22parentProcess运行该样本所需父进程名Launcher.exe3argument样本运行启动参数无4targetPath样本要求系统存储路径C:\tmp5delay运行延时0秒
本发明采用响应服务器接收用户提交的样本,并可接收用户指定的样本运行参数,以实现在指定运行参数下的恶意代码分析功能。
2)响应用户请求并平衡负载
本发明构建数据库存储恶意代码样本以及运行参数。响应服务器对用户的提交请求响应,将恶意代码样本以及运行参数存储到数据库中,供应用服务器及响应服务器获取。
本发明采用负载平衡方法,自动选择应用服务器。负载平衡方法如图4所示,由系统维护的应用服务器信息列表L中选取负载最轻的应用服务器S,本发明中的服务器信息包括服务器IP地址、在运行样本数目η、运行样本ID和运行样本数目阈值。
如果负载最轻的服务器S未达到负载极限,发送启动分析信息到该服务器S,并更新服务器信息;否则返回服务器忙的信息稍后再重试。通过该负载平衡方法,响应服务器选择空闲的应用服务器发送启动分析命令,由此实现应用服务器资源的合理配置。
SAMPLE
3)获取样本信息应用服务器S收到启动命令后,从数据库服务器取出样本环境配置参数组织为结构,并从文件服务器取出待分析样本文件。本发明中SAMPLE结构定义如下typedef struct —SAMPLE一 {charszSampleID[8]; Il 样本唯一标识符 charszRemoteFileName[256]; Il 样本名称Il实时处理状态 //系统版本要求 //父进程名称 //运行参数Il特定运行路径 //运行延时 charszStatus[8]; charszImageVerson[32]; charszPProcName[256]; charszArgs[256]; char szRemotePath [256]; charszDelay[256];} SAMPLE, *PSAMPLE, **PPSAMPLE;
4)自动配置样本运行环境
本发明通过将步骤3所述的SAMPLE结构体组织成Config配置文件协助样本运行环境的自动配置。本发明中的Config配置文件包括样本唯一标识符、样本名称、实时处理状态、系统版本要求、父进程名称、运行参数、特定存储路径和运行延时等。通过构建Config 配置文件,灵活地满足样本的各种运行环境需求。
调用操作员(Operator)模块按照步骤3所述Config配置文件的要求将样本文件放入硬件模拟器镜像的指定目录,启动硬件模拟器,加载镜像系统,发送监控命令,硬件模拟器开始监控镜像系统运行。由此实现样本运行的系统环境的搭建;
5)自动启动待分析样本
完成如第4步所述的环境搭建后,本发明中的样本自启动是通过构建Launcher模块完成的,由Launcher读取Config配置文件,然后按照Config中的内容来启动样本,运行要求包括父进程、运行延时、运行参数等。构造Launcher实现启动的优势是Launcher可以完成样本之间关联性较强的样本启动工作,由此可满足多个样本复合运行的需求。本发明中恶意代码运行过程中由基于硬件模拟器的恶意代码分析平台全程监控其运行,运行结束后生成分析报表,本发明中的报表包括调用系统API信息包括API的调用时间、传入参数、传出参数、返回值等和样本进程、模块创建和销毁信息等;
6)结束分析平台并反馈完成情况
分析平台运行完毕后,再次调用操作员(Operator)模块结束分析平台运行,并由 操作员(Operator)模块向响应服务器发回完成信号,并将报告传回文件服务器。完成信号 如CMD结构所示
typedef struct 一CMD— {char szSampleID[8]; Il 样本唯一标识符char szStatus[8]; //完成状态,包括正常完成,超时退出,错误等等。} CMD, *PCMD, **PPCMD;
上述步骤完全自动化,完成以上步骤后,用户便可在运行完成的第一时间查看分 析样本的分析报告,通过样本运行时调用系统API信息包括API的调用时间、传入参数、传 出参数、返回值等和样本进程、模块创建和销毁信息了解其运行机理、关键操作特性等。
权利要求
1.一种基于硬件模拟器的恶意代码在线分析方法,包括如下步骤1)用户通过浏览器提交待分析恶意代码样本;2)响应服务器响应用户的提交请求,存储待分析恶意代码样本,启动应用服务器;3)启动后的应用服务器将样本运行参数组织为配置文件;4)应用服务器按照配置文件将待分析恶意代码样本发送到对应的镜像系统中,然后在硬件模拟器中加载镜像系统并在镜像系统中运行恶意代码样本;5)样本运行结束后应用服务器生成样本分析报告,并向响应服务器发送完成信号。
2.根据权利要求1所述的基于硬件模拟器的恶意代码在线分析方法,其特征在于,在步骤2)中,所述被启动的应用服务器采用负载平衡方法选出。
3.根据权利要求2所述的基于硬件模拟器的恶意代码在线分析方法,其特征在于,所述负载平衡方法的步骤为a)查找运行样本数最小的应用服务器;b)将a)步骤找到的应用服务器的样本数与应用服务器的运行阈值比较;c)应用服务器的样本数小于运行阈值时启动该应用服务器。
4.根据权利要求1所述的基于硬件模拟器的恶意代码在线分析方法,其特征在于,所述的样本运行参数由用户提交或按缺省值进行配置。
5.根据权利要求1所述的基于硬件模拟器的恶意代码在线分析方法,其特征在于,所述样本分析报告包括恶意代码调用的系统API信息,启动的进程和线程信息,和加载的模块信息。
6.根据权利要求5所述的基于硬件模拟器的恶意代码在线分析方法,其特征在于,所述恶意代码调用系统API的信息包括API的调用时间、传入参数、传出参数和返回值。
7.根据权利要求5所述的基于硬件模拟器的恶意代码在线分析方法,其特征在于,所述加载的模块信息包括模块的创建与销毁信息。
8.—种恶意代码在线分析系统,其特征在于,包括响应服务器,数据库服务器,文件服务器和至少一台应用服务器,所述应用服务器上包括硬件模拟器;响应服务器响应用户提交待分析恶意代码样本的请求;数据库服务器存储待分析恶意代码样本的运行参数;文件服务器存储待分析恶意代码样本,应用服务器中的硬件模拟器运行待分析恶意代码样本并进行分析。
9.根据权利要求8所述的恶意代码在线分析系统,其特征在于,所述应用服务器上包括数据库操作模块、通信模块、文件操作模块、操作员模块和样本启动模块,数据库操作模块从数据库服务器中读取和更新待分析恶意代码样本,文件操作模块从文件服务器中读取样本运行参数和上传样本分析报告;通信模块接收和反馈响应服务器的信号,并将样本运行参数和待分析恶意代码样本发送到操作员模块上;操作员模块控制硬件模拟器的启动、 运行和结束,样本启动模块启动待分析恶意代码样本并按照样本运行参数为样本模拟运行环境。
10.根据权利要求9所述的恶意代码在线分析系统,其特征在于,所述样本启动模块运行于硬件模拟器加载的镜像系统中。
全文摘要
本发明公开了一种基于硬件模拟器的恶意代码在线分析方法及系统,分析方法如下1)用户通过浏览器提交待分析恶意代码样本;2)响应服务器响应用户的提交请求,存储待分析恶意代码样本,启动应用服务器;3)启动后的应用服务器将样本运行参数组织为配置文件;4)应用服务器按照配置文件将待分析恶意代码样本发送到对应的镜像系统中,然后在硬件模拟器中加载镜像系统并在镜像系统中运行恶意代码样本;5)样本运行结束后应用服务器生成样本分析报告。本发明的系统包括响应服务器,数据库服务器,文件服务器和至少一台应用服务器,所述应用服务器上包括硬件模拟器。本发明过程全自动化,极大地改善了恶意代码分析的便携性与效率性。
文档编号G06F21/56GK102999719SQ201110278249
公开日2013年3月27日 申请日期2011年9月19日 优先权日2011年9月19日
发明者程瑶, 王蕊, 苏璞睿, 冯登国, 杨轶, 聂眉宁 申请人:中国科学院软件研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1