基于行为片段共享的恶意软件特征聚类分析方法及系统的制作方法

文档序号:6617095阅读:281来源:国知局
专利名称:基于行为片段共享的恶意软件特征聚类分析方法及系统的制作方法
技术领域
本发明涉及计算机网络安全技术领域,具体涉及一种针对分布在网络各地的采集分析节点如何实现高效交互信息从而能够对本地恶意软件样本进行准确聚类和分析的基于行为片段共享的恶意软件特征聚类分析方法及系统。
背景技术
根据国家互联网应急中心互联网安全威胁报告中术语的定义,恶意软件是指在未经授权的情况下,在信息系统中安装、执行以达到不正当目的的程序。恶意软件主要包括1)特洛伊木马(Trojan Horse),以盗取用户个人信息,甚至是远程控制用户计算机为主要目标的恶意软件。2)僵尸程序,用于构建大规模攻击平台的恶意软件。按照使用的通信协议,僵尸程序可进一步分为IRC (Internet Relay Chat)僵尸程序、HTTP (HypertextTransfer Protocol)僵尸程序、P2P (peer-to-peer)僵尸程序等。3)螺虫,指能自我复制 和广泛传播,以占用系统和网络资源为主要目的的恶意软件。4)病毒,通过感染计算机文件进行传播,以破坏或篡改用户数据,影响信息系统正常运行为主要目的恶意软件。恶意软件的检测与分析正变得越来越困难,主要表现在以下三个方面。I)恶意软件数量巨大并且成指数级增长,赛门铁克公司一系列网络安全威胁报告(SymantecInternet SecurityThreat Report)指出目前恶意软件数量巨大并成指数级增长,赛门铁克公司在2011年共发现4亿新的恶意软件样本,平均每天110万。这样巨大的恶意软件样本给恶意软件检测系统如何正确识别、归类、描述恶意软件带来巨大挑战。2)恶意软件的行为呈现出更强的多样性,通过消息加密、变换传播途径、多态等技术,同一种恶意软件的不同样本表现出不同的行为,难以对观察到的恶意软件样本进行正确有效分析。3)恶意软件的样本在空间上广泛分布并且具有很高的隐蔽性,因此单一局域网或企业网能够观察到的同一种恶意软件的样本数目非常有限。由于恶意软件行为的多样性,在样本数目有限的情况下,无法获取恶意软件的本质特征,分析准确性无法保证。因此恶意软件分析系统一般采用分布采集方式覆盖足够多的恶意软件样本。赛门铁克公司的研究人员在网络安全顶级会议 SP' 11 (IEEE Symposium on SecurityandPrivacy2011)撰写短文(BenchmarkingComputer SecurityUsingffINE)指出该公司在全球部署了 24万恶意软件采集节点。当前研究人员提出了许多恶意软件分析方法,但其中绝大部分都是集中式分析方法。专利“一种恶意软件行为特征提取方法”(专利号200910237422.X)提出首先在硬件模拟器运行恶意软件,并通过在硬件模拟器翻译层添加一反汇编引擎获得恶意软件的指令序列,然后采用动态污点传播的方法构建恶意软件的控制依赖图和数据依赖图,最后根据依赖图进行相似性聚类,并为每类提取行为特征。学者Ulrich Bayer等在网络安全国际顶级会议 NDSS2009 (16th Annual Network&Distributed System SecuritySymposium)发表论文“Scalable, Behavior-Based Malware Clustering”,与专利“一种恶意软件行为特征提取方法”一样首先采用动态二进制代码分析技术获得恶意软件的执行轨迹(指令序列等),然后为了提高分析准确性同时提高分析速度,作者将执行轨迹表示成资源对象、对资源对象的操作以及操作之间的依赖关系的抽象表示,降低了恶意软件的属性维度,有限消除了恶意软件在行为细节上由于采用多态技术带来的影响,最后作者基于抽象表示对恶意软件进行聚类分析。除了基于恶意软件主机行为进行分析之外,研究成员还提出了较多的基于网络流量对恶意软件进行分析的方法。学者Zhichun Li等在网络安全国际顶级会议 SP ' 06 (IEEE Symposium on Security andPrivacy2006)发表论文“Hamsa :Fast Signature Generation for Zero-day Polymorphic WormsWithProvableAttackResilienee”,采用前缀数组提取同一类恶意软件样本间的共同字段,然后基于共同字段构建恶意软件流量特征。学者Roberto Perdisci等在网络系统国际顶级会议 NSDI ' 10 (USENIX Symposium on Networked System Design andImplementation2010)上发表论文“Behavioral Clustering of HTTP-Based Malware andSignature Generation Using MaliciousNetwork Traces”,针对基于 HTTP 通信的恶意软件,将恶意软件访问web的URL按结构分为四部分请求方法(get、post等)、请求页面地 址、请求参数名称、请求参数值,赋予不同部分不同的权值,基于URL的这种结构相似性聚类恶意软件并为每一类提取该类内恶意软件样本的URL特征。但是随着恶意软件样本成指数级不断增长,集中分析系统需要处理越来越多的恶意软件样本,同时聚类分析和特征提取都是计算开销大的任务,因此集中式恶意软件分析面临严重的计算瓶颈问题。为此不少开发人员采用不同途径解决恶意软件分析的计算瓶颈问题。专利“检测恶意软件样本的网络行为的方法及系统”(专利号201010107195. I)提出首先运行恶意软件获得其网络通信行为,并从网络通信行为中提取通信命令,最后测试这些通信命令追踪恶意软件的其它行为,以达到减少分析资源成本、降低计算开销。学者 Jiyong Jang 在网络安全顶级会议 CCS ' 11 (18th ACM Conference on Computerand Communications Security)发表论文“BitShred :Feature Hashing Malware forScalable Triage and Semantic Analysis”,提出米用属性哈希(feature hashing)来极大的降低恶意软件的维数,降低聚类分析的计算开销,提高恶意软件分析的可扩展性。然而通过降低恶意软件属性维数和减少分析量的方法只能有限缓减集中式系统的计算瓶颈问题,不能从根本上解决其分析恶意软件的计算瓶颈问题。综上所述,针对基于网络的恶意软件检测,目前的单点采集分析技术存在采恶意软件样本有限、分析准确性和有效性低的缺陷;而分布采集并集中分析的技术,存在计算和通信瓶颈。且两种恶意软件分析技术都依赖人工专家,不能支持智能自动分析。分布式哈希表(DHT,Distributed Hash Table)通常用于分布式数据存储和检索,具有去中心化、可靠和良好的可扩展性等特性。DHT网络中,每个节点负责一个小范围的路由处理及部分数据对象(data)的存储。DHT的基本原理是将每个数据资源对象表示成一个数据资源对象索引条目(Key,N0de)对,Key称为关键字,是资源对象描述信息(如资源名、资源编号、资源内容等)的哈希值,Node是实际存储该资源对象的节点的描述信息(如IP地址、名称等)。所有的数据资源对象索引条目(即所有的(Key,N0de)对)组成一个资源对象索引哈希表,只要输入目标资源对象的Key值(关键字值),就可以从该资源对象索引哈希表中查出存储该资源对象的节点的地址或者其他描述信息。DHT的主要功能是将该资源索引哈希表分布化,将其分割成很多段小块(局部哈希表),然后按照特定的规则把每一块局部哈希表分配到系统中的一个参与节点上,使得每个节点负责维护其中的一块局部哈希表。

