CN102984140B - 基于行为片段共享的恶意软件特征融合分析方法及系统 - Google Patents

基于行为片段共享的恶意软件特征融合分析方法及系统 Download PDF

Info

Publication number
CN102984140B
CN102984140B CN201210473746.5A CN201210473746A CN102984140B CN 102984140 B CN102984140 B CN 102984140B CN 201210473746 A CN201210473746 A CN 201210473746A CN 102984140 B CN102984140 B CN 102984140B
Authority
CN
China
Prior art keywords
behavioural characteristic
behavior
node
source
malware
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201210473746.5A
Other languages
English (en)
Other versions
CN102984140A (zh
Inventor
王小峰
胡晓峰
王勇军
吴纯青
陆华彪
赵峰
虞万荣
孙浩
王雯
周寰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN201210473746.5A priority Critical patent/CN102984140B/zh
Publication of CN102984140A publication Critical patent/CN102984140A/zh
Application granted granted Critical
Publication of CN102984140B publication Critical patent/CN102984140B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种基于行为片段共享的恶意软件特征融合分析方法及系统,方法步骤如下:部署采集分析恶意软件的节点,建立分布式哈希表模块;采集恶意软件样本并分割为片段集合、统计本地统计特性;共享至分布式哈希表模块,聚拢行为片段的全局特性并返回给源节点;源节点计算候选邻居节点集并通过候选邻居节点集的远程节点进行行为特征相似运算构造行为特征邻接关系图;基于行为特征邻接关系图生成融合树并进行融合,将根行为特征输出;装置包括多个节点,节点包括行为特征分割模块、分布式哈希表模块、行为片段协同共享模块、邻居行为特征发现模块和行为特征逐步融合模块。本发明具有分析准确性高、分析性能强、可扩展性好的优点。

Description

基于行为片段共享的恶意软件特征融合分析方法及系统
技术领域
本发明涉及计算机网络安全技术领域,具体涉及一种基于行为片段共享的恶意软件特征融合分析方法及系统。
背景技术
根据国家互联网应急中心互联网安全威胁报告中术语的定义,恶意软件是指在未经授权的情况下,在信息系统中安装、执行以达到不正当目的的程序。恶意软件主要包括:1)特洛伊木马(Trojan Horse),以盗取用户个人信息,甚至是远程控制用户计算机为主要目标的恶意软件。2)僵尸程序,用于构建大规模攻击平台的恶意软件。按照使用的通信协议,僵尸程序可进一步分为:IRC(Internet Relay Chat)僵尸程序、HTTP(Hypertext Transfer Protocol)僵尸程序、P2P(peer-to-peer)僵尸程序等。3)蠕虫,指能自我复制和广泛传播,以占用系统和网络资源为主要目的恶意软件。4)病毒,通过感染计算机文件进行传播,以破坏或篡改用户数据,影响信息系统正常运行为主要目的恶意软件。
恶意软件的检测与分析正变得越来越困难,主要表现在以下三个方面。1)恶意软件数量巨大并且成指数级增长,赛门铁克公司一系列网络安全威胁报告(Symantec Internet SecurityThreat Report)指出目前恶意软件数量巨大并成指数级增长,赛门铁克公司在2011年共发现4亿新的恶意软件样本,平均每天110万。这样巨大的恶意软件样本给恶意软件检测系统如何正确识别、归类、描述恶意软件带来巨大挑战。2)恶意软件的行为呈现出更强的多样性,通过消息加密、变换传播途径、多态等技术,同一种恶意软件的不同样本表现出不同的行为,难以对观察到的恶意软件样本进行正确有效分析。3)恶意软件的样本在空间上广泛分布并且具有很高的隐蔽性,因此单一局域网或企业网能够观察到的同一种恶意软件的样本数目非常有限。由于恶意软件行为的多样性,在样本数目有限的情况下,无法获取恶意软件的本质特征,分析准确性无法保证。因此恶意软件分析系统一般采用分布采集方式覆盖足够多的恶意软件样本。赛门铁克公司的研究人员在网络安全顶级会议SP'11(IEEE Symposium on Securityand Privacy 2011)撰写短文(Benchmarking Computer Security Using WINE)指出该公司在全球部署了24万恶意软件采集节点。
美国国防部定义信息融合为:信息融合是一个组合数据和信息以估计或预测实体(entity)状态的过程。本发明研究分布在网络各地的分析节点间恶意软件分析结果融合是信息融合在网络安全方面的应用,是一类特殊的信息融合。
目前恶意软件攻击采用多种复杂攻击方式,比如将多个样本分布在网络各地的多攻击源分布式攻击和跳板攻击,同时恶意软件广泛分散且行为隐蔽,单个主机和单个网络无法准确判断其恶意性或者全面了解其攻击试图。因此融合分布在各地的信息来准确了解恶意软件本质特性和全局攻击视图成为网络安全研究的热点。早期的研究集中在融合商业入侵检测系统(IDS,Intrusion Detection System)的报警信息来发现多步复杂攻击以及降低入侵检测系统的误报率和提高检测覆盖范围。专利“大规模分布式入侵检测系统的实时数据融合方法”(专利号:03137444.1)提出一种层次性的报警融合体系结构,并采用“聚类-合并-关联”三个步骤实现对报警的逐步融合,聚类是计算入侵检测组件(如IDS、防火墙、病毒检测软件等)输出的报警之间的相异度,将多个相异度小的报警聚合为一个或者多个报警簇,合并是将报警簇变成一个包含该报警簇中的各种代表性信息的中级报警,关联是利用关联规则将多个中级报警关联成一个高级报警,最终为安全管理人员提供简练又信息全面的报警。目前研究人员普遍采用信息融合来检测和分析恶意软件,学者GuofeiGu等在网络安全国际顶级会议Security'08(Proceedings of the 17th USENIX Security Symposium 2008)发表论文“BotMiner:Clustering analysis of network traffic for protocol-and structure-independent botnet detection”融合多个网络区域不同主机的恶意行为(扫描、发送垃圾邮件、二进制代码下载等)与通信网络流量,判断那些在行为上具有相同恶意行为且在通信流量上具有相似且同步内容的主机集为同一僵尸网络的主机。学者Roberto Perdisci等在网络系统国际顶级会议NSDI'10(USENIXSymposium on Networked System Design and Implementation 2010)上发表论文“BehavioralClustering of HTTP-Based Malware and Signature Generation Using Malicious Network Traces”,从分布在网络各地的恶意软件采集节点收集各种基于HTTP通信的恶意软件样本,然后采用集中方式在集中服务器分析这些恶意软件样本的HTTP行为之间相似性,由于生成的URL特征综合了分布在网络各地的各种变形样本的行为特征,因此该URL特征准确捕获了该类恶意软件的HTTP行为的本质特征。可以发现现有采用信息融合检测和分析恶意软件系统一般采用集中式或者层次式结构,集中式结构在集中服务器上处理所有恶意软件样本,层次式结构虽然在中间层进行了一部分功能的处理,但是最后分析结果都送往集中管理节点,恶意软件数量巨大并且成指数级增长,集中式和层次式结构中的集中服务器和集中管理节点都存在计算瓶颈问题。
为此,一些研究采用全分布式结构进行信息融合检测和恶意软件分析,但他们大多只能处理简单或者特定的恶意软件。学者Min Cai等在IEEE学报TDSC 2007(IEEE Transactions onDependable and Secure Computing 2007)发表论文“WormShield:Fast Worm SignatureGeneration with Distributed Fingerprint Aggregation”,提出在边缘网络部署多个检测节点,每个检测节点监测其负责的边缘网络的所有出入流量并从流量中过滤出可以的流量片段提交与其它检测节点进行融合,但它只能检测和提取在传播过程中行为不发生改变的单形蠕虫(monomorphic worm),因为只有同一类单形蠕虫的流量中才会有相同的足够长的流量片段,统计流量片段的全系统特性才有意义。对于采用消息加密、变换传播途径、多态等复杂技术的恶意软件的行为呈现出复杂的多样性,同一类的恶意软件样本之间的行为相差很大,不同样本行为间没有足够长的相同的行为序列。因此现有全分布式分析技术难以从多态的恶意软件行为中挖掘出特征码。
综上所述,为了能够整合恶意软件的网络行为提取出特征码,现有集中式和层次式恶意软件分析系统中的集中服务器或集中管理节点存在计算和通信瓶颈问题,而现有全分布式恶意软件分析技术只能检测和提取在传播过程中行为不发生改变的单形恶意软件,无法应对采用消息加密、变换传播途径、多态等复杂技术的恶意软件。
分布式哈希表(DHT,Distributed Hash Table)通常用于分布式数据存储和检索,具有去中心化、可靠和良好的可扩展性等特性。DHT网络中,每个节点负责一个小范围的路由处理及部分数据对象(data)的存储。DHT的基本原理是将每个数据资源对象表示成一个数据资源对象索引条目(Key,Node)对,Key称为关键字,是资源对象描述信息(如资源名、资源编号、资源内容等)的哈希值,Node是实际存储该资源对象的节点的描述信息(如IP地址、名称等)。所有的数据资源对象索引条目(即所有的(Key,Node)对)组成一个资源对象索引哈希表,只要输入目标资源对象的Key值,就可以从该资源对象索引哈希表中查出存储该资源对象的节点的地址或者其他描述信息。DHT的主要功能是将该资源索引哈希表分布化,将其分割成很多段小块(局部哈希表),然后按照特定的规则把每一块局部哈希表分配到系统中的一个参与节点上,使得每个节点负责维护其中的一块局部哈希表。
发明内容
本发明要解决的技术问题是提供一种分析准确性高、分析性能强、可扩展性好的基于行为片段共享的恶意软件特征融合分析方法及系统。
为了解决上述技术问题,本发明采用的技术方案为:
一种基于行为片段共享的恶意软件特征融合分析方法,实施步骤如下:
1)在网络中分别部署地理位置分散的节点,每一个节点负责一片网络区域中恶意软件样本的采集和分析,在节点中建立用于构建分布式哈希表的分布式哈希表模块;
2)各个节点采集恶意软件样本并分割为长度固定的行为片段集合,统计本地具有所述行为片段集合中各个行为片段行为的本地恶意软件样本数得到行为片段集合的本地统计特性;
3)各个节点将行为片段集合及其本地统计特性发布共享至分布式哈希表,通过分布式哈希表的节点聚拢来自不同节点的相同行为片段并统计聚拢所述行为片段的全局特性,所述行为片段的全局特性包括行为片段、源节点地址、源节点本地具有所述行为片段行为的本地恶意软件样本数的三元对集合,将带有全局特性的行为片段集合返回给共享行为片段集合及其本地统计特性的源节点;
4)所述源节点根据恶意软件的行为片段及其全局特性构成的恶意软件的行为特征计算具有相似行为特征的候选邻居节点集,向候选邻居节点集中的远程节点发送恶意软件对应的源行为特征,候选邻居节点集中的远程节点将收到的源行为特征与本地的目的行为特征比较判断目的行为特征是否为源行为特征的邻居行为特征,将判断结果作为行为特征邻居关系返回源节点,所述源节点根据远程节点返回的行为特征邻居关系构造行为特征邻接关系图;
5)在所述特征邻接关系图的基础上,采用优先选择权值大的边的分布式最小生成树算法根据行为特征的关联边数据结构在邻接关系图上生成行为特征最大相似树作为融合树来实现分布式生成融合树,将所述融合树中的行为特征进行融合,且以行为特征最大相似树为基础决定所述融合树中行为特征的融合顺序使最相似的行为特征优先被融合,将所述融合树的根行为特征作为恶意软件特征融合分析结果输出。
作为本发明基于行为片段共享的恶意软件特征融合分析方法的进一步改进:
所述步骤2)的详细步骤如下:
2.1)将恶意软件样本的行为视为顺序执行的行为序列,从所述顺序执行的行为序列中选择固定长度的连续行为子序列作为分割得到的长度固定的行为片段集合;或者根据恶意软件样本的行为操作数据之间的依赖关系建立行为依赖图,从所述行为依赖图中选择获取固定顶点数目的行为依赖子图作为分割得到的长度固定的行为片段集合;
2.2)统计本地具有所述行为片段集合中各个行为片段行为的本地恶意软件样本数得到行为片段集合的本地统计特性并输出。
所述步骤3)的详细步骤如下:
3.1)各个节点调用分布式哈希表模块得到所述行为片段的关键字值,将所述行为片段及其本地统计特性封装为分布式哈希表消息,然后将所述关键字值和分布式哈希表消息发送给分布式哈希表模块;所述分布式哈希表模块根据关键字值查找负责该关键字值的采集分析节点,并将分布式哈希表消息路由到负责该关键字值的节点进行存储;
3.2)不同节点负责不同行为片段,通过分布式哈希表模块将不同节点的相同行为片段聚拢到同一节点并记录发布行为片段的源节点地址,所述节点通过分布式哈希表模块存储的行为片段及其本地统计特性,根据行为片段及其源节点、源节点本地具有所述行为片段行为的本地恶意软件样本数进行统计全局特性,所述行为片段的全局特性包括行为片段、源节点地址、源节点本地具有所述行为片段行为的本地恶意软件样本数的三元对集合;然后将带有全局特性的行为片段集合发送给源节点地址,源节点地址对应的源节点收到带有全局特性的行为片段集合。
所述步骤4)的详细步骤如下:
4.1)源节点根据恶意软件的行为片段及其全局特性获取每一个本地的恶意软件的行为特征,根据式(1)计算所述行为特征与其它远程节点之间的行为片段共享度,将所述片段共享度大于预设共享度阈值的所有远程节点作为具有相似行为特征的候选邻居节点集;
Share tj = Σ ( Frag s , Node s , Num s ) ∈ FragStatSet Frag s ∈ FragSet t , Node s = Node j log ( Num t + Num s ) log 1 F s ( 1 ≤ t ≤ M i , 1 ≤ j ≤ N , j ≠ i ) - - - ( 1 )
式(1)中,FragStatSet为代表行为片段的全局特性的三元对集合,N为节点数量,Mi为节点i的本地行为特征数量,行为特征t的行为片段集为FragSett,该行为特征t的本地样本数为Numt,(Frags,Nodes,Nums)为FragStatSet中的行为片段为Frags、源节点为Nodes和本地样本数为Nums的三元对,Fs为行为片段为Frags在正常程序的行为中出现的频率,Nodej为远程节点;Sharetj(1≤t≤Mi,1≤j≤N,j≠i)为行为特征t与远程节点Nodej之间的行为片段共享度;
4.2)源节点将本地恶意软件的行为特征作为源行为特征发送给候选邻居节点集中的所有远程节点;
4.3)候选邻居节点集中的远程节点将收到源行为特征与本地的目的行为特征中的共同行为组成融合行为特征,判断所述融合行为特征在正常程序中出现的频率是否小于设定阈值,如果小于则说明源行为特征与目的行为特征的共同行为在正常程序中不常见且是特定于恶意软件的,判定源行为特征与目的行为特征属于同一恶意软件;否则判定源行为特征与目的行为特征不属于同一恶意软件;
4.4)如果通过验证源行为特征与目的行为特征属于同一恶意软件,则远程节点的目的行为特征为源行为特征的邻居行为特征,远程节点将源行为特征编号、目的行为特征的编号、源行为特征与目的行为特征两者的相似度、有邻居行为特征标志位组装成返回消息返回给源行为特征所在源节点,否则远程节点返回给源行为特征所在源节点无邻居行为特征标志位的否定消息;
4.5)所述源节点根据返回的行为特征邻居关系创建行为特征邻接关系图的边,边的权值为两个顶点所代表的两个行为特征之间的相似度,最终构造行为特征邻接关系图;所述创建行为特征邻接关系图的边时采用单向边方式或者双向边方式,当采用单向边方式时:1)当验证远程的源行为特征与本地的目的行为特征为同一恶意软件的行为特征时,在本地的目的行为特征与远程的源行为特征间创建边,添加入本地的关联边数据结构中;2)根据接收远程节点返回的带有邻居行为特征标志位的邻居行为特征消息时,查看本地的关联边数据结构中查看是否已经在关于该消息中源行为特征编号所代表的本地行为特征与消息中目的行为特征编号所代表的远程行为特征间创建了边,如果有,不做任何操作,如果没有则在息中源行为特征编号所代表的本地行为特征与消息中目的行为特征编号所代表的远程行为特征间创建边,添加入本地的关联边数据结构中,最终构建得到特征邻接关系图;当采用双向边方式时,当本地的行为特征邻居关系验证子模块验证远程的源行为特征与本地的目的行为特征为同一恶意软件的行为特征且收到关于该本地的目的行为特征编号及该远程的源行为特征编号的带着有邻居行为特征标志位的邻居行为特征消息时,才在该本地的目的行为特征及该远程的源行为特征间创建边,添加入本地的关联边数据结构中,最终构建得到特征邻接关系图。
所述步骤5)的详细步骤如下:
5.1)所述源节点在所述特征邻接关系图的基础上,采用优先选择权值大的边的分布式最小生成树算法根据行为特征的关联边数据结构在邻接关系图上生成行为特征最大相似树作为融合树,以行为特征最大相似树为基础决定所述融合树中行为特征的融合顺序使最相似的行为特征优先被融合;
5.2)所述源节点为特征邻接关系图中每一个顶点的行为特征单独生成一个进程或者线程作为特征融合代理,或者为特征邻接关系图中所有顶点的行为特征生成一个特征融合代理;所述特征融合代理根据所述融合顺序将包含自身行为特征的融合结果提交给下一层的特征融合代理;收到融合结果的特征融合代理记录接收到所述融合结果的上一层特征融合代理对应特征邻接关系图中的邻接边,查看所述邻接边在所有邻接边中是不是自身行为特征的关联边中的权值最大的边,如果是,则将自身的行为特征和所有收到融合结果进行融合并将融合结果根据所述融合顺序提交给下一层特征融合代理,否则,融合所有收到的融合结果并将融合结果和自身的行为特征根据所述融合顺序提交给下一层特征融合代理,最终融合得到所述融合树的根行为特征;
5.3)将所述融合树的根行为特征作为恶意软件特征融合分析结果输出。
本发明还提供一种基于行为片段共享的恶意软件特征融合分析系统,包括在网络中分别部署地理位置分散的节点,每一个节点负责一片网络区域中恶意软件样本的采集和分析,所述节点包括:
行为特征分割模块,用于节点采集恶意软件样本并分割为长度固定的行为片段集合,统计本地具有所述行为片段集合中各个行为片段行为的本地恶意软件样本数得到行为片段集合的本地统计特性并提交给行为片段协同共享模块;
分布式哈希表模块,用于在节点中建立用于构建分布式哈希表;
行为片段协同共享模块,用于各个节点将行为片段集合及其本地统计特性发布共享至分布式哈希表,通过分布式哈希表的节点聚拢来自不同节点的相同行为片段并统计聚拢所述行为片段的全局特性,所述行为片段的全局特性包括行为片段、源节点地址、源节点本地具有所述行为片段行为的本地恶意软件样本数的三元对集合,将带有全局特性的行为片段集合返回给共享行为片段集合及其本地统计特性的源节点;
邻居行为特征发现模块,用于根据恶意软件的行为片段及其全局特性构成的恶意软件的行为特征计算具有相似行为特征的候选邻居节点集,向候选邻居节点集中的远程节点发送恶意软件对应的源行为特征;同时在节点作为候选邻居节点集中的远程节点时将收到的源行为特征与本地的目的行为特征比较判断目的行为特征是否为源行为特征的邻居行为特征,将判断结果作为行为特征邻居关系返回源节点,根据远程节点返回的行为特征邻居关系构造行为特征邻接关系图;
分布式层次融合树构造模块,用于在所述特征邻接关系图的基础上,采用优先选择权值大的边的分布式最小生成树算法根据行为特征的关联边数据结构在邻接关系图上生成行为特征最大相似树作为融合树来实现分布式生成融合树;
行为特征逐步融合模块,用于将所述融合树中的行为特征进行融合,且以行为特征最大相似树为基础决定所述融合树中行为特征的融合顺序使最相似的行为特征优先被融合,将所述融合树的根行为特征作为恶意软件特征融合分析结果输出。
作为本发明基于行为片段共享的恶意软件特征融合分析系统的进一步改进:
所述行为特征分割模块包括:
连续行为子序列子模块或者行为依赖子图分割子模块,所述连续行为子序列子模块用于将恶意软件样本的行为视为顺序执行的行为序列,从所述顺序执行的行为序列中选择固定长度的连续行为子序列作为分割得到的长度固定的行为片段集合;所述行为依赖子图分割子模块用于根据恶意软件样本的行为操作数据之间的依赖关系建立行为依赖图,从所述行为依赖图中选择获取固定顶点数目的行为依赖子图作为分割得到的长度固定的行为片段集合;
行为片段集合统计子模块,用于统计本地具有所述行为片段集合中各个行为片段行为的本地恶意软件样本数得到行为片段集合的本地统计特性并输出至行为片段协同共享模块。
所述分布式哈希表模块包括:
行为片段关键字映射子模块,用于根据输入的行为片段通过哈希计算获取关键字值;
关键字路由子模块,用于根据关键字值查找负责该关键字值的采集分析节点,并将分布式哈希表消息路由到负责该关键字值的节点进行存储;
所述行为片段协同共享模块包括:
行为片段发布子模块,用于调用分布式哈希表模块得到所述行为片段的关键字值,将所述行为片段及其本地统计特性封装为分布式哈希表消息,然后将所述关键字值和分布式哈希表消息发送给分布式哈希表模块;
行为片段接收子模块,在节点作为分布式统计全局特性的节点时接收分布式哈希表模块存储的行为片段及其本地统计特性;
行为片段统计子模块,用于在节点作为分布式统计全局特性的节点时根据行为片段及其源节点、源节点本地具有所述行为片段行为的本地恶意软件样本数进行统计全局特性,所述行为片段的全局特性包括行为片段、源节点地址、源节点本地具有所述行为片段行为的本地恶意软件样本数的三元对集合;
行为片段全局特性返回子模块,用于在节点作为分布式统计全局特性的节点时将所述行为片段统计子模块输出的带有全局特性的行为片段集合发送给源节点地址;
行为片段全局特性接收子模块,用于在节点作为共享行为片段的源节点时接收所述行为片段全局特性返回子模块发送的带有全局特性的行为片段集合。
所述邻居行为特征发现模块包括:
候选邻居节点集计算子模块,用于根据恶意软件的行为片段及其全局特性获取每一个本地的恶意软件的行为特征,根据式(1)计算所述行为特征与其它远程节点之间的行为片段共享度,将所述片段共享度大于预设共享度阈值的所有远程节点作为具有相似行为特征的候选邻居节点集;
行为特征发送子模块,用于在节点作为源节点时将本地恶意软件的行为特征作为源行为特征发送给候选邻居节点集中的所有远程节点;
行为特征接收子模块,用于在节点作为候选邻居节点集的远程节点时将收源节点发送的源行为特征;
行为特征邻居关系验证子模块,用于将收到源行为特征与本地的目的行为特征中的共同行为组成融合行为特征,判断所述融合行为特征在正常程序中出现的频率是否小于设定阈值,如果小于则说明源行为特征与目的行为特征的共同行为在正常程序中不常见且是特定于恶意软件的,判定源行为特征与目的行为特征属于同一恶意软件;否则判定源行为特征与目的行为特征不属于同一恶意软件;如果通过验证源行为特征与目的行为特征属于同一恶意软件,则远程节点的目的行为特征为源行为特征的邻居行为特征,远程节点将源行为特征编号、目的行为特征的编号、源行为特征与目的行为特征两者的相似度、有邻居行为特征标志位组装成返回消息返回给源行为特征所在源节点,否则远程节点返回给源行为特征所在源节点无邻居行为特征标志位的否定消息;
邻接关系图计算子模块,用于根据返回的行为特征邻居关系创建行为特征邻接关系图的边,边的权值为两个顶点所代表的两个行为特征之间的相似度,最终构造行为特征邻接关系图;所述创建行为特征邻接关系图的边时采用单向边方式或者双向边方式,当采用单向边方式时:1)当验证远程的源行为特征与本地的目的行为特征为同一恶意软件的行为特征时,在本地的目的行为特征与远程的源行为特征间创建边,添加入本地的关联边数据结构中;2)根据接收远程节点返回的带有邻居行为特征标志位的邻居行为特征消息时,查看本地的关联边数据结构中查看是否已经在关于该消息中源行为特征编号所代表的本地行为特征与消息中目的行为特征编号所代表的远程行为特征间创建了边,如果有,不做任何操作,如果没有则在息中源行为特征编号所代表的本地行为特征与消息中目的行为特征编号所代表的远程行为特征间创建边,添加入本地的关联边数据结构中;当采用双向边方式时,当本地的行为特征邻居关系验证子模块验证远程的源行为特征与本地的目的行为特征为同一恶意软件的行为特征且收到关于该本地的目的行为特征编号及该远程的源行为特征编号的带着有邻居行为特征标志位的邻居行为特征消息时,才在该本地的目的行为特征及该远程的源行为特征间创建边,添加入本地的关联边数据结构中;
Share tj = Σ ( Frag s , Node s , Num s ) ∈ FragStatSet Frag s ∈ FragSet t , Node s = Node j log ( Num t + Num s ) log 1 F s ( 1 ≤ t ≤ M i , 1 ≤ j ≤ N , j ≠ i ) - - - ( 1 )
式(1)中,FragStatSet为代表行为片段的全局特性的三元对集合,N为节点数量,Mi为节点i的本地行为特征数量,行为特征t的行为片段集为FragSett,该行为特征t的本地样本数为Numt,(Frags,Nodes,Nums)为FragStatSet中的行为片段为Frags、源节点为Nodes和本地样本数为Nums的三元对,Fs为行为片段为Frags在正常程序的行为中出现的频率,Nodej为远程节点;Sharetj(1≤t≤Mi,1≤j≤N,j≠i)为行为特征t与远程节点Nodej之间的行为片段共享度。
所述分布式层次融合树构造模块包括:
行为特征最大相似树构造子模块,用于在所述特征邻接关系图的基础上,采用优先选择权值大的边的分布式最小生成树算法根据行为特征的关联边数据结构在邻接关系图上生成行为特征最大相似树作为融合树;
行为特征融合顺序构造子模块,用于以行为特征最大相似树为基础决定所述融合树中行为特征的融合顺序使最相似的行为特征优先被融合;
所述行为特征逐步融合模块包括通过进程或者线程的形式分别对应特征邻接关系图中每一个顶点的行为特征的多个特征融合代理或者对应特征邻接关系图中所有顶点的行为特征的一个特征融合代理;
所述特征融合代理包括:
行为特征提交子模块,用于根据所述融合顺序将包含自身行为特征的融合结果提交给下一层的特征融合代理;
行为特征接收子模块,用于接收上一层的特征融合代理提交的融合结果并记录接收到所述融合结果的上一层特征融合代理对应特征邻接关系图中的邻接边;行为特征融合子模块,用于判断所述邻接边在所有邻接边中是不是自身行为特征的关联边中的权值最大的边,如果是,则将自身的行为特征和所有收到融合结果进行融合并将融合结果根据所述融合顺序提交给下一层特征融合代理,否则,融合所有收到的融合结果并将融合结果和自身的行为特征根据所述融合顺序提交给下一层特征融合代理;最终由融合树的根特征融合代理融合得到所述融合树的根行为特征,并将所述融合树的根行为特征作为恶意软件特征融合分析结果输出。
本发明基于行为片段共享的恶意软件特征融合分析方法具有下述优点:由于恶意软件可能利用消息加密和多态等技术,使得同一类恶意软件的不同样本可能具有多样的不同行为特征,但是由于功能和来源的相似性以及通信方式的一致性,同类恶意软件的行为具有相似性,具体表现为同一恶意软件的样本间存在一些行为片段是相同的,因此分布在网络各节点的关于同类恶意软件的样本行为具有相同的一些行为片段,而这些样本行为的共同部分即为恶意软件的特征。本发明基于同类恶意软件不同样本行为特征的这种特性,设计基于行为片段共享的恶意软件特征分布式融合方法,通过行为片段分布信息的共享以及邻居节点的发现机制,可以以很小的网络通信实现可扩展的分布是恶意软件特征融合,通过恶意软件特征邻接关系图,支持多态恶意软件特征按照家族树进行层次融合;另外,本发明的分布层次的特征融合验证技术可以实现更准确的恶意软件特征挖掘;综上所述,本发明具有分析准确性高、分析性能强、可扩展性好的优点。
本发明基于行为片段共享的恶意软件特征融合分析系统为本发明基于行为片段共享的恶意软件特征融合分析方法相对应的系统,具有与本发明基于行为片段共享的恶意软件特征融合分析方法相同的技术效果,在此不再赘述。
附图说明
图1为本发明实施例方法的实施流程示意图。
图2为本发明实施例中节点构成行为片段融合覆盖网的拓扑结构示意图。
图3为本发明实施例中连续行为子序列的分割原理示意图。
图4为本发明实施例中行为依赖子图的分割原理示意图。
图5为本发明实施例系统的框架结构示意图。
图6为本发明实施例中分布式哈希表模块及行为片段协同共享模块的工作原理示意图。
图7为本发明实施例中邻居行为特征发现模块的工作流程示意图。
图8为本发明实施例中分布式层次融合树构造模块的框架结构示意图。
图9为本发明实施例中行为特征逐步融合模块的工作流程示意图。
图10为本发明实施例中节点i中行为特征集采用无管理进程的多进程表示方式示意图。
图11为本发明实施例中节点i中的行为特征集的有管理进程的多进程表示方式示意图。
图12为本发明实施例中行为特征表示中进程的结构示意图。
具体实施方式
如图1所示,本实施例基于行为片段共享的恶意软件特征融合分析方法的实施步骤如下:
1)在网络中分别部署地理位置分散的节点,每一个节点负责一片网络区域中恶意软件样本的采集和分析,在节点中建立用于构建分布式哈希表的分布式哈希表模块;
2)各个节点采集恶意软件样本并分割为长度固定的行为片段集合,统计本地具有行为片段集合中各个行为片段行为的本地恶意软件样本数得到行为片段集合的本地统计特性;
3)各个节点将行为片段集合及其本地统计特性发布共享至分布式哈希表,通过分布式哈希表的节点聚拢来自不同节点的相同行为片段并统计聚拢行为片段的全局特性,将带有全局特性的行为片段集合返回给共享行为片段集合及其本地统计特性的源节点;
4)源节点根据恶意软件的行为片段及其全局特性构成的恶意软件的行为特征计算具有相似行为特征的候选邻居节点集,向候选邻居节点集中的远程节点发送恶意软件对应的源行为特征,候选邻居节点集中的远程节点将收到的源行为特征与本地的目的行为特征比较判断目的行为特征是否为源行为特征的邻居行为特征,将判断结果作为行为特征邻居关系返回源节点,源节点根据远程节点返回的行为特征邻居关系构造行为特征邻接关系图;
5)在特征邻接关系图的基础上分布式生成融合树,将融合树中的行为特征进行融合,将融合树的根行为特征作为恶意软件特征融合分析结果输出。
如图2所示,本实施例包含若干节点,每个节点对其自身采集到的恶意软件样本进行本地分析,本地分析结果包括聚类分析、由同一聚类内的恶意软件样本共同行为组成的行为特征以及本地具有该行为特征的样本数目(简称为行为特征的本地样本数),各节点共同组成“行为片段融合覆盖网”,“行为片段融合覆盖网”由各节点的分布式哈希表模块及行为片段协同共享模块通过网络连接组成。节点将行为特征分割为行为片段集合,然后通过“行为片段融合覆盖网”共享对同一恶意软件的本地分析结果,然后在负责同一恶意软件的节点构造一棵行为特征融合树,理想情况下每一种恶意软件就有一棵融合树与之对应,本实施例根据融合树指定的顺序逐步融合同一恶意软件在不同节点的所有这些本地分析结果,融合过程分为三个阶段:1)邻居行为特征发现阶段;2)构造行为特征融合树阶段;3)融合树获取全局分析结果阶段,最后在融合树的根节点处获得融合树对应恶意软件的全局精确的全局分析结果。由于恶意软件的广泛分散性和极其隐蔽性,恶意软件单点分析系统获取的恶意软件样本信息量少,而恶意软件使用加密、多种攻击途径、多态技术等,使得同一恶意软件的不同样本具有不同的行为,单点分析系统很难从少量恶意软件样本中提取恶意软件的本质特性,分析准确性低;而另一方面,恶意软件数量巨大且成指数级增长,将所有采集到的样本统一提交到集中服务器进行集中处理的分布式采集集中分析系统存在计算和通信瓶颈问题。本实施例基于同类恶意软件不同样本行为特征功能、来源的相似性以及通信方式的一致性,节点通过分布式哈希表实现节点间恶意软件行为片段共享,节点通过恶意软件相似性发现机制发现同类恶意软件的其它节点,进而在发现同类恶意软件的节点集中构建负载均衡的汇聚树,实现恶意软件特征的全局分析和多态特征的层次融合,通过分布式哈希表模块能够有效克服恶意软件采集和分析过程中的计算与通信瓶颈问题,能够检测和提取在传播过程中行为不发生改变的单形恶意软件,而且还能够应对各类采用消息加密、变换传播途径、多态等复杂技术的恶意软件,具有分析准确性高、分析性能强、可扩展性好的优点,既解决了恶意软件单点分析系统获取恶意软件样本信息量少而导致获得的恶意软件特性是非本质的问题,又解决了分布式采集集中分析系统由于恶意软件数目巨大且成指数级增长而造成的计算和通信瓶颈问题,而且兼顾了恶意软件分析的准确性和可扩展性,具有良好的应用前景。
本实施例中,步骤2)的详细步骤如下:2.1)将恶意软件样本的行为视为顺序执行的行为序列,从顺序执行的行为序列中选择固定长度的连续行为子序列作为分割得到的长度固定的行为片段集合;或者根据恶意软件样本的行为操作数据之间的依赖关系建立行为依赖图,从行为依赖图中选择获取固定顶点数目的行为依赖子图作为分割得到的长度固定的行为片段集合;2.2)统计本地具有行为片段集合中各个行为片段行为的本地恶意软件样本数得到行为片段集合的本地统计特性并输出。如图3所示,假设某行为特征具有如下的行为:1)在指定目录下创建复制恶意软件的目的文件的CreateFile行为;2)在注册表中读取指定关键字的注册表条目得到复制恶意软件的源文件路径的ReadRegistry行为;3)将该源文件路径下的恶意软件文件复制到新创建的目的文件的CopyFile行为;4)然后创建新的进程以可执行文件方式运行刚复制的目的文件的RunFile行为;5)之后不同样本有不同的行为,在图中用通配符“*”表示;6)在本地创建套接字接口的CreateSocket行为;7)用创建的套接字接口连接远程服务器的Connect行为;8)用连接好的socket接口与服务器通信的SendMsg行为。假设每个节点产生的本地分析结果不考虑行为之间数据依赖关系的序列行为特征,如图3上半部分所示,将图3所示的序列行为序列经过分割后得到3个长度为3的行为子序列(行为片段)。如图4所示,从行为数据间依赖关系出发,则图3上部分恶意软件的行为依赖图如图4上部分所示:CopyFile依赖于CreateFile创建的目的文件和ReadRegistry输出的源文件路径,RunFile依赖于CopyFile拷贝给目的文件的拷贝内容,Connect依赖于CreateSocket创建的套接字接口,SendMsg依赖于Connect产生的与服务器间的连接。在行为依赖图中,行为片段是顶点数目固定的任意连通子图,如图4下半部分所示经过分割后得到3个长度(顶点数)为3的行为依赖子图(行为片段)。对于分割行为片段集合的具体方式,可根据部署环境和可获得的信息类型来选择。但是,行为依赖图更能精确的表达恶意软件的行为特性,恶意软件即使完成某一特定功能时任意改变没有依赖的行为间的执行顺序,而行为依赖图关注行为操作数据间的依赖关系,在完成相同功能下依赖关系一般不会改变,因此在完成的功能语义不变的情况下,行为依赖图一般不会改变,从而能够提高检测的准确度。
本实施例中,步骤3)的详细步骤如下:3.1)各个节点调用分布式哈希表模块得到行为片段的关键字值,将行为片段及其本地统计特性封装为分布式哈希表消息,然后将关键字值和分布式哈希表消息发送给分布式哈希表模块;分布式哈希表模块根据关键字值查找负责该关键字值的采集分析节点,并将分布式哈希表消息路由到负责该关键字值的节点进行存储;3.2)不同节点负责不同行为片段,通过分布式哈希表模块将不同节点的相同行为片段聚拢到同一节点并记录发布行为片段的源节点地址,节点通过分布式哈希表模块存储的行为片段及其本地统计特性,根据行为片段及其源节点、源节点本地具有行为片段行为的本地恶意软件样本数进行统计全局特性,行为片段的全局特性包括行为片段、源节点地址、源节点本地具有行为片段行为的本地恶意软件样本数的三元对集合;然后将带有全局特性的行为片段集合发送给源节点地址,源节点地址对应的源节点收到带有全局特性的行为片段集合。
本实施例中,步骤4)的详细步骤如下:
4.1)源节点根据恶意软件的行为片段及其全局特性获取每一个本地的恶意软件的行为特征,根据式(1)计算行为特征与其它远程节点之间的行为片段共享度,将片段共享度大于预设共享度阈值的所有远程节点作为具有相似行为特征的候选邻居节点集;
Share tj = Σ ( Frag s , Node s , Num s ) ∈ FragStatSet Frag s ∈ FragSet t , Node s = Node j log ( Num t + Num s ) log 1 F s ( 1 ≤ t ≤ M i , 1 ≤ j ≤ N , j ≠ i ) - - - ( 1 )
式(1)中,FragStatSet为代表行为片段的全局特性的三元对集合,N为节点数量,Mi为节点i的本地行为特征数量,行为特征t的行为片段集为FragSett,该行为特征t的本地样本数为Numt,(Frags,Nodes,Nums)为FragStatSet中的行为片段为Frags、源节点为Nodes和本地样本数为Nums的三元对,Fs为行为片段为Frags在正常程序的行为中出现的频率,Nodej为远程节点;Sharetj(1≤t≤Mi,1≤j≤N,j≠i)为行为特征t与远程节点Nodej之间的行为片段共享度;
4.2)源节点将本地恶意软件的行为特征作为源行为特征发送给候选邻居节点集中的所有远程节点;
4.3)候选邻居节点集中的远程节点将收到源行为特征与本地的目的行为特征中的共同行为组成融合行为特征,判断融合行为特征在正常程序中出现的频率是否小于设定阈值,如果小于则说明源行为特征与目的行为特征的共同行为在正常程序中不常见且是特定于恶意软件的,判定源行为特征与目的行为特征属于同一恶意软件;否则判定源行为特征与目的行为特征不属于同一恶意软件;
4.4)如果通过验证源行为特征与目的行为特征属于同一恶意软件,则远程节点的目的行为特征为源行为特征的邻居行为特征,远程节点将源行为特征编号、目的行为特征的编号、源行为特征与目的行为特征两者的相似度、有邻居行为特征标志位组装成返回消息返回给源行为特征所在源节点,否则远程节点返回给源行为特征所在源节点无邻居行为特征标志位的否定消息;
4.5)源节点根据返回的行为特征邻居关系创建行为特征邻接关系图的边,边的权值为两个顶点所代表的两个行为特征之间的相似度,最终构造行为特征邻接关系图;创建行为特征邻接关系图的边时采用单向边方式或者双向边方式,当采用单向边方式时:1)当验证远程的源行为特征与本地的目的行为特征为同一恶意软件的行为特征时,在本地的目的行为特征与远程的源行为特征间创建边,添加入本地的关联边数据结构中;2)根据接收远程节点返回的带有邻居行为特征标志位的邻居行为特征消息时,查看本地的关联边数据结构中查看是否已经在关于该消息中源行为特征编号所代表的本地行为特征与消息中目的行为特征编号所代表的远程行为特征间创建了边,如果有,不做任何操作,如果没有则在消息中源行为特征编号所代表的本地行为特征与消息中目的行为特征编号所代表的远程行为特征间创建边,添加入本地的关联边数据结构中,最终构建得到特征邻接关系图;当采用双向边方式时,当本地的行为特征邻居关系验证子模块验证远程的源行为特征与本地的目的行为特征为同一恶意软件的行为特征且收到关于该本地的目的行为特征编号及该远程的源行为特征编号的带着有邻居行为特征标志位的邻居行为特征消息时,才在该本地的目的行为特征及该远程的源行为特征间创建边,添加入本地的关联边数据结构中,最终构建得到特征邻接关系图。
本实施例中,步骤5)的详细步骤如下:
5.1)源节点在特征邻接关系图的基础上,采用优先选择权值大的边的分布式最小生成树算法根据行为特征的关联边数据结构在邻接关系图上生成行为特征最大相似树作为融合树,以行为特征最大相似树为基础决定融合树中行为特征的融合顺序使最相似的行为特征优先被融合;
5.2)源节点为特征邻接关系图中每一个顶点的行为特征单独生成一个进程或者线程作为特征融合代理,或者为特征邻接关系图中所有顶点的行为特征生成一个特征融合代理;特征融合代理根据融合顺序将包含自身行为特征的融合结果提交给下一层的特征融合代理;收到融合结果的特征融合代理记录接收到融合结果的上一层特征融合代理对应特征邻接关系图中的邻接边,查看邻接边在所有邻接边中是不是自身行为特征的关联边中的权值最大的边,如果是,则将自身的行为特征和所有收到融合结果进行融合并将融合结果根据融合顺序提交给下一层特征融合代理,否则,融合所有收到的融合结果并将融合结果和自身的行为特征根据融合顺序提交给下一层特征融合代理,最终融合得到融合树的根行为特征;
5.3)将融合树的根行为特征作为恶意软件特征融合分析结果输出。
如图5所示,本实施例基于行为片段共享的恶意软件特征融合分析系统包括在网络中分别部署地理位置分散的节点,每一个节点负责一片网络区域中恶意软件样本的采集和分析,节点包括:
行为特征分割模块,用于节点采集恶意软件样本并分割为长度固定的行为片段集合,统计本地具有行为片段集合中各个行为片段行为的本地恶意软件样本数得到行为片段集合的本地统计特性并提交给行为片段协同共享模块;
分布式哈希表模块,用于在节点中建立用于构建分布式哈希表;
行为片段协同共享模块,用于各个节点将行为片段集合及其本地统计特性发布共享至分布式哈希表,通过分布式哈希表的节点聚拢来自不同节点的相同行为片段并统计聚拢行为片段的全局特性,将带有全局特性的行为片段集合返回给共享行为片段集合及其本地统计特性的源节点;
邻居行为特征发现模块,用于根据恶意软件的行为片段及其全局特性构成的恶意软件的行为特征计算具有相似行为特征的候选邻居节点集,向候选邻居节点集中的远程节点发送恶意软件对应的源行为特征;同时在节点作为候选邻居节点集中的远程节点时将收到的源行为特征与本地的目的行为特征比较判断目的行为特征是否为源行为特征的邻居行为特征,将判断结果作为行为特征邻居关系返回源节点,根据远程节点返回的行为特征邻居关系构造行为特征邻接关系图;
分布式层次融合树构造模块,用于在特征邻接关系图的基础上分布式生成融合树;
行为特征逐步融合模块,用于将融合树中的行为特征进行融合,将融合树的根行为特征作为恶意软件特征融合分析结果输出。
本实施例中,行为特征分割模块包括:
连续行为子序列子模块或者行为依赖子图分割子模块,连续行为子序列子模块用于将恶意软件样本的行为视为顺序执行的行为序列,从顺序执行的行为序列中选择固定长度的连续行为子序列作为分割得到的长度固定的行为片段集合;行为依赖子图分割子模块用于根据恶意软件样本的行为操作数据之间的依赖关系建立行为依赖图,从行为依赖图中选择获取固定顶点数目的行为依赖子图作为分割得到的长度固定的行为片段集合;
行为片段集合统计子模块,用于统计本地具有行为片段集合中各个行为片段行为的本地恶意软件样本数得到行为片段集合的本地统计特性并输出至行为片段协同共享模块。
为了实现全分布式的恶意软件多态行为特征分析,本实施例通过可扩展的分布式哈希表(DHT,Distributed Hash Table)构建分布式分析方法,在网络上部署多个节点,在节点中建立用于构建分布式哈希表的分布式哈希表模块,每个节点的行为片段协同共享模块通过调用分布式哈希表模块的相关功能按着分布式哈希表的方式将该节点本地行为特征的行为片段集合存储到分布式哈希结构中,存储该行为片段集合中的每一个行为片段的具体方法是:以该行为片段为资源名,以行为片段及该行为片段的本地样本数等本地分析结果为内容,采用哈希函数对行为片段(资源名)进行哈希得到该行为片段的关键字值,基于分布式哈希表存储该行为片段的内容到负责该关键字值的目的节点;目的节点在接收并存储该行为片段的内容;根据分布式哈希表的特性,来自不同节点的所有相同行为片段都会路由及存储到同一个目的节点上,因此目的节点拥有了恶意软件本地分析结果分布式融合系统中该行为片段的全局信息。目的节点通过累计相同行为片段的节点地址和该节点关于该行为片段的本地样本数得到全系统具有该行为片段的源节点与本地样本数二元对集合;目的节点将行为片段的源节点与本地样本数二元对加上第三元——对应的行为片段——组成行为片段、源节点和本地样本数三元对集合返回给该三元对集合中所有的源节点;经过上述的发布返回过程,每个节点获得了其自身行为特征的行为片段在恶意软件本地分析结果分布式融合系统中的全局特性(行为片段、源节点和本地样本数三元对集合)。分布式哈希表模块用于支撑行为片段协同共享模块,将行为片段通过哈希之后映射为关键字值,然后根据这个关键字值将行为片段及其本地样本数等本地分析结果路由到负责该关键字值的节点,本实施例中分布式哈希表模块包括:
行为片段关键字映射子模块,用于根据输入的行为片段通过哈希计算获取关键字值;
关键字路由子模块,用于根据关键字值查找负责该关键字值的采集分析节点,并将分布式哈希表消息路由到负责该关键字值的节点进行存储。
行为片段协同共享模块用于负载均衡的、分散的、可扩展的聚拢来自不同节点的相同行为片段并统计聚拢的行为片段的全局特性,全局特性包括全系统中具有该行为片段的节点集合和该行为片段在该节点集合中每个节点上的本地样本数集合,由于节点与本地样本数一一对应,即全局特性包括全系统中具有该行为片段的节点和该节点上具有该行为片段行为的本地恶意软件样本数目(简称为行为片段的本地样本数)二元对集合,加上行为片段本身构成行为片段、源节点地址、源节点本地具有行为片段行为的本地恶意软件样本数的三元对集合。
本实施例中行为片段协同共享模块包括:
行为片段发布子模块,用于调用分布式哈希表模块得到行为片段的关键字值,将行为片段及其本地统计特性封装为分布式哈希表消息,然后将关键字值和分布式哈希表消息发送给分布式哈希表模块;
行为片段接收子模块,在节点作为分布式统计全局特性的节点时接收分布式哈希表模块存储的行为片段及其本地统计特性;
行为片段统计子模块,用于在节点作为分布式统计全局特性的节点时根据行为片段及其源节点、源节点本地具有行为片段行为的本地恶意软件样本数进行统计全局特性,行为片段的全局特性包括行为片段、源节点地址、源节点本地具有行为片段行为的本地恶意软件样本数的三元对集合;
行为片段全局特性返回子模块,用于在节点作为分布式统计全局特性的节点时将行为片段统计子模块输出的带有全局特性的行为片段集合发送给源节点地址;
行为片段全局特性接收子模块,用于在节点作为共享行为片段的源节点时接收行为片段全局特性返回子模块发送的带有全局特性的行为片段集合。
如图6所示,行为片段协同共享模块的工作步骤如下:①、行为片段发布子模块调用分布式哈希表模块的行为片段关键字映射子模块得到行为片段的关键字值,将行为片段及其本地统计特性封装为分布式哈希表消息,然后将关键字值和分布式哈希表消息发送给分布式哈希表模块的关键字路由子模块,通过关键字路由子模块路由发送给负责对应关键字值的节点进行存储;②、负责关键字值的节点分别作为分布式统计全局特性的节点,通过行为片段接收子模块接收分布式哈希表模块存储的各个节点发布所负责关键字值对应的行为片段及其本地统计特性;③、行为片段统计子模块根据行为片段及其源节点、源节点本地具有行为片段行为的本地恶意软件样本数进行统计全局特性,行为片段的全局特性包括行为片段、源节点地址、源节点本地具有行为片段行为的本地恶意软件样本数的三元对集合;④、行为片段全局特性返回子模块跨节点将行为片段统计子模块输出的带有全局特性的行为片段集合发送给源节点地址;行为片段全局特性接收子模块接收行为片段全局特性返回子模块发送的带有全局特性的行为片段集合,最终各个发布行为片段的节点都获取到所发布行为片段的全局属性。行为片段协同共享模块构建在分布式哈希表模块之上,完成按着传统分布式哈希表方式将本地行为特征的行为片段集合路由发送到各自的负责节点,实现来自不同节点的相同行为片段聚拢到同一节点处,不同的行为片段聚拢到不同的节点处,实现负载均衡的、分散的、可扩展的聚拢来自不同节点的相同行为片段;然后在行为片段的聚拢点对行为片段进行全局特性统计;最后将行为片段及其全局特性返回该行为片段的源节点集;最终结果是每个节点都获得了其自身行为特征的行为片段集合在全系统的全局特性,行为片段的全局特性包括全系统的行为片段、源节点和该源节点本地具有该行为片段行为的本地样本数三元对集合。行为片段协同共享模块构建在分布式哈希表模块之上,完成按着传统分布式哈希表方式将本地行为特征的行为片段集合路由发送到负责各行为片段对应关键字值的节点,实现来自不同节点的相同行为片段聚拢到同一节点处,不同的行为片段聚拢到不同的节点处,实现负载均衡的、分散的、可扩展的聚拢来自不同节点的相同行为片段;然后在行为片段的聚拢点对行为片段进行全局特性统计;最后将行为片段及其全局特性返回给行为片段的源节点集;最终结果是每个节点都获得了其自身行为特征的行为片段集合在全系统的全局特性,行为片段的全局特性包括全系统的行为片段、源节点和该源节点本地具有该行为片段行为的本地样本数三元对集合。行为片段协同共享模块包括:行为片段发布子模块、行为片段接收子模块、行为片段统计子模块、行为片段全局特性返回子模块和行为片段全局特性接收子模块。行为片段发布子模块以行为特征分割模块输出的行为片段集合为输入,对于行为片段集合中每一个行为片段做如下处理:首先以该行为片段作为输入调用分布式哈希表模块的行为片段关键字映射子模块得到该行为片段对应的关键字值,将该行为片段及本其本地样本数等本地分析结果组装为分布式哈希表消息以分布式哈希表模块的片段关键字映射子模块返回的关键字值作为路由关键字输入给分布式哈希表模块的关键字路由子模块,由分布式哈希表模块的关键字路由子模块完成将该消息传送到负责该路由关键字的节点,实现聚拢来自不同节点的相同行为片段到负责该相同行为片段对应关键字值的同一节点处。行为片段接收子模块是传统分布式哈希表路由消息接收模块的扩展,该子模块除了传统分布式哈希表路由消息接收功能外还记录发送该消息的源节点地址。行为片段统计子模块以行为片段接收子模块接收的路由消息(包括行为片段及其本地样本数等本地分析结果)和消息发送源节点地址作为输入,通过统计行为片段接收子模块接收的路由消息中行为片段相同的所有路由消息中源节点地址和本地样本数得到全系统具有该行为片段的源节点与本地样本数二元对集合,即行为片段的全局特性。行为片段全局特性返回子模块以行为片段统计子模块输出的行为片段、对应的全局特性以及发布该行为片段的源节点地址集合作为输入,将行为片段及对应的全局特性组装为返回消息,然后通过套接字接口将该返回消息发送给源节点地址集合中的每一个地址。行为片段全局特性接收子模块是一个简单的服务端套接字接口,接收其它节点发送给该服务端套接字接口的返回消息(包括行为片段和对应的全局特性)。恶意软件本地分析结果分布式融合系统中的各个节点的行为片段协同共享模块和分布式哈希表模块协同组成了一个行为片段融合覆盖网,通过源节点发送其自身行为特征的行为片段集合,负责行为片段的对应关键字值的目的节点统计来自不同源节点的相同行为片段的全局特性,然后将行为片段和全局特性返回给源节点,最后所有源节点都获得了其自身行为特征的行为片段集合在全系统中的全局特性。源节点接收到其本地不同行为片段的全局特性,即不同行为片段的源节点与本地样本数二元对集合,为了在后面的模块中统一表述所有行为片段的全局特性,将行为片段的全局特性(源节点与本地样本数二元对集合)中的每一个二元对中加上该行为片段成为行为片段、源节点、本地样本数三元对集合,因此也可以说行为片段协同共享模块获得本地行为片段集合在全系统的行为片段、源节点、本地样本数三元对集合。
邻居行为特征发现模块基于行为片段协同共享模块返回的行为片段的全局特性为每一个本地的行为特征计算候选邻居节点集,然后向候选节点集中的节点发送该行为特征,接收到行为特征(称为源行为特征)的候选节点在本地找到与该行为特征最相似的行为特征(称为目的行为特征),并验证两者是否属于同一恶意软件,如果验证属于同一恶意软件,则目的行为特征是源行为特征的邻居行为特征,否则目的行为特征不是源行为特征的邻居行为特征。
本实施例中邻居行为特征发现模块包括:
候选邻居节点集计算子模块,用于根据恶意软件的行为片段及其全局特性获取每一个本地的恶意软件的行为特征,根据式(1)计算行为特征与其它远程节点之间的行为片段共享度,将片段共享度大于预设共享度阈值的所有远程节点作为具有相似行为特征的候选邻居节点集;
行为特征发送子模块,用于在节点作为源节点时将本地恶意软件的行为特征作为源行为特征发送给候选邻居节点集中的所有远程节点;
行为特征接收子模块,用于在节点作为候选邻居节点集的远程节点时将收源节点发送的源行为特征;
行为特征邻居关系验证子模块用于将收到源行为特征与本地的目的行为特征中的共同行为组成融合行为特征,判断融合行为特征在正常程序中出现的频率是否小于设定阈值,如果小于则说明源行为特征与目的行为特征的共同行为在正常程序中不常见且是特定于恶意软件的,判定源行为特征与目的行为特征属于同一恶意软件;否则判定源行为特征与目的行为特征不属于同一恶意软件;如果通过验证源行为特征与目的行为特征属于同一恶意软件,则远程节点的目的行为特征为源行为特征的邻居行为特征,远程节点将源行为特征编号、目的行为特征的编号、源行为特征与目的行为特征两者的相似度、有邻居行为特征标志位组装成返回消息返回给源行为特征所在源节点,否则远程节点返回给源行为特征所在源节点无邻居行为特征标志位的否定消息
邻接关系图计算子模块,用于根据返回的行为特征邻居关系创建行为特征邻接关系图的边,边的权值为两个顶点所代表的两个行为特征之间的相似度,最终构造行为特征邻接关系图;创建行为特征邻接关系图的边时采用单向边方式或者双向边方式,当采用单向边方式时:1)当验证远程的源行为特征与本地的目的行为特征为同一恶意软件的行为特征时,在本地的目的行为特征与远程的源行为特征间创建边,添加入本地的关联边数据结构中;2)根据接收远程节点返回的带有邻居行为特征标志位的邻居行为特征消息时,查看本地的关联边数据结构中查看是否已经在关于该消息中源行为特征编号所代表的本地行为特征与消息中目的行为特征编号所代表的远程行为特征间创建了边,如果有,不做任何操作,如果没有则在息中源行为特征编号所代表的本地行为特征与消息中目的行为特征编号所代表的远程行为特征间创建边,添加入本地的关联边数据结构中;当采用双向边方式时,当本地的行为特征邻居关系验证子模块验证远程的源行为特征与本地的目的行为特征为同一恶意软件的行为特征且收到关于该本地的目的行为特征编号及该远程的源行为特征编号的带着有邻居行为特征标志位的邻居行为特征消息时,才在该本地的目的行为特征及该远程的源行为特征间创建边,添加入本地的关联边数据结构中;
Share tj = Σ ( Frag s , Node s , Num s ) ∈ FragStatSet Frag s ∈ FragSet t , Node s = Node j log ( Num t + Num s ) log 1 F s ( 1 ≤ t ≤ M i , 1 ≤ j ≤ N , j ≠ i ) - - - ( 1 )
式(1)中,FragStatSet为代表行为片段的全局特性的三元对集合,N为节点数量,Mi为节点i的本地行为特征数量,行为特征t的行为片段集为FragSett,该行为特征t的本地样本数为Numt,(Frags,Nodes,Nums)为FragStatSet中的行为片段为Frags、源节点为Nodes和本地样本数为Nums的三元对,Fs为行为片段为Frags在正常程序的行为中出现的频率,Nodej为远程节点;Sharetj(1≤t≤Mi,1≤j≤N,j≠i)为行为特征t与远程节点Nodej之间的行为片段共享度。
本实施例邻接关系图计算子模块在获取具有相似行为特征的候选邻居节点集时,计算本地行为特征与远程节点的行为片段共享度满足以下原则:1)行为特征与远程节点共享的行为片段、源节点和本地样本数三元对集合中元素越多,行为片段共享度越高;2)行为特征与远程节点共享的行为片段、源节点和本地样本数三元对集合中的本地样本数越大,行为片段共享度值越高;3)行为特征与远程节点共享的行为片段、源节点和本地样本数三元对集合中的行为片段在正常程序行为中出现的频率越低,行为片段共享度值越高。因此,除了上述式(1)以外,还可以根据需要采用其它符合上述原则的候选邻居节点集的相似度计算方法。候选邻居节点集计算子模块根据节点本地的所有行为特征与远程节点的行为片段共享度Sharetj(1≤t≤Mi,1≤j≤N,j≠i)计算一个阈值:根据经验假定行为片段共享度Sharetj(1≤t≤Mi,1≤j≤N,j≠i)服从某一概率分布,比如正态分布,根据区间估计计算本地节点行为特征与远程节点行为片段共享度的一个正常下限区间(下限区间的下限被称为共享度阈值),与行为特征的行为片段共享度大于共享度阈值的所有远程节点即该行为特征的候选邻居节点集。邻居行为特征发现模块基于行为片段协同共享模块返回的本地的行为片段的全局特性为每一个行为特征计算候选邻居节点集,然后向候选节点集中的节点发送对应的行为特征,接收到行为特征(称为源行为特征)的候选节点找到在本地与该行为特征最相似的行为特征(称为目的行为特征),并验证两者是否属于同一恶意软件,如果验证属于同一恶意软件,则目的行为特征是源行为特征的邻居行为特征,否则目的行为特征不是源行为特征的邻居行为特征。
如图7所示,邻居行为特征发现模块采用两阶段邻居行为特征发现方法为本地的每一个行为特征计算远程的邻居行为特征。两阶段邻居行为特征发现方法第一阶段的候选邻居节点计算由候选邻居节点集计算子模块完成,第二阶段的邻居行为特征验证由行为特征发送子模块、行为特征接收子模块、行为特征邻居关系验证子模块完成,而邻接关系图计算子模块则由行为特征的邻居行为特征导出行为特征间的邻接关系图。
第一阶段:候选邻居节点集计算子模块基于行为片段融合覆盖网获得的行为片段、源节点和本地样本数这样的三元对集合计算本地行为特征与远程节点的行为片段共享度。行为特征的行为片段集是指由行为特征分割模块对该行为特征进行分割后得到的行为片段,行为特征的行为片段、源节点和本地样本数三元对集合是指通过行为片段融合覆盖网获得的行为片段、源节点和本地样本数三元对集合中行为片段属于该行为特征的行为片段集中元素的所有行为片段、源节点和本地样本数三元对,行为特征与远程节点共享的行为片段、源节点和本地样本数三元对集合是指行为特征的行为片段、源节点和本地样本数三元对集合中源节点等于该远程节点的所有行为片段、源节点和本地样本数三元对。
第二阶段:特征发送子模块将本地的行为特征发送给由候选邻居节点集计算子模块计算得到的该行为特征的候选邻居节点集中的所有节点。行为特征接收子模块接收其它节点发送给节点的行为特征,在周期内接收到的所有行为特征称为源行为特征集。行为特征邻居关系验证子模块为源行为特征集中的每一个源行为特征在本地的行为特征集中查找最相似的行为特征(称为目的行为特征),然后验证源行为特征与目的行为特征是否是同一恶意软件的行为特征,验证方法可以如下:验证由源行为特征与目的行为特征的共同行为组成的融合行为特征在正常程序中出现的频率是否小于设定阈值,如果小于则说明两者的共同行为在正常程序中不常见、是特定于恶意软件的,则判定两者属于同一恶意软件,否则判定两者不属于同一恶意软件,如果通过验证两者属于同一恶意软件,则目的行为特征为源行为特征的邻居行为特征,并将源行为特征编号、目的行为特征的编号、两者的相似度、有邻居行为特征标志位组装成返回消息返回给源行为特征所在节点,否则返回给源行为特征所在节点无邻居行为特征标志位的否定消息。
邻接关系图计算子模块则由行为特征的邻居行为特征导出行为特征间的邻接关系图。邻接关系图计算子模块接收远程节点返回的关于本地行为特征的邻居行为特征消息,输出的是在邻接关系图中的每一个行为特征的关联边数据结构。邻接关系图是指以系统中参与节点的本地行为特征为顶点,根据行为特征间的邻居关系创建顶点间的边。根据行为特征间的邻居关系创建边有以下两种方式:1)单向边,行为特征A是行为特征B的邻居行为特征或者行为特征B是行为特征A的邻居行为特征,则在代表行为特征A的顶点A与代表行为特征B的顶点B间创建一条边;2)双向边,行为特征A是行为特征B的邻居行为特征而且行为特征B是行为特征A的邻居行为特征,则代表行为特征A的顶点A与代表行为特征B的顶点B间才能创建一条边。边的权值是两顶点代表的两个行为特征间的相似度。邻接关系图计算子模块计算本地行为特征与远程节点的行为特征间的边的也有两种方式。当采用单向边方式时:1)当行为特征邻居关系验证子模块验证远程的源行为特征与本地的目的行为特征为同一恶意软件的行为特征时,在本地的目的行为特征与远程的源行为特征间创建边,添加入本地的关联边数据结构中;2)根据接收远程节点返回的带有邻居行为特征标志位的邻居行为特征消息时,查看本地的关联边数据结构中查看是否已经在关于该消息中源行为特征编号所代表的本地行为特征与消息中目的行为特征编号所代表的远程行为特征间创建了边,如果有,不做任何操作,如果没有则在息中源行为特征编号所代表的本地行为特征与消息中目的行为特征编号所代表的远程行为特征间创建边,添加入本地的关联边数据结构中。当采用双向边方式时,当本地的行为特征邻居关系验证子模块验证远程的源行为特征与本地的目的行为特征为同一恶意软件的行为特征且收到关于该本地的目的行为特征编号及该远程的源行为特征编号的带着有邻居行为特征标志位的邻居行为特征消息时,才在该本地的目的行为特征及该远程的源行为特征间创建边,添加入本地的关联边数据结构中。
分布式层次融合树构造模块基于邻居行为特征发现模块输出的关于本地行为特征的邻居行为特征构造行为特征邻接关系图。在行为特征邻接关系图中,以行为特征为顶点,行为特征与它的邻居行为特征间构造一条边,边的权值为边两端的行为特征间的相似度。在行为特征邻接关系图上分布式生成一些融合树,融合树尽量按层次式融合的方式融合树中顶点代表的行为特征:最相似的行为特征最先被融合,最不相似的行为特征最后被融合。
如图8所示,本实施例中分布式层次融合树构造模块包括:
行为特征最大相似树构造子模块,用于在特征邻接关系图的基础上,采用优先选择权值大的边的分布式最小生成树算法根据行为特征的关联边数据结构在邻接关系图上生成行为特征最大相似树作为融合树;
行为特征融合顺序构造子模块,用于以行为特征最大相似树为基础决定融合树中行为特征的融合顺序使最相似的行为特征优先被融合。
本实施例的分布式层次融合树构造模块首先通过行为特征最大相似树构造子模块完成行为特征最大相似树构造,然后由行为特征融合顺序构造子模块完成行为特征融合顺序构造。
分布式层次融合树构造模块基于邻居行为特征发现模块输出的本地行为特征的邻居行为特征为输入,以行为特征为顶点,本地行为特征与它的邻居行为特征间构造一条边,边的权值为两特征的相似程度,这样在所有行为特征间构造了一幅无向图,在该无向图上分布式生成一些融合树,融合树尽量按层次式融合的方式融合树中顶点代表的行为特征:最相似的行为特征最先被融合,最不相似的行为特征最后被融合。分布式层次融合树构造模块以邻居行为特征发现模块输出邻接关系图中的关于本地行为特征的关联边数据结构为输入,首先在行为特征间生成行为特征最大相似树,然后在最大相似树基础上决定行为特征的融合顺序。每个行为特征运行经典的分布式最小生成树算法MST(算法由发表在ACM Transactions onProgramming Languages and Systems第五卷第一期的论文“A Distributed Algorithm forMinimum-Weight Spanning Trees”详细说明)的修改版:由优先选择权值小的边改为优先选择权值大的边(即最相似行为特征间的边)。修改后的分布式最小生成树算法根据行为特征的关联边数据结构在邻接关系图上生成行为特征最大相似树。以行为特征最大相似树为基础决定行为特征的融合顺序,达到尽可能使最相似的行为特征先融合的层次式融合方式。分布式层次融合树构造模块由行为特征最大相似树构造子模块和行为特征融合顺序构造子模块组成。行为特征最大相似树构造子模块以邻居行为特征发现模块输出邻接关系图中的关于本地行为特征的关联边数据结构为输入,为每个行为特征运行修改后的分布式最小生成树算法MST代理,在邻接关系图上生成行为特征最大相似树,本地的每个行为特征都有相应的行为特征最大相似树与之对应。行为特征融合顺序构造子模块以行为特征最大相似树构造子模块输出的行为特征最大相似树为输入,为每个行为特征运行融合顺序选择代理。融合顺序中的下一层行为特征是指行为特征最大相似树中行为特征需要向其提交自身融合结果进行下一次融合的行为特征。融合顺序选择代理选择下一层行为特征需满足以下原则:1)在没有收到其它行为特征融合结果的边中,权值最大的边的另一端行为特征是下一层行为特征;2)在不满足1)条件的情况下,行为特征最大相似树的父节点是下一层行为特征。每个行为特征根据自身与其它行为特征间边的权值独立选择下一层行为特征,达到分布式逐步融合行为特征,最后在行为特征最大相似树的根节点处融合最大相似树中的所有行为特征得到全局行为特征。
行为特征逐步融合模块根据分布式层次融合树构造模块输出的融合树逐步融合树中的行为特征,最后在融合树的根行为特征(顶点)处得到全局行为特征和其它的一些全局属性。其它的一些全局属性可以包括全系统采集到的感染了该恶意软件的主机地址分布,可用来进一步确认恶意软件的恶意性和扩散范围。行为特征逐步融合模块包括通过进程或者线程的形式分别对应特征邻接关系图中每一个顶点的行为特征的多个特征融合代理或者对应特征邻接关系图中所有顶点的行为特征的一个特征融合代理。特征融合代理也可以采用无管理进程的进程实现,或者采用有管理线程或者无管理线程的线程实现,或者采用单进程事件驱动实现,其实现原理与本实施例相同,在此不再赘述。行为特征逐步融合模块据分布式层次融合树构造模块输出的融合树逐步融合树中的行为特征,最后在融合树的根行为特征(顶点)处得到全局行为特征和其它的一些全局属性,其它的一些全局属性可以包括全系统监测到的感染了该恶意软件样本的主机地址分布,可用来进一步确认恶意软件的恶意性和扩散范围。
本实施例中,特征融合代理包括:
行为特征提交子模块,用于根据融合顺序将包含自身行为特征的融合结果提交给下一层的特征融合代理;
行为特征接收子模块,用于接收上一层的特征融合代理提交的融合结果并记录接收到融合结果的上一层特征融合代理对应特征邻接关系图中的邻接边;行为特征融合子模块,用于判断邻接边在所有邻接边中是不是自身行为特征的关联边中的权值最大的边,如果是,则将自身的行为特征和所有收到融合结果进行融合并将融合结果根据融合顺序提交给下一层特征融合代理,否则,融合所有收到的融合结果并将融合结果和自身的行为特征根据融合顺序提交给下一层特征融合代理;最终由融合树的根特征融合代理融合得到融合树的根行为特征,并将融合树的根行为特征作为恶意软件特征融合分析结果输出。
行为特征逐步融合模块为本地的每一个行为特征运行行为特征融合代理,行为特征融合代理负责将自身的行为特征提交给其下一层行为特征,并接收其对应的行为特征最大相似树中其它行为特征(顶点)提交的行为特征,然后对接收到的和自身的行为特征做融合处理。行为特征逐步融合模块包括行为特征提交子模块、行为特征接收子模块和行为特征融合子模块,每个行为特征的行为特征融合代理都包含了这三个模块的代理。行为特征提交子模块根据分布式层次融合树构造模块输出的自身行为特征的下一层行为特征将自身的融合结果(包括自身的行为特征)提交给下一层行为特征的行为特征逐步融合代理。行为特征接收子模块接收发送给其所在的行为特征逐步融合代理的其它行为特征的融合结果(也是行为特征),并记录接收该融合结果的关联边。行为特征融合子模块以其所在的行为特征逐步融合代理的行为特征接收子模块接收的行为特征和自身行为特征为输入,查看行为特征接收子模块记录的接收的邻接边中是不是自身行为特征的关联边中的权值最大的边,如果有,则融合所有收到的和自身的行为特征,然后将融合结果通过行为特征提交子模块提交给下一层行为特征;否则融合收到的行为特征,然后将融合结果和自身的行为特征通过行为特征提交子模块提交给下一层行为特征。
如图9所示,本实施例行为特征逐步融合模块的工作步骤如下:1.行为特征融合树接收。每个融合代理接收发送给其所在的行为特征逐步融合代理的其它行为特征的融合结果(也是行为特征),并记录接收该融合结果的关联边。2.行为特征融合。以接收的行为特征和自身行为特征为输入,查看上一步中记录的接收结果邻接边中有没有自身行为特征关联边中的权值最大的边,如果有,则融合所有收到的和自身的行为特征,然后将融合结果提交下一步进行行为特征融合树发送;否则融合收到的行为特征,然后将融合结果和自身的行为特征提交下一步进行行为特征融合树发送。3.行为特征融合树提交:根据分布式层次融合树构造模块输出的自身行为特征的下一层行为特征将自身的融合结果(包括自身的行为特征)提交给下一层行为特征的行为特征逐步融合代理。
行为特征逐步融合模块的特征融合代理可根据需要采用进程或者线程的形式分别对应特征邻接关系图中每一个顶点的行为特征的多个特征融合代理的技术方案。如图10所示,分布式层次融合树构造和行为特征融合过程中节点i的行为特征的无管理进程的多进程表示时,假设节点i本地共有M_i个行为特征,每个行为特征创建一个对应的进程并绑定一个套接字接口。行为特征(邻接关系图中的顶点)与远程的行为(邻接关系图中的顶点)之间通过两者之间的套接字接口进行通信。这种表示方式在分布式层次融合树构造和行为特征融合过程之前需要交互行为特征绑定的套接字接口信息;如图11所示,分布式层次融合树构造和行为特征融合过程中节点i的行为特征的有管理进程的多进程表示时,假设节点i本地共有M_i个行为特征。节点i首先创建一个管理进程并绑定一个管理套接字接口。然后管理进程为每一个本地的行为特征生成一个进程并记录进程与行为特征间的对应关系,行为特征(邻接关系图中的顶点)与远程的行为(邻接关系图中的顶点)之间通过对应的管理进程进行通信,由通信消息指示属于哪一个行为特征。管理进程收到通信消息时通过进程间通信方法将该消息发送给该消息指示的行为特征对应的进程。管理进程绑定的管理套接字接口可以是固定的,因此在分布式层次融合树构造和行为特征融合过程之前可以不用交互管理套接字接口信息;如图12所示,本实施例中行为特征多进程表示图10和图11所表示进程的结构中,每个进程具有分布式层次融合树构造模块代理和行为特征逐步融合模块代理,分布式层次融合树构造模块代理完成分布式层次融合树构造模块的功能,行为特征逐步融合模块代理完成行为特征逐步融合模块的功能。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种基于行为片段共享的恶意软件特征融合分析方法,其特征在于实施步骤如下:
1)在网络中分别部署地理位置分散的节点,每一个节点负责一片网络区域中恶意软件样本的采集和分析,在节点中建立用于构建分布式哈希表的分布式哈希表模块;
2)各个节点采集恶意软件样本并分割为长度固定的行为片段集合,统计本地具有所述行为片段集合中各个行为片段行为的本地恶意软件样本数得到行为片段集合的本地统计特性;
3)各个节点将行为片段集合及其本地统计特性发布共享至分布式哈希表,通过分布式哈希表的节点聚拢来自不同节点的相同行为片段并统计聚拢所述行为片段的全局特性,所述行为片段的全局特性包括行为片段、源节点地址、源节点本地具有所述行为片段行为的本地恶意软件样本数的三元对集合,将带有全局特性的行为片段集合返回给共享行为片段集合及其本地统计特性的源节点;
4)所述源节点根据恶意软件的行为片段及其全局特性构成的恶意软件的行为特征计算具有相似行为特征的候选邻居节点集,向候选邻居节点集中的远程节点发送恶意软件对应的源行为特征,候选邻居节点集中的远程节点将收到的源行为特征与本地的目的行为特征比较判断目的行为特征是否为源行为特征的邻居行为特征,将判断结果作为行为特征邻居关系返回源节点,所述源节点根据远程节点返回的行为特征邻居关系构造行为特征邻接关系图;
5)在所述特征邻接关系图的基础上,采用优先选择权值大的边的分布式最小生成树算法根据行为特征的关联边数据结构在邻接关系图上生成行为特征最大相似树作为融合树来实现分布式生成融合树,将所述融合树中的行为特征进行融合,且以行为特征最大相似树为基础决定所述融合树中行为特征的融合顺序使最相似的行为特征优先被融合,将所述融合树的根行为特征作为恶意软件特征融合分析结果输出。
2.根据权利要求1所述的基于行为片段共享的恶意软件特征融合分析方法,其特征在于,所述步骤2)的详细步骤如下:
2.1)将恶意软件样本的行为视为顺序执行的行为序列,从所述顺序执行的行为序列中选择固定长度的连续行为子序列作为分割得到的长度固定的行为片段集合;或者根据恶意软件样本的行为操作数据之间的依赖关系建立行为依赖图,从所述行为依赖图中选择获取固定顶点数目的行为依赖子图作为分割得到的长度固定的行为片段集合;
2.2)统计本地具有所述行为片段集合中各个行为片段行为的本地恶意软件样本数得到行为片段集合的本地统计特性并输出。
3.根据权利要求1所述的基于行为片段共享的恶意软件特征融合分析方法,其特征在于,所述步骤3)的详细步骤如下:
3.1)各个节点调用分布式哈希表模块得到所述行为片段的关键字值,将所述行为片段及其本地统计特性封装为分布式哈希表消息,然后将所述关键字值和分布式哈希表消息发送给分布式哈希表模块;所述分布式哈希表模块根据关键字值查找负责该关键字值的采集分析节点,并将分布式哈希表消息路由到负责该关键字值的节点进行存储;
3.2)不同节点负责不同行为片段,通过分布式哈希表模块将不同节点的相同行为片段聚拢到同一节点并记录发布行为片段的源节点地址,所述节点通过分布式哈希表模块存储的行为片段及其本地统计特性,根据行为片段及其源节点、源节点本地具有所述行为片段行为的本地恶意软件样本数进行统计全局特性,所述行为片段的全局特性包括行为片段、源节点地址、源节点本地具有所述行为片段行为的本地恶意软件样本数的三元对集合;然后将带有全局特性的行为片段集合发送给源节点地址,源节点地址对应的源节点收到带有全局特性的行为片段集合。
4.根据权利要求1或2或3所述的基于行为片段共享的恶意软件特征融合分析方法,其特征在于,所述步骤4)的详细步骤如下:
4.1)源节点根据恶意软件的行为片段及其全局特性获取每一个本地的恶意软件的行为特征,根据式(1)计算所述行为特征与其它远程节点之间的行为片段共享度,将所述片段共享度大于预设共享度阈值的所有远程节点作为具有相似行为特征的候选邻居节点集;
Share tj = Σ ( Frag s , Node s , Num s ) ∈ FragStatSet Frag s ∈ FragSet t , Node s = Node j log ( Num t + Num s ) log 1 F s ( 1 ≤ t ≤ M i , 1 ≤ j ≤ N , j ≠ i ) - - - ( 1 )
式(1)中,FragStatSet为代表行为片段的全局特性的三元对集合,N为节点数量,Mi为节点i的本地行为特征数量,行为特征t的行为片段集为FragSett,该行为特征t的本地样本数为Numt,(Frags,Nodes,Nums)为FragStatSet中的行为片段为Frags、源节点为Nodes和本地样本数为Nums的三元对,Fs为行为片段为Frags在正常程序的行为中出现的频率,Nodej为远程节点;Sharetj(1≤t≤Mi,1≤j≤N,j≠i)为行为特征t与远程节点Nodej之间的行为片段共享度;
4.2)源节点将本地恶意软件的行为特征作为源行为特征发送给候选邻居节点集中的所有远程节点;
4.3)候选邻居节点集中的远程节点将收到源行为特征与本地的目的行为特征中的共同行为组成融合行为特征,判断所述融合行为特征在正常程序中出现的频率是否小于设定阈值,如果小于则说明源行为特征与目的行为特征的共同行为在正常程序中不常见且是特定于恶意软件的,判定源行为特征与目的行为特征属于同一恶意软件;否则判定源行为特征与目的行为特征不属于同一恶意软件;
4.4)如果通过验证源行为特征与目的行为特征属于同一恶意软件,则远程节点的目的行为特征为源行为特征的邻居行为特征,远程节点将源行为特征编号、目的行为特征的编号、源行为特征与目的行为特征两者的相似度、有邻居行为特征标志位组装成返回消息返回给源行为特征所在源节点,否则远程节点返回给源行为特征所在源节点无邻居行为特征标志位的否定消息;
4.5)所述源节点根据返回的行为特征邻居关系创建行为特征邻接关系图的边,边的权值为两个顶点所代表的两个行为特征之间的相似度,最终构造行为特征邻接关系图;所述创建行为特征邻接关系图的边时采用单向边方式或者双向边方式,当采用单向边方式时:1)当验证远程的源行为特征与本地的目的行为特征为同一恶意软件的行为特征时,在本地的目的行为特征与远程的源行为特征间创建边,添加入本地的关联边数据结构中;2)根据接收远程节点返回的带有邻居行为特征标志位的邻居行为特征消息时,查看本地的关联边数据结构中查看是否已经在关于该消息中源行为特征编号所代表的本地行为特征与消息中目的行为特征编号所代表的远程行为特征间创建了边,如果有,不做任何操作,如果没有则在息中源行为特征编号所代表的本地行为特征与消息中目的行为特征编号所代表的远程行为特征间创建边,添加入本地的关联边数据结构中,最终构建得到特征邻接关系图;当采用双向边方式时,当本地的行为特征邻居关系验证子模块验证远程的源行为特征与本地的目的行为特征为同一恶意软件的行为特征且收到关于该本地的目的行为特征编号及该远程的源行为特征编号的带着有邻居行为特征标志位的邻居行为特征消息时,才在该本地的目的行为特征及该远程的源行为特征间创建边,添加入本地的关联边数据结构中,最终构建得到特征邻接关系图。
5.根据权利要求4所述的基于行为片段共享的恶意软件特征融合分析方法,其特征在于,所述步骤5)的详细步骤如下:
5.1)所述源节点在所述特征邻接关系图的基础上,采用优先选择权值大的边的分布式最小生成树算法根据行为特征的关联边数据结构在邻接关系图上生成行为特征最大相似树作为融合树,以行为特征最大相似树为基础决定所述融合树中行为特征的融合顺序使最相似的行为特征优先被融合;
5.2)所述源节点为特征邻接关系图中每一个顶点的行为特征单独生成一个进程或者线程作为特征融合代理,或者为特征邻接关系图中所有顶点的行为特征生成一个特征融合代理;所述特征融合代理根据所述融合顺序将包含自身行为特征的融合结果提交给下一层的特征融合代理;收到融合结果的特征融合代理记录接收到所述融合结果的上一层特征融合代理对应特征邻接关系图中的邻接边,查看所述邻接边在所有邻接边中是不是自身行为特征的关联边中的权值最大的边,如果是,则将自身的行为特征和所有收到融合结果进行融合并将融合结果根据所述融合顺序提交给下一层特征融合代理,否则,融合所有收到的融合结果并将融合结果和自身的行为特征根据所述融合顺序提交给下一层特征融合代理,最终融合得到所述融合树的根行为特征;
5.3)将所述融合树的根行为特征作为恶意软件特征融合分析结果输出。
6.一种基于行为片段共享的恶意软件特征融合分析系统,其特征在于,包括在网络中分别部署地理位置分散的节点,每一个节点负责一片网络区域中恶意软件样本的采集和分析,所述节点包括:
行为特征分割模块,用于节点采集恶意软件样本并分割为长度固定的行为片段集合,统计本地具有所述行为片段集合中各个行为片段行为的本地恶意软件样本数得到行为片段集合的本地统计特性并提交给行为片段协同共享模块;
分布式哈希表模块,用于在节点中建立用于构建分布式哈希表;
行为片段协同共享模块,用于各个节点将行为片段集合及其本地统计特性发布共享至分布式哈希表,通过分布式哈希表的节点聚拢来自不同节点的相同行为片段并统计聚拢所述行为片段的全局特性,所述行为片段的全局特性包括行为片段、源节点地址、源节点本地具有所述行为片段行为的本地恶意软件样本数的三元对集合,将带有全局特性的行为片段集合返回给共享行为片段集合及其本地统计特性的源节点;
邻居行为特征发现模块,用于根据恶意软件的行为片段及其全局特性构成的恶意软件的行为特征计算具有相似行为特征的候选邻居节点集,向候选邻居节点集中的远程节点发送恶意软件对应的源行为特征;同时在节点作为候选邻居节点集中的远程节点时将收到的源行为特征与本地的目的行为特征比较判断目的行为特征是否为源行为特征的邻居行为特征,将判断结果作为行为特征邻居关系返回源节点,根据远程节点返回的行为特征邻居关系构造行为特征邻接关系图;
分布式层次融合树构造模块,用于在所述特征邻接关系图的基础上,采用优先选择权值大的边的分布式最小生成树算法根据行为特征的关联边数据结构在邻接关系图上生成行为特征最大相似树作为融合树来实现分布式生成融合树;
行为特征逐步融合模块,用于将所述融合树中的行为特征进行融合,且以行为特征最大相似树为基础决定所述融合树中行为特征的融合顺序使最相似的行为特征优先被融合,将所述融合树的根行为特征作为恶意软件特征融合分析结果输出。
7.根据权利要求6所述的基于行为片段共享的恶意软件特征融合分析系统,其特征在于,所述行为特征分割模块包括:
连续行为子序列子模块或者行为依赖子图分割子模块,所述连续行为子序列子模块用于将恶意软件样本的行为视为顺序执行的行为序列,从所述顺序执行的行为序列中选择固定长度的连续行为子序列作为分割得到的长度固定的行为片段集合;所述行为依赖子图分割子模块用于根据恶意软件样本的行为操作数据之间的依赖关系建立行为依赖图,从所述行为依赖图中选择获取固定顶点数目的行为依赖子图作为分割得到的长度固定的行为片段集合;
行为片段集合统计子模块,用于统计本地具有所述行为片段集合中各个行为片段行为的本地恶意软件样本数得到行为片段集合的本地统计特性并输出至行为片段协同共享模块。
8.根据权利要求6所述的基于行为片段共享的恶意软件特征融合分析系统,其特征在于,所述分布式哈希表模块包括:
行为片段关键字映射子模块,用于根据输入的行为片段通过哈希计算获取关键字值;
关键字路由子模块,用于根据关键字值查找负责该关键字值的采集分析节点,并将分布式哈希表消息路由到负责该关键字值的节点进行存储;
所述行为片段协同共享模块包括:
行为片段发布子模块,用于调用分布式哈希表模块得到所述行为片段的关键字值,将所述行为片段及其本地统计特性封装为分布式哈希表消息,然后将所述关键字值和分布式哈希表消息发送给分布式哈希表模块;
行为片段接收子模块,在节点作为分布式统计全局特性的节点时接收分布式哈希表模块存储的行为片段及其本地统计特性;
行为片段统计子模块,用于在节点作为分布式统计全局特性的节点时根据行为片段及其源节点、源节点本地具有所述行为片段行为的本地恶意软件样本数进行统计全局特性,所述行为片段的全局特性包括行为片段、源节点地址、源节点本地具有所述行为片段行为的本地恶意软件样本数的三元对集合;
行为片段全局特性返回子模块,用于在节点作为分布式统计全局特性的节点时将所述行为片段统计子模块输出的带有全局特性的行为片段集合发送给源节点地址;
行为片段全局特性接收子模块,用于在节点作为共享行为片段的源节点时接收所述行为片段全局特性返回子模块发送的带有全局特性的行为片段集合。
9.根据权利要求6或7或8所述的基于行为片段共享的恶意软件特征融合分析系统,其特征在于,所述邻居行为特征发现模块包括:
候选邻居节点集计算子模块,用于根据恶意软件的行为片段及其全局特性获取每一个本地的恶意软件的行为特征,根据式(1)计算所述行为特征与其它远程节点之间的行为片段共享度,将所述片段共享度大于预设共享度阈值的所有远程节点作为具有相似行为特征的候选邻居节点集;
行为特征发送子模块,用于在节点作为源节点时将本地恶意软件的行为特征作为源行为特征发送给候选邻居节点集中的所有远程节点;
行为特征接收子模块,用于在节点作为候选邻居节点集的远程节点时将收源节点发送的源行为特征;
行为特征邻居关系验证子模块,用于将收到源行为特征与本地的目的行为特征中的共同行为组成融合行为特征,判断所述融合行为特征在正常程序中出现的频率是否小于设定阈值,如果小于则说明源行为特征与目的行为特征的共同行为在正常程序中不常见且是特定于恶意软件的,判定源行为特征与目的行为特征属于同一恶意软件;否则判定源行为特征与目的行为特征不属于同一恶意软件;如果通过验证源行为特征与目的行为特征属于同一恶意软件,则远程节点的目的行为特征为源行为特征的邻居行为特征,远程节点将源行为特征编号、目的行为特征的编号、源行为特征与目的行为特征两者的相似度、有邻居行为特征标志位组装成返回消息返回给源行为特征所在源节点,否则远程节点返回给源行为特征所在源节点无邻居行为特征标志位的否定消息;
邻接关系图计算子模块,用于根据返回的行为特征邻居关系创建行为特征邻接关系图的边,边的权值为两个顶点所代表的两个行为特征之间的相似度,最终构造行为特征邻接关系图;所述创建行为特征邻接关系图的边时采用单向边方式或者双向边方式,当采用单向边方式时:1)当验证远程的源行为特征与本地的目的行为特征为同一恶意软件的行为特征时,在本地的目的行为特征与远程的源行为特征间创建边,添加入本地的关联边数据结构中;2)根据接收远程节点返回的带有邻居行为特征标志位的邻居行为特征消息时,查看本地的关联边数据结构中查看是否已经在关于该消息中源行为特征编号所代表的本地行为特征与消息中目的行为特征编号所代表的远程行为特征间创建了边,如果有,不做任何操作,如果没有则在息中源行为特征编号所代表的本地行为特征与消息中目的行为特征编号所代表的远程行为特征间创建边,添加入本地的关联边数据结构中;当采用双向边方式时,当本地的行为特征邻居关系验证子模块验证远程的源行为特征与本地的目的行为特征为同一恶意软件的行为特征且收到关于该本地的目的行为特征编号及该远程的源行为特征编号的带着有邻居行为特征标志位的邻居行为特征消息时,才在该本地的目的行为特征及该远程的源行为特征间创建边,添加入本地的关联边数据结构中;
Share tj = Σ ( Frag s , Node s , Num s ) ∈ FragStatSet Frag s ∈ FragSet t , Node s = Node j log ( Num t + Num s ) log 1 F s ( 1 ≤ t ≤ M i , 1 ≤ j ≤ N , j ≠ i ) - - - ( 1 )
式(1)中,FragStatSet为代表行为片段的全局特性的三元对集合,N为节点数量,Mi为节点i的本地行为特征数量,行为特征t的行为片段集为FragSett,该行为特征t的本地样本数为Numt,(Frags,Nodes,Nums)为FragStatSet中的行为片段为Frags、源节点为Nodes和本地样本数为Nums的三元对,Fs为行为片段为Frags在正常程序的行为中出现的频率,Nodej为远程节点;Sharetj(1≤t≤Mi,1≤j≤N,j≠i)为行为特征t与远程节点Nodej之间的行为片段共享度。
10.根据权利要求9所述的基于行为片段共享的恶意软件特征融合分析系统,其特征在于,所述分布式层次融合树构造模块包括:
行为特征最大相似树构造子模块,用于在所述特征邻接关系图的基础上,采用优先选择权值大的边的分布式最小生成树算法根据行为特征的关联边数据结构在邻接关系图上生成行为特征最大相似树作为融合树;
行为特征融合顺序构造子模块,用于以行为特征最大相似树为基础决定所述融合树中行为特征的融合顺序使最相似的行为特征优先被融合;
所述行为特征逐步融合模块包括通过进程或者线程的形式分别对应特征邻接关系图中每一个顶点的行为特征的多个特征融合代理或者对应特征邻接关系图中所有顶点的行为特征的一个特征融合代理;
所述特征融合代理包括:
行为特征提交子模块,用于根据所述融合顺序将包含自身行为特征的融合结果提交给下一层的特征融合代理;
行为特征接收子模块,用于接收上一层的特征融合代理提交的融合结果并记录接收到所述融合结果的上一层特征融合代理对应特征邻接关系图中的邻接边;
行为特征融合子模块,用于判断所述邻接边在所有邻接边中是不是自身行为特征的关联边中的权值最大的边,如果是,则将自身的行为特征和所有收到融合结果进行融合并将融合结果根据所述融合顺序提交给下一层特征融合代理,否则,融合所有收到的融合结果并将融合结果和自身的行为特征根据所述融合顺序提交给下一层特征融合代理;最终由融合树的根特征融合代理融合得到所述融合树的根行为特征,并将所述融合树的根行为特征作为恶意软件特征融合分析结果输出。
CN201210473746.5A 2012-11-21 2012-11-21 基于行为片段共享的恶意软件特征融合分析方法及系统 Active CN102984140B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210473746.5A CN102984140B (zh) 2012-11-21 2012-11-21 基于行为片段共享的恶意软件特征融合分析方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210473746.5A CN102984140B (zh) 2012-11-21 2012-11-21 基于行为片段共享的恶意软件特征融合分析方法及系统