发明内容
本发明要解决的技术问题是提供一种分析准确性高、分析性能强、可扩展性好的基于行为片段共享的恶意软件特征聚类分析方法及系统。为了解决上述技术问题,本发明采用的技术方案为一种基于行为片段共享的恶意软件特征聚类分析方法,实施步骤如下I)在网络中分别布置地理位置分散的采集分析节点,每一个采集分析节点负责一片网络区域中恶意软件样本的采集和分析,在采集分析节点中建立用于构建分布式哈希表的分布式哈希表模块;2)所述采集分析节点将采集的恶意软件样本的行为分割为多个行为片段; 3)所述采集分析节点获取行为片段的本地统计特性,将行为片段及其本地统计特性共享给分布式哈希表模块,通过分布式哈希表模块将行为片段及其本地统计特性存储至分布式哈希表;通过不同的采集分析节点负责不同行为片段的全局特性统计,所述采集分析节点分别通过分布式哈希表中存储的所述行为片段的所有本地统计特性统计获取所负责行为片段的全局特性,并向各个发布所述行为片段的采集分析节点返回带有全局特性的行为片段集合;4)收到带有全局特性的行为片段集合的所述采集分析节点基于行为片段的全局特性计算行为片段集合中各个行为片段的权值,并根据恶意软件样本中各个行为片段的权值构建所述恶意软件样本的特性向量;5)所述采集分析节点根据恶意软件样本的特性向量之间的距离对各个恶意软件样本进行聚类得到聚类集合,分析聚类集合中的每一个聚类,提取该聚类的特征及属性作为所述恶意软件的综合分析结果输出。作为本发明基于行为片段共享的恶意软件特征聚类分析方法的进一步改进所述步骤2)的详细步骤如下;2. I)将恶意软件样本的行为视为顺序执行的行为序列,从所述顺序执行的行为序列中选择固定长度的连续行为子序列作为分割得到的行为片段;或者根据恶意软件样本的行为操作数据之间的依赖关系建立行为依赖图,从所述行为依赖图中选择获取固定顶点数目的行为依赖子图作为分割得到的行为片段;2. 2)采用启发式规则选择行为片段,得到包含多组固定数量行为片段的行为片段集合;2. 3)通过式(I)计算各个行为片段的局部特性权值; '4/,) = logHt Iol3y-(D式(I)中,Fi为行为片段ti在正常程序行为中出现的频率,Hi为恶意软件样本中包含该行为片段的比率;w(ti)为行为片段\的局部特性权值山为第i个行为片段;2.4)基于行为片段的局部特性权值构建恶意软件样本的局部特性向量,局部特性向量的维度是行为片段按着一定顺序的一个排列,某一恶意软件样本的局部特性向量某维的值由以下两种情况决定如果恶意软件样本行为中具有该维所代表的行为片段的行为,则所述值等于该行为片段的局部特性权值;反之则所述值等于零;2. 5)通过式(2)计算行为片段集合中每一组行为片段与原始恶意软件样本的相似性,从所述行为片段集合中选择相似性最大的一组行为片段作为代表行为片段;同时,如果选择次数已达到预设次数次且行为片段集合存在一组行为片段与原始恶意软件样本的相似性大于等于O. 8,则停止选择并将所述行为片段作为代表行为片段;
权利要求
1.一种基于行为片段共享的恶意软件特征聚类分析方法,其特征在于实施步骤如下 1)在网络中分别布置地理位置分散的采集分析节点,每一个采集分析节点负责一片网络区域中恶意软件样本的采集和分析,在采集分析节点中建立用于构建分布式哈希表的分布式哈希表模块; 2)所述采集分析节点将采集的恶意软件样本的行为分割为多个行为片段; 3)所述采集分析节点获取行为片段的本地统计特性,将行为片段及其本地统计特性共享给分布式哈希表模块,通过分布式哈希表模块将行为片段及其本地统计特性存储至分布式哈希表;通过不同的采集分析节点负责不同行为片段的全局特性统计,所述采集分析节点分别通过分布式哈希表中存储的所述行为片段的所有本地统计特性统计获取所负责行为片段的全局特性,并向各个发布所述行为片段的采集分析节点返回带有全局特性的行为片段集合; 4)在收到带有全局特性的行为片段集合后所述采集分析节点基于行为片段的全局特性计算行为片段集合中各个行为片段的权值,并根据恶意软件样本中各个行为片段的权值构建所述恶意软件样本的特性向量; 5)所述采集分析节点根据恶意软件样本的特性向量之间的距离对各个恶意软件样本进行聚类得到聚类集合,分析聚类集合中的每一个聚类,提取该聚类的特征及属性作为所述恶意软件的综合分析结果输出。
2.根据权利要求I所述的基于行为片段共享的恶意软件特征聚类分析方法,其特征在于所述步骤2)的详细步骤如下; . 2.1)将恶意软件样本的行为视为顺序执行的行为序列,从所述顺序执行的行为序列中选择固定长度的连续行为子序列作为分割得到的行为片段;或者根据恶意软件样本的行为操作数据之间的依赖关系建立行为依赖图,从所述行为依赖图中选择获取固定顶点数目的行为依赖子图作为分割得到的行为片段; .2.2)采用启发式规则选择行为片段,得到包含多组固定数量行为片段的行为片段集合; . 2.3)通过式(I)计算各个行为片段的局部特性权值;
3.根据权利要求I所述的基于行为片段共享的恶意软件特征聚类分析方法,其特征在于,所述步骤3)的详细步骤如下 .3.I)所述采集分析节点调用分布式哈希表模块得到所述行为片段的关键字值; .3.2)所述采集分析节点统计本采集分析节点所有恶意软件样本中行为包含所述行为片段的样本数在内的本地统计特性; .3.2)所述采集分析节点将所述行为片段及其本地统计特性封装为分布式哈希表消息,然后将所述关键字值和分布式哈希表消息发送给分布式哈希表模块,并记录发布行为片段的采集分析节点地址;所述分布式哈希表模块根据关键字值查找负责该关键字值的采集分析节点,并将分布式哈希表消息路由到负责该关键字值的采集分析节点进行存储; .3.3)不同的采集分析节点负责不同行为片段的全局特性统计,所述采集分析节点分别根据采集分析节点地址和分布式哈希表模块返回所负责行为片段的分布式哈希表消息,统计包含在分布式哈希表中包含来自不同采集分析节点的同一行为片段的恶意软件样本数目、发布该行为片段的采集分析节点数量在内的全局特性,将行为片段及其全局特性组装为返回消息返回给发布行为片段的采集分析节点地址,所述采集分析节点地址对应的采集分析节点接收各个行为片段及其全局特性得到的带有全局特性的行为片段集合。
4.根据权利要求I所述的基于行为片段共享的恶意软件特征聚类分析方法,其特征在于,所述步骤4)的详细步骤如下 .4.I)在收到带有全局特性的行为片段集合后,所述采集分析节点根据式(3)计算所述行为片段集合中各个行为片段的权值;
5.根据权利要求I 4中任意一项所述的基于行为片段共享的恶意软件特征聚类分析方法,其特征在于,所述步骤5)的详细步骤如下 .5.I)所述采集分析节点计算任意两个恶意软件样本的特性向量之间的距离,距离越小则两个恶意软件样本之间的相似性越大;.5.2)所述采集分析节点根据恶意软件样本的特性向量之间的距离,采用预先不需要知道聚类数目的聚类算法对各个恶意软件样本进行聚类得到聚类集合; .5.3)所述采集分析节点遍历所述聚类集合中的每一个聚类,提取该聚类内所有恶意软件样本的共同行为作为该聚类的特征,同时统计该聚类内所有恶意软件样本的网络属性以及本地行为属性作为聚类的属性,将所述聚类的特征及属性作为所述恶意软件的分析结果输出。
6.一种基于行为片段共享的恶意软件特征聚类分析系统,其特征在于,包括多个用于对恶意软件进行采集和分析的采集 分析节点,所述采 集分析节点在网络中地理位置分散,每一个采集分析节点负责一片网络区域中恶意软件样本的采集和分析,所述采集分析节点包括 行为片段分割模块,用于将采集的恶意软件样本的行为分割为多个行为片段; 分布式哈希表模块,用于构建分布式哈希表; 行为片段协同共享模块,用于获取行为片段的本地统计特性,将行为片段及其本地统计特性通过行为片段协同共享模块共享给分布式哈希表模块,通过分布式哈希表模块将行为片段及其本地统计特性存储至分布式哈希表;通过分布式哈希表中存储的所述行为片段的所有本地统计特性统计获取行为片段的全局特性,并向各个发布所述行为片段的采集分析节点返回带有全局特性的行为片段集合,不同的采集分析节点的行为片段协同共享模块负责不同行为片段的全局特性统计; 恶意软件样本表征模块,用于在收到带有全局特性的行为片段集合后基于行为片段的全局特性计算行为片段集合中各个行为片段的权值,并根据恶意软件样本中各个行为片段的权值构建所述恶意软件样本的特性向量; 恶意软件样本本地聚类模块,用于根据恶意软件样本的特性向量之间的距离对各个恶意软件样本进行聚类得到聚类集合; 恶意软件样本本地分析模块,用于分析聚类集合中的每一个聚类,提取该聚类的特征及属性作为所述恶意软件的综合分析结果输出。
7.根据权利要求6所述的基于行为片段共享的恶意软件特征聚类分析系统,其特征在于,所述行为片段分割模块为连续行为子序列分割模块或者行为依赖子图分割模块;所述连续行为子序列分割模块将恶意软件样本的行为视为顺序执行的行为序列,从所述顺序执行的行为序列中选择固定长度的连续行为子序列作为分割得到的行为片段;依赖子图分割模块根据恶意软件样本的行为操作数据之间的依赖关系建立行为依赖图,从所述行为依赖图中选择获取固定顶点数目的行为依赖子图作为分割得到的行为片段;所述行为片段分割模块还通过行为片段选择模块将行为片段发布给行为片段协同共享模块,所述行为片段选择模块包括 行为片段选择子模块,用于采用启发式规则选择行为片段得到包含多组固定数量行为片段的行为片段集合; 行为片段代表性验证子模块,用于通过式(I)计算各个行为片段的局部特性权值,基于行为片段的局部特性权值构建恶意软件样本的局部特性向量,局部特性向量的维度是行为片段按着一定顺序的一个排列,某一恶意软件样本的局部特性向量某维的值由以下两种情况决定如果恶意软件样本行为中具有该维所代表的行为片段的行为,则所述值等于该行为片段的局部特性权值;反之则所述值等于零;通过式(2)计算行为片段集合中每一组行为片段与原始恶意软件样本的相似性,从所述行为片段集合中选择相似性最大的一组行为片段作为代表行为片段;同时,如果选择次数已达到预设次数次且行为片段集合存在一组行为片段与原始恶意软件样本的相似性大于等于O. 8,则停止选择并将所述行为片段作为代表行为片段;并将将所述代表行为片段发布给行为片段协同共享模块;
8.根据权利要求6所述的基于行为片段共享的恶意软件特征聚类分析系统,其特征在于,所述行为片段协同共享模块包括 行为片段发布子模块,用于调用分布式哈希表模块得到所述行为片段的关键字值,统计本采集分析节点所有恶意软件样本中行为包含所述行为片段的样本数在内的本地统计特性,将所述行为片段及其本地统计特性封装为分布式哈希表消息,然后将所述关键字值和分布式哈希表消息发布给分布式哈希表模块; 行为片段接收子模块,用于接收分布式哈希表模块返回的分布式哈希表消息以及记录发布行为片段的采集分析节点地址; 行为片段统计子模块,用于在收到带有全局特性的行为片段集合后根据采集分析节点地址和分布式哈希表模块返回的分布式哈希表消息,统计包含在分布式哈希表中包含来自不同采集分析节点的同一行为片段的恶意软件样本数目、发布该行为片段的采集分析节点数量在内的全局特性,不同的采集分析节点的行为片段统计子模块负责不同行为片段的全局特性统计; 行为片段全局特性返回子模块,用于将行为片段及其全局特性组装为返回消息返回给发布行为片段的采集分析节点地址; 行为片段全局特性接收子模块,用于接收其他采集分析节点的行为片段全局特性返回子模块发送的各个行为片段及其全局特性,得到包含本采集分析节点发布的行为片段的带有全局特性的行为片段集合; 所述分布式哈希表模块包括 行为片段关键字映射子模块,用于利用哈希函数对输入的行为片段进行哈希计算得到固定长度的哈希值作为行为片段的关键字值; 关键字路由子模块,用于根据输入的关键字值把包含行为片段及其本地统计特性的哈希路由表消息路由存储到负责该关键字值的采集分析节点。
9.根据权利要求6所述的基于行为片段共享的恶意软件特征聚类分析系统,其特征在于,恶意软件样本表征模块包括行为片段权值计算子模块,用于根据式(3)计算各个行为片段的权值; 恶意软件样本特性向量表征子模块,用于根据恶意软件样本中各个行为片段的权值构建所述恶意软件样本的特性向量;所述特性向量的维度是采集分析节点本地的行为片段集合按着一定顺序的一个排列,任意恶意软件样本的特性向量某维的值由以下两种情况决定如果恶意软件样本的样本行为中具有该维所代表的行为片段的行为,则值等于该行为片段的权值;否则值等于零;
10.根据权利要求6 9中任意一项所述的基于行为片段共享的恶意软件特征聚类分析系统,其特征在于,所述恶意软件样本本地聚类模块包括 特性向量距离计算子模块,用于计算任意两个恶意软件样本的特性向量之间的距离,距离越小则两个恶意软件样本之间的相似性越大; 恶意软件样本本地聚类子模块,用于根据恶意软件样本的特性向量之间的距离,采用预先不需要知道聚类数目的聚类算法对各个恶意软件样本进行聚类得到聚类集合; 所述恶意软件样本本地分析模块遍历所述恶意软件样本本地聚类子模块输出的聚类集合中的每一个聚类,提取该聚类内所有恶意软件样本的共同行为作为该聚类的特征,同时统计该聚类内所有恶意软件样本的网络属性以及本地行为属性作为聚类的属性,将所述聚类的特征及属性作为所述恶意软件的分析结果输出。
全文摘要
本发明公开了一种基于行为片段共享的恶意软件特征聚类分析方法及系统,方法包括布置采集分析节点,建立分布式哈希表模块,将采集的恶意软件样本的行为分割为行为片段并存储至分布式哈希表;统计行为片段的全局特性并返回至采集分析节点,采集分析节点构建恶意软件样本的特性向量并进行聚类,提取聚类的特征及属性作为恶意软件的综合分析结果输出;系统包括多个采集分析节点,采集分析节点包括行为片段分割模块、分布式哈希表模块、行为片段协同共享模块、恶意软件样本表征模块、恶意软件样本本地聚类模块、恶意软件样本本地分析模块。本发明具有分析准确性高、分析性能强、可扩展性好的优点。
文档编号G06F21/56GK102968591SQ20121047411
公开日2013年3月13日 申请日期2012年11月21日 优先权日2012年11月21日
发明者王小峰, 陆华彪, 吴纯青, 胡晓峰, 王勇军, 赵峰, 虞万荣, 孙浩, 王雯, 周寰 申请人:中国人民解放军国防科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1