Publications (2)

Publication Number Publication Date
CN102984140A CN102984140A (zh) 2013-03-20
CN102984140B true CN102984140B (zh) 2015-06-17

Family

ID=47857886

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210473746.5A Active CN102984140B (zh) 2012-11-21 2012-11-21 基于行为片段共享的恶意软件特征融合分析方法及系统

Country Status (1)

Country Link
CN (1) CN102984140B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3367288A4 (en) * 2015-11-30 2019-05-01 Nippon Telegraph And Telephone Corporation CLASSIFICATION METHOD, CLASSIFICATION DEVICE AND CLASSIFICATION PROGRAM

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103810427B (zh) * 2014-02-20 2016-09-21 中国科学院信息工程研究所 一种恶意代码隐藏行为挖掘方法及系统
CN104134040B (zh) * 2014-07-25 2017-03-29 中国人民解放军信息工程大学 一种基于信息融合的二进制恶意代码威胁性评估方法
CN104836804B (zh) * 2015-04-30 2018-02-02 大连理工大学 一种基于FP‑outlier挖掘的P2P恶意节点检测方法
US10089465B2 (en) * 2015-07-24 2018-10-02 Bitdefender IPR Management Ltd. Systems and methods for tracking malicious behavior across multiple software entities
US11556650B2 (en) 2019-04-30 2023-01-17 International Business Machines Corporation Methods and systems for preventing utilization of problematic software
US11570193B2 (en) * 2019-09-20 2023-01-31 Vmware, Inc. Malware propagation risk assessment in software defined networks
CN111967607B (zh) * 2020-07-31 2023-09-01 中国科学院深圳先进技术研究院 模型训练方法和装置、电子设备及机器可读存储介质
CN112380530B (zh) * 2020-11-26 2022-07-15 厦门市美亚柏科信息股份有限公司 一种同源apk检测方法、终端设备及存储介质
CN116074322B (zh) * 2023-04-06 2023-06-02 中国人民解放军国防科技大学 基于智能消息分割的高吞吐任务调度方法、系统及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1472916A (zh) * 2003-06-24 2004-02-04 北京邮电大学 大规模分布式入侵检测系统的数据融合机制
CN101719842A (zh) * 2009-11-20 2010-06-02 中国科学院软件研究所 一种基于云计算环境的分布式网络安全预警方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8826438B2 (en) * 2010-01-19 2014-09-02 Damballa, Inc. Method and system for network-based detecting of malware from behavioral clustering

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1472916A (zh) * 2003-06-24 2004-02-04 北京邮电大学 大规模分布式入侵检测系统的数据融合机制
CN101719842A (zh) * 2009-11-20 2010-06-02 中国科学院软件研究所 一种基于云计算环境的分布式网络安全预警方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
A distributed algorithm for minimum-weight spanning trees;R.G.GALLAGER 等;《ACM Transactions on Programming Languages and Systems》;19830131;第5卷(第1期);第66-77页 *
WormShield Fast Worm Signature Generation with Distributed Fingerprint Aggregation;Min Cai 等;《IEEE Transactions on Dependable and Secure Computing》;20070531;第4卷(第2期);第88-104页 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3367288A4 (en) * 2015-11-30 2019-05-01 Nippon Telegraph And Telephone Corporation CLASSIFICATION METHOD, CLASSIFICATION DEVICE AND CLASSIFICATION PROGRAM

Also Published As

Publication number Publication date
CN102984140A (zh) 2013-03-20

Similar Documents

Publication Publication Date Title
CN102984140B (zh) 基于行为片段共享的恶意软件特征融合分析方法及系统
US11575693B1 (en) Composite relationship graph for network security
CN102968591B (zh) 基于行为片段共享的恶意软件特征聚类分析方法及系统
Kholidy Correlation‐based sequence alignment models for detecting masquerades in cloud computing
CN112073437B (zh) 多维度的安全威胁事件分析方法、装置、设备及存储介质
CN111224981A (zh) 一种数据处理方法、装置、电子设备及存储介质
kaur Kang et al. An implementation of hierarchical intrusion detection systems using snort and federated databases

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant