CN110110177B - 一种基于图的恶意软件家族聚类评估方法及装置 - Google Patents
一种基于图的恶意软件家族聚类评估方法及装置 Download PDFInfo
- Publication number
- CN110110177B CN110110177B CN201910283745.6A CN201910283745A CN110110177B CN 110110177 B CN110110177 B CN 110110177B CN 201910283745 A CN201910283745 A CN 201910283745A CN 110110177 B CN110110177 B CN 110110177B
- Authority
- CN
- China
- Prior art keywords
- malware
- family
- node
- malicious software
- graph
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/906—Clustering; Classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Databases & Information Systems (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及恶意软件家族聚类评估技术领域,公开一种基于图的恶意软件家族聚类评估方法及装置;所述方法包括:步骤1:提取恶意软件样本的标签信息;步骤2:基于提取的恶意软件样本的标签信息构建恶意软件关系图;步骤3:利用虚拟节点对恶意软件关系图进行改进;步骤4:通过Fast Newman算法将改进后的恶意软件关系图划分为多个聚簇,利用模块化的方法对划分后的聚簇进行评估;所述装置包括提取模块、构建模块、改进模块及评估模块。本发明可对恶意软件家族的聚类结果进行评估。
Description
技术领域
本发明涉及恶意软件家族聚类评估技术领域,尤其涉及一种基于图的恶意软件家族聚类评估方法及装置。
背景技术
近年来,严重的恶意软件攻击层出不穷,给世界带来了巨大的损失。乌克兰电力、采矿和铁路系统严重受到KillDisk和BlackEnergy感染。僵尸网络Mirai导致美国网络瘫痪。来自ATP28和APT29的系列APT工具甚至可以影响美国的总统选举,但到目前为止,仍然没有断然的证据可以找出犯罪集团。最著名的勒索软件WannaCry感染了全世界成千上万的电脑。每年都会产生数以百万计的多态和复杂恶意软件样本,然而现有的反病毒(Anti-Virus)引擎难以抵制。Anti-Virus公司的报告显示,2014年检测到的恶意软件样本数量为3.24亿,并且每天受感染计算机的平均数量在2-5百万之间。
为了减少恶意软件分析的工作量,研究人员尝试在恶意软件自动分类中引入聚类算法。恶意软件聚类分析可以帮助分析人员发现恶意软件样本的关系,还可以为追踪源提供自信的证据,甚至可以帮助推断出犯罪黑客群体。近年来,恶意软件家族聚类和分类是研究的热点。许多研究人员通过提取的功能对恶意软件样本进行聚类,例如动态沙箱收集的行为信息,元数据或静态分析反汇编信息。
然而,恶意软件聚类算法的评估标准仍难以达成共识。标定过的真实有效数据的生产过程经常被忽略,因为它不是许多聚类研究中的核心内容。目前,大多数研究人员使用反病毒(Anti-Virus)产品标签,即恶意软件样本的标签信息,来说明事实。然而,不同Anti-Virus产品的标签机制通常是不一致的。在生产过程中,大多数研究人员使用多数基于投票的机制来决定哪些样本应该划分为相同的种类。2016年发布的开源工具AVClass仍然基于这种机制。Li等人(Li,P.,Liu,L.,Gao,D.,Reiter,M.K.:On challenges in evaluatingmalware clustering.In:Jha,S.,Sommer,R.,Kreibich,C.(eds.)RAID 2010.LNCS,vol.6307,pp.238–255.Springer,Heidelberg(2010))指出,制作测试集时可能会放弃恶意软件样本的标签信息不一致的样本,但是此样本可能是要评估聚类模型的重要样本。不同的Anti-Virus软件可能有不同的恶意软件系列定义标准,这将严重影响投票机制的有效性。另一种方法是通过构建像VAMO这样的恶意软件样本的标签信息的图来检测样本的关系,但VAMO需要维护一个大型数据库,以保证图中边缘权重的准确性。
静态分析是分析恶意软件样本的传统技术,需要在运行时提取样本的特征。Tamersoy等人(Tamersoy,A.,Roundy,K.,Chau,D.H.:Guilt by association:large scalemalware detection by mining file-relation graphs.In:Proceedings of the 20thACM SIGKDDInternational Conference on Knowledge Discovery and Data Mining,pp.1524–1533.ACM(2014))介绍了一个基于文件相似性分析挖掘文件关系图的大规模恶意软件检测方法。Drew等人(Drew,J.,Moore,T.,Hahsler,M.:Polymorphic malwaredetection using sequence classification methods.In:2016IEEE Security andPrivacy Workshops(SPW),pp.81–87.IEEE(2016))使用本地敏感哈希进行文件摘要,并在物理层面分析文件之间的相似性,但不分析语义。但混淆技术是静态分析发展的障碍。近年来,动态分析是恶意软件检测研究的热门话题。Xu等人(Xu,Z.,Zhang,J.,Gu,G.,Lin,Z.:GoldenEye:efficiently and effectively unveiling malware’s targetedenvironment.In:Stavrou,A.,Bos,H.,Portokalidis,G.(eds.)RAID 2014.LNCS,vol.8688,pp.22–45.Springer,Cham(2014))实现了一个原型系统GOLDENEYE,它具有很高的成功率,高速度和很少的内存,可以动态地跟踪恶意软件在正确环境中的行为。Spensky等人(Spensky,C.,Hu,H.,Leach,K.:LO-PHI:low-observable physical hostinstrumentation for malware analysis.In:Network and Distributed SystemSecurity Symposium(2016))开发了一个低级框架,用于使用基于硬件的仪器执行自动二进制分析。虽然动态分析擅长绕过混淆和包装,但分析非常耗时。现在,研究人员开始将注意力转向内容不可知分析,即在真实的环境下追踪恶意软件样本并不在沙箱中运行它们。
恶意软件分析一直是一个持久而热门的研究领域。研究人员提出了各种分析技术来检测和分类恶意软件样本并应用于Anti-Virus软件,从而导致Anti-Virus软件的不同检测机制。基于这些不同技术的恶意软件样本的提取特征被用于恶意软件家族聚类以发现它们之间的关系,这些方法基于不同的恶意软件功能,并使用不同的聚类模型,这可能会导致不同的结果,恶意软件聚类的评估标准很难达到一致的水平。应提出客观有效的恶意软件聚类评估模型。
发明内容
本发明针对不同杀毒软件的恶意软件样本聚类评估标准不一致的问题,提供一种基于图的恶意软件家族聚类评估方法及装置。
为了实现上述目的,本发明采用以下技术方案:
一种基于图的恶意软件家族聚类评估方法,包括以下步骤:
步骤1:提取恶意软件样本的标签信息;
步骤2:基于提取的恶意软件样本的标签信息构建恶意软件关系图;
步骤3:利用虚拟节点对恶意软件关系图进行改进;
步骤4:通过Fast Newman算法将改进后的恶意软件关系图划分为多个聚簇,利用模块化的方法对划分后的聚簇进行评估。
进一步地,所述恶意软件样本的标签信息包括恶意类型、家族名及变体名称。
进一步地,所述步骤1具体为:
步骤1.1:选择若干个杀毒软件;
步骤1.2:获取所述杀毒软件的扫描信息;
步骤1.3:根据所述扫描信息得出恶意软件样本的标签信息。
进一步地,所述步骤2具体为:
步骤2.1:根据恶意软件样本的标签信息计算各恶意软件样本间的无相边的权重:若两恶意软件样本的家族名相同,则所述两恶意软件样本间的无相边的权重加1;
步骤2.2:规范化各恶意软件样本间的无相边的权重;
步骤2.4:基于定义的恶意软件映射G=(V,E,W)构建恶意软件关系图。
进一步地,所述步骤3具体为:
步骤3.1:建立并维护恶意软件家族表,所述恶意软件家族表用于存储每个杀毒软件标记的恶意软件家族的信息;所述恶意软件家族表包括恶意软件家族名及恶意软件家族成员节点,所述恶意软件家族成员节点为虚拟节点;
步骤3.2:将恶意软件关系图中的各节点连接到各节点对应的恶意软件家族中的恶意软件家族成员节点,得到改进后的恶意软件关系图。
进一步地,所述步骤4具体为:
步骤4.1:利用Fast Newman算法将改进后的恶意软件关系图划分为多个聚簇;
步骤4.2:利用模块化的方法按照式(2)对划分后的聚簇进行评估:
其中,Q为模块化程度,Q越大,划分结果越好;m为改进后的恶意软件关系图中边的总数;Aij是节点i和节点j之间边的权重,当节点i和节点j之间没有边时,Aij为0,当节点i和节点j之间有边时,Aij为1;ki和kj表示节点i和节点j的度;σ(ci,cj)表示节点i和j的关系,如果两个节点在同一家族中,则σ(ci,cj)为1,否则σ(ci,cj)为0。
一种基于图的恶意软件家族聚类评估装置,包括:
提取模块,用于提取恶意软件样本的标签信息;
构建模块,用于基于提取的恶意软件样本的标签信息构建恶意软件关系图;
改进模块,用于利用虚拟节点对恶意软件关系图进行改进;
评估模块,通过Fast Newman算法将改进后的恶意软件关系图划分为多个聚簇,利用模块化的方法对划分后的聚簇进行评估。
进一步地,所述提取模块包括:
选择单元,用于选择若干个杀毒软件;
获取单元,用于获取所述杀毒软件的扫描信息;
标签信息得出单元,用于根据所述扫描信息得出恶意软件样本的名称。
进一步地,所述构建模块包括:
计算单元,用于根据恶意软件样本的标签信息计算各恶意软件样本间的无相边的权重:若两恶意软件样本的家族名相同,则所述两恶意软件样本间的无相边的权重加1;
规范化单元,用于规范化各恶意软件样本间的无相边的权重;
恶意软件映射定义单元,用于定义恶意软件映射G=(V,E,W),其中V表示恶意软件映射G中的所有样本的集合;表示一组无向边;W表示在恶意软件映射的边缘上定义的一组权重,W由多个ωij组成,ωij介于0和1之间;
构建单元,用于基于定义的恶意软件映射G=(V,E,W)构建恶意软件关系图。
进一步地,所述改进模块包括:
恶意软件家族表建立维护单元,用于建立并维护恶意软件家族表,所述恶意软件家族表用于存储每个杀毒软件标记的恶意软件家族的信息;所述恶意软件家族表包括恶意软件家族名及恶意软件家族成员节点,所述恶意软件家族成员节点为虚拟节点;
连接单元,用于将恶意软件关系图中的各节点连接到各节点对应的恶意软件家族中的恶意软件家族成员节点,得到改进后的恶意软件关系图。
进一步地,所述评估模块包括:
聚簇划分单元,用于利用Fast Newman算法将改进后的恶意软件关系图划分为多个聚簇;
评估单元,用于利用模块化的方法按照式(2)对划分后的聚簇进行评估:
其中,Q为模块化程度,Q越大,划分结果越好;m为改进后的恶意软件关系图中边的总数;Aij是节点i和节点j之间边的权重,当节点i和节点j之间没有边时,Aij为0,当节点i和节点j之间有边时,Aij为1;ki和kj表示节点i和节点j的度;σ(ci,cj)表示节点i和j的关系,如果两个节点在同一家族中,则σ(ci,cj)为1,否则σ(ci,cj)为0。
与现有技术相比,本发明具有的有益效果:
本发明引入了Fast Newman算法来划分恶意软件样本并使用模块化方法来测量目标聚类结果,可以在不设置任何参数的情况下得到最佳的划分结果,且本发明完全不受恶意软件家族标签粒度(恶意软件家族分类结果)的不一致性影响,无论多少个杀毒软件的恶意软件家族标签粒度发生调整,本发明的划分结果都不受影响,而且正确率接近于1。
在处理大规模样本集时,由于恶意软件关系图的规模较大,难以构建。在生成恶意软件关系图时,需要在内存中保持一个较大的稀疏邻接矩阵,这是一种难以忍受的消耗。本发明利用虚拟节点对恶意软件关系图进行改进,在整个过程中不需要在内存中维护边的状态。当查找一个节点的相邻节点时,只操作一部分边,然后边的权重可以从内存中移出,在构造中不再需要。
附图说明
图1为本发明实施例的一种基于图的恶意软件家族聚类评估方法的基本流程图;
图2为本发明实施例的另一种基于图的恶意软件家族聚类评估方法的基本流程图;
图3为本发明实施例的一种基于图的恶意软件家族聚类评估方法的恶意软件关系图示例图;
图4为本发明实施例的一种基于图的恶意软件家族聚类评估方法的改进后的恶意软件关系图示例图之一;
图5为本发明实施例的一种基于图的恶意软件家族聚类评估方法的改进后的恶意软件关系图示例图之二;
图6为本发明实施例的一种基于图的恶意软件家族聚类评估装置的结构示意图。
具体实施方式
下面结合附图和具体的实施例对本发明做进一步的解释说明:
实施例一:
如图1所示,一种基于图的恶意软件家族聚类评估方法,包括以下步骤:
步骤S101:提取恶意软件样本的标签信息;
步骤S102:基于提取的恶意软件样本的标签信息构建恶意软件关系图;
步骤S103:利用虚拟节点对恶意软件关系图进行改进;
步骤S104:通过Fast Newman算法将改进后的恶意软件关系图划分为多个聚簇,利用模块化的方法对划分后的聚簇进行评估。
本发明引入了Fast Newman算法来划分恶意软件样本并使用模块化方法来测量目标聚类结果,可以在不设置任何参数的情况下得到最佳的划分结果,且本发明完全不受恶意软件家族标签粒度(恶意软件家族分类结果)的不一致性影响,无论多少个杀毒软件的恶意软件家族标签粒度发生调整,本发明的划分结果都不受影响,而且正确率接近于1。
在处理大规模样本集时,由于恶意软件关系图的规模较大,难以构建。在生成恶意软件关系图时,需要在内存中保持一个较大的稀疏邻接矩阵,这是一种难以忍受的消耗。本发明利用虚拟节点对恶意软件关系图进行改进,在整个过程中不需要在内存中维护边的状态。当查找一个节点的相邻节点时,只操作一部分边,然后边的权重可以从内存中移出,在构造中不再需要。
具体地,所述恶意软件样本的标签信息包括恶意类型、家族名及变体名称。
具体地,所述步骤S101为:
步骤S1011:选择若干个杀毒软件;
步骤S1012:获取所述杀毒软件的扫描信息;
步骤S1013:根据所述扫描信息得出恶意软件样本的名称。
具体地,所述步骤S102为:
步骤S1021:根据恶意软件样本的标签信息计算各恶意软件样本间的无相边的权重:若两恶意软件样本的家族名相同,则所述两恶意软件样本间的无相边的权重加1;
步骤S1022:规范化各恶意软件样本间的无相边的权重;
步骤S1024:基于定义的恶意软件映射G=(V,E,W)构建恶意软件关系图。
具体地,所述步骤S103为:
步骤S1031:建立并维护恶意软件家族表,所述恶意软件家族表用于存储每个杀毒软件标记的恶意软件家族的信息;所述恶意软件家族表包括恶意软件家族名及恶意软件家族成员节点,所述恶意软件家族成员节点为虚拟节点;
步骤S1032:将恶意软件关系图中的各节点连接到各节点对应的恶意软件家族中的恶意软件家族成员节点,得到改进后的恶意软件关系图。
具体地,所述步骤S104为:
步骤S1041:利用Fast Newman算法将改进后的恶意软件关系图划分为多个聚簇;
步骤S1042:利用模块化的方法按照式(2)对划分后的聚簇进行评估:
其中,Q为模块化程度,Q越大,划分结果越好;m为改进后的恶意软件关系图中边的总数;Aij是节点i和节点j之间边的权重,当节点i和节点j之间没有边时,Aij为0,当节点i和节点j之间有边时,Aij为1;ki和kj表示节点i和节点j的度;σ(ci,cj)表示节点i和j的关系,如果两个节点在同一家族中,则σ(ci,cj)为1,否则σ(ci,cj)为0。
实施例二:
如图2所示,另一种基于图的恶意软件家族聚类评估方法,包括以下步骤:
步骤S201:通过基于开源工具AVClass的杀毒软件提供的扫描信息中提取Anti-Virus名称(Anti-Virus软件对恶意软件样本的命名名称)。
第一,一些Anti-Virus软件供应商在Anti-Virus的VirusTotal列表中有多个产品(https://www.virustotal.com/)。这些软件使用与后端相同的Anti-Virus软件,因此它们的扫描结果是相似的,所以单纯记录所有结果是毫无意义的。
第二,一些Anti-Virus软件性能较差,精度较低。
第三,Anti-Virus软件存在抄袭。某些Anti-Virus软件的检测能力较弱,因此供应商从其他Anti-Virus软件中复制信息以提高其性能。本实施例从Anti-Virus软件的VirusTotal列表中选择15个代表性Anti-Virus软件,主要参考Anti-VirusComparative(https://www.av-comparatives.org/,Anti-Virus软件第三方测试机构)的一些报告。所选的Anti-Virus软件列于表1中。
表1.15个选定的Anti-Virus软件列表
ID | Anti-Virus软件 | ID | Anti-Virus软件 | ID | Anti-Virus软件 |
1 | AVG | 6 | F-Secure | 11 | GData |
2 | Avast | 7 | Emsisoft | 12 | Symantec |
3 | Avira | 8 | Microsoft | 13 | Panda |
4 | BitDefender | 9 | McAfee | 14 | K7AntiVirus |
5 | ESET-NOD32 | 10 | Kaspersky | 15 | Qihoo 360 |
第四,每个Anti-Virus软件在检测到恶意文件时都会提供扫描信息。Anti-Virus的扫描信息包含Anti-Virus名称和扫描日期,其中Anti-Virus名称为恶意软件样本的标签信息。在本实施例中,除去了扫描日期。Anti-Virus名称通常可以分为三个部分:恶意类型,家族名和变体名称。以Trojan.Spy.Delf.NNO为名字的恶意软件样本例,Trojan和Spy是恶意类型,而Delf是家族名,NNO是变体名。由于众多Anti-Virus软件的命名规则相当不同,每个样本都有15个不同的名字。
本实施例通过使用Ruby语言的Mechanism库从VirusTotal获取一共二百万个恶意软件样本。
步骤S202:恶意软件关系图构建。
恶意软件关系图是一个无向拓扑图。恶意软件关系图(包含样本集中的所有恶意软件样本)仅通过无坐标的无向边呈现恶意软件关系。在恶意软件关系图中,节点表示恶意样本,而连接两个不同节点的边表示连接的节点在同一系列中。边的权重值是连接的置信度。正如上述声明一样,单个Anti-Virus软件在恶意软件检测和家族分类方面表现不佳,而所有选定的Anti-Virus软件的组合极大地提高了这些能力。本实施例中使用各种Anti-Virus软件的投票机制来找出连接并评估其置信水平。
图3显示了一个小型恶意软件关系图示例,包含8个样本和3个家族,节点A到H表示恶意软件样本。15个Anti-Virus软件通过实验中提取的恶意软件样本的名称来判断两个不同的节点是否属于同一家族。如果单个Anti-Virus软件标记的两个节点具有相同的家族名,连接这两个节点的边缘的权重值增加1。例如,假设所有边的权重都初始化为0,那么Avast标记节点A和B具有相同的家族名Delf,所以边AB的权重增加为1,当AVG用家族名Duch标记它们时,边AB的权重被修改为2。恶意软件关系图与恶意软件样本的标签信息内容无关,只保留各种Anti-Virus软件扫描信息的关系信息。
在上面介绍的边连接机制下,恶意软件家族是一个完全连接的子图。在图3中标记的虚线圆是三个完全连接的家族。以家族{F,G,H}为例,边缘FG,FH,GH的权重均为5,这意味着有5个Anti-Virus软件同时将样本F、G、H分类到同一个家族。但在真正的恶意软件关系图中,像{A,B,C,D,E}这样的情况更为常见。图3左侧的子图{A,B,C,D,E}包含两个相关家族{A,B,C,D}和{A,D,E},而节点A和D是在这两个家族。这意味着,有4个Anti-Virus软件将A、B、C和D分类到同一个系列,而其他5个Anti-Virus软件将A、D、E分类到另一个系列,没有将E分类为家族{A,B,C,D}的Anti-Virus软件可能不会将E视为恶意的或认为E应该在另一个家族中。简而言之,这两个家族的交集不是空的,这表明它们是相关的但不是孤立的。通过各种Anti-Virus软件检测机制的组合,从不同角度观察和揭示了这种关系。
为了规范恶意软件关系图,本实施中归一化边的权重值。具体地,归一化取决于实验中选择的Anti-Virus软件的数量。如表1所示,总数NAV为15。归一化公式为:
其中ωi′j是连接节点i和j的边的权重,ωij是ωi′j的归一化结果。
基于定义的恶意软件映射G=(V,E,W)构建恶意软件关系图。
步骤S203:恶意软件关系图的改进。
在处理大规模样本集时,由于恶意软件关系图的规模较大,难以构建。在生成恶意软件关系图时,需要在内存中保持一个较大的稀疏邻接矩阵,这是一种难以忍受的消耗。尽管我们将邻接矩阵的数据结构改为链表,但由于边缘数量较多,使得其性能较差。需要一个等效但高性能的优化,可以将邻接矩阵分割成小部件,从而不再需要维护。
表2.恶意软件家族表
恶意软件家族 | 恶意软件家族成员节点 |
Avira:Deil | G,F,H |
AVG:Redir | G,F,H |
McAfee:Netag | G,F,H |
Microsoft:Kryptik | G,F,H,A |
ESET-NODE32:Eldorado | G,F,H,B |
首先建立并维护一个新的表来存储每个Anti-Virus软件标记的恶意软件家族的扫描信息。一个简单的例子如表2所示,每个恶意软件家族在表中都有一个家族成员节点列表,如Deil家族的恶意软件家族成员节点为G、F和H,表的比例比邻接矩阵小得多,表的查询可以通过哈希算法实现,表的查询时间复杂度为O(1)。
本实施例在恶意软件关系图中引入了一种虚拟节点,虚拟节点表示表2中所示的恶意软件家族。恶意软件节点不再连接到另一个节点,而是连接到它所属的家族虚拟节点。例如,G连接到5个家族虚拟节点:Avira:Deil、AVG:Redir、McAfee:Netag、Microsoft:Kryptik、ESET-NODE32:Eldorado。同时,F和H节点与这五个家族相连。但是,节点A只连接到Microsoft:Kryptik,而B连接到ESET-NODE32:Eldorado。
现在考虑哪些节点可能与节点i在同一个恶意软件家族中。如图4所示,从节点i以两个跃点到达的每个节点都被认为是邻居。因此,需要两层宽度优先遍历。如果从j到i有两条不同的跳跃路径,节点j将连接到i。边i j的权重是i和j之间的两条跳跃路径的数目。以节点G为例,F和H将连接到G,而A到G和B均只有一条跳跃路径。
使用这种方法,在整个过程中不需要在内存中维护边的状态。当查找一个节点的相邻节点时,只操作一部分边,然后边的权重可以从内存中移出,在构造中不再需要。图5显示了从VXheaven(http://vxheaven.org/,恶意软件样本下载网站)收集的部分样本集的恶意软件关系图。
步骤S204:利用Fast Newman算法将步骤S203改进的恶意软件关系图划分为多个聚簇,并对划分的聚簇进行模块化评估。
利用Fast Newman算法将改进后的恶意软件关系图划分为多个聚簇,FastNewman算法是非参数的、层次化的,并用模块化的方法进行评估。
假设改进的恶意软件关系图中有n个节点和m个边,对于图的特定划分,σ(ci,cj)表示节点i和j的关系,如果两个节点在同一家族中,则σ(ci,cj)为1,否则σ(ci,cj)为0。因此,划分的模块性如下:
其中,Q为模块化程度,Q越大,划分结果越好;Aij是节点i和节点j之间边缘的权重,当节点i和节点j之间没有边缘时,Aij为0,当节点i和节点j之间有边时,Aij为1;ki和kj表示节点i和节点j的度。
Fast Newman算法是在给定的图中找到一个最大模块化值的除法,该算法可以分为两个步骤。在开始时,图被初始化为n个不同的社区,每个社区只包含一个节点。第一步,即模块化优化,将节点划分为相邻的社区,以增加整个图的模块化值;第二步,即社区聚合,将第一步结果中的社区替换为节点,构建新的图,重复第一步进行进一步聚合,直到模块化值达到最大。
此外,Fast Newman算法也是分层的,在聚合过程中,还可以在不同的家族数下得到最大的模块化。该特征的优点是,Fast Newman算法可以作为评价不同粒度聚类结果的参考系统。
实施例三:
如图6所示,一种基于图的恶意软件家族聚类评估装置,包括:
提取模块301,用于提取恶意软件样本的标签信息;
构建模块302,用于基于提取的恶意软件样本的标签信息构建恶意软件关系图;
改进模块303,用于利用虚拟节点对恶意软件关系图进行改进;
评估模块304,通过Fast Newman算法将改进后的恶意软件关系图划分为多个聚簇,利用模块化的方法对划分后的聚簇进行评估。
本发明引入了Fast Newman算法来划分恶意软件样本并使用模块化方法来测量目标聚类结果,可以在不设置任何参数的情况下得到最佳的划分结果,且本发明完全不受恶意软件家族标签粒度(恶意软件家族分类结果)的不一致性影响,无论多少个杀毒软件的恶意软件家族标签粒度发生调整,本发明的划分结果都不受影响,而且正确率接近于1。
在处理大规模样本集时,由于恶意软件关系图的规模较大,难以构建。在生成恶意软件关系图时,需要在内存中保持一个较大的稀疏邻接矩阵,这是一种难以忍受的消耗。本发明利用虚拟节点对恶意软件关系图进行改进,在整个过程中不需要在内存中维护边的状态。当查找一个节点的相邻节点时,只操作一部分边,然后边的权重可以从内存中移出,在构造中不再需要。
具体地,所述提取模块301包括:
选择单元3011,用于从基于AVClass的杀毒软件列表中选择若干个杀毒软件;
获取单元3012,用于获取所述杀毒软件的扫描信息;
标签信息得出单元3013,用于根据所述扫描信息得出恶意软件样本的标签信息。
具体地,所述构建模块302包括:
计算单元3021,用于根据恶意软件样本的标签信息计算各恶意软件样本间的无相边的权重:若两恶意软件样本的家族名相同,则所述两恶意软件样本间的无相边的权重加1;
规范化单元3022,用于规范化各恶意软件样本间的无相边的权重;
恶意软件映射定义单元3023,用于定义恶意软件映射G=(V,E,W),其中V表示恶意软件映射G中的所有样本的集合;表示一组无向边;W表示在恶意软件映射的边缘上定义的一组权重,W由多个ωij组成,ωij介于0和1之间;
构建单元3024,用于基于定义的恶意软件映射G=(V,E,W)构建恶意软件关系图。
具体地,所述改进模块303包括:
恶意软件家族表建立维护单元3031,用于建立并维护恶意软件家族表,所述恶意软件家族表用于存储每个杀毒软件标记的恶意软件家族的信息;所述恶意软件家族表包括恶意软件家族名及恶意软件家族成员节点,所述恶意软件家族成员节点为虚拟节点;
连接单元3032,用于将恶意软件关系图中的各节点连接到各节点对应的恶意软件家族中的恶意软件家族成员节点,得到改进后的恶意软件关系图;
具体地,所述评估模块304包括:
聚簇划分单元3041,用于利用Fast Newman算法将改进后的恶意软件关系图划分为多个聚簇;
评估单元3042,用于利用模块化的方法按照式(2)对划分后的聚簇进行评估:
其中,Q为模块化程度,Q越大,划分结果越好;m为改进后的恶意软件关系图中边的总数;Aij是节点i和节点j之间边的权重,当节点i和节点j之间没有边时,Aij为0,当节点i和节点j之间有边时,Aij为1;ki和kj表示节点i和节点j的度;σ(ci,cj)表示节点i和j的关系,如果两个节点在同一家族中,则σ(ci,cj)为1,否则σ(ci,cj)为0。
以上所示仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (7)
1.一种基于图的恶意软件家族聚类评估方法,其特征在于,包括以下步骤:
步骤1:提取恶意软件样本的标签信息;
步骤2:基于提取的恶意软件样本的标签信息构建恶意软件关系图;
步骤3:利用虚拟节点对恶意软件关系图进行改进;
所述步骤3具体为:
步骤3.1:建立并维护恶意软件家族表,所述恶意软件家族表用于存储每个杀毒软件标记的恶意软件家族的信息;所述恶意软件家族表包括恶意软件家族名及恶意软件家族成员节点,所述恶意软件家族成员节点为虚拟节点;
步骤3.2:将恶意软件关系图中的各节点连接到各节点对应的恶意软件家族中的恶意软件家族成员节点,得到改进后的恶意软件关系图;
步骤4:通过Fast Newman算法将改进后的恶意软件关系图划分为多个聚簇,利用模块化的方法对划分后的聚簇进行评估;
所述步骤4具体为:
步骤4.1:利用Fast Newman算法将改进后的恶意软件关系图划分为多个聚簇;
步骤4.2:利用模块化的方法按照式(2)对划分后的聚簇进行评估:
其中,Q为模块化程度,Q越大,划分结果越好;m为改进后的恶意软件关系图中边的总数;Aij是节点i和节点j之间边的权重,当节点i和节点j之间没有边时,Aij为0,当节点i和节点j之间有边时,Aij为1;ki和kj表示节点i和节点j的度;σ(ci,cj)表示节点i和j的关系,如果两个节点在同一家族中,则σ(ci,cj)为1,否则σ(ci,cj)为0。
2.根据权利要求1所述的一种基于图的恶意软件家族聚类评估方法,其特征在于,所述恶意软件样本的标签信息包括恶意类型、家族名及变体名称。
3.根据权利要求1所述的一种基于图的恶意软件家族聚类评估方法,其特征在于,所述步骤1具体为:
步骤1.1:选择若干个杀毒软件;
步骤1.2:获取所述杀毒软件的扫描信息;
步骤1.3:根据所述扫描信息得出恶意软件样本的标签信息。
5.一种基于图的恶意软件家族聚类评估装置,其特征在于,包括:
提取模块,用于提取恶意软件样本的标签信息;
构建模块,用于基于提取的恶意软件样本的标签信息构建恶意软件关系图;
改进模块,用于利用虚拟节点对恶意软件关系图进行改进;
评估模块,通过Fast Newman算法将改进后的恶意软件关系图划分为多个聚簇,利用模块化的方法对划分后的聚簇进行评估;
所述改进模块包括:
恶意软件家族表建立维护单元,用于建立并维护恶意软件家族表,所述恶意软件家族表用于存储每个杀毒软件标记的恶意软件家族的信息;所述恶意软件家族表包括恶意软件家族名及恶意软件家族成员节点,所述恶意软件家族成员节点为虚拟节点;
连接单元,用于将恶意软件关系图中的各节点连接到各节点对应的恶意软件家族中的恶意软件家族成员节点,得到改进后的恶意软件关系图;
所述评估模块包括:
聚簇划分单元,用于利用Fast Newman算法将改进后的恶意软件关系图划分为多个聚簇;
评估单元,用于利用模块化的方法按照式(2)对划分后的聚簇进行评估:
其中,Q为模块化程度,Q越大,划分结果越好;m为改进后的恶意软件关系图中边的总数;Aij是节点i和节点j之间边的权重,当节点i和节点j之间没有边时,Aij为0,当节点i和节点j之间有边时,Aij为1;ki和kj表示节点i和节点j的度;σ(ci,cj)表示节点i和j的关系,如果两个节点在同一家族中,则σ(ci,cj)为1,否则σ(ci,cj)为0。
6.根据权利要求5所述的一种基于图的恶意软件家族聚类评估装置,其特征在于,所述提取模块包括:
选择单元,用于选择若干个杀毒软件;
获取单元,用于获取所述杀毒软件的扫描信息;
标签信息得出单元,用于根据所述扫描信息得出恶意软件样本的标签信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910283745.6A CN110110177B (zh) | 2019-04-10 | 2019-04-10 | 一种基于图的恶意软件家族聚类评估方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910283745.6A CN110110177B (zh) | 2019-04-10 | 2019-04-10 | 一种基于图的恶意软件家族聚类评估方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110110177A CN110110177A (zh) | 2019-08-09 |
CN110110177B true CN110110177B (zh) | 2020-09-25 |
Family
ID=67483942
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910283745.6A Active CN110110177B (zh) | 2019-04-10 | 2019-04-10 | 一种基于图的恶意软件家族聚类评估方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110110177B (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102571431B (zh) * | 2011-12-02 | 2014-06-18 | 北京航空航天大学 | 针对复杂网络的基于群思想改进的Fast-Newman聚类方法 |
US20160094564A1 (en) * | 2014-09-26 | 2016-03-31 | Mcafee, Inc | Taxonomic malware detection and mitigation |
CN104598825A (zh) * | 2015-01-30 | 2015-05-06 | 南京邮电大学 | 一种基于改进贝叶斯算法的安卓恶意软件检测方法 |
CN109241740B (zh) * | 2018-09-11 | 2020-12-18 | 中国人民解放军战略支援部队信息工程大学 | 恶意软件基准测试集生成方法及装置 |
-
2019
- 2019-04-10 CN CN201910283745.6A patent/CN110110177B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110110177A (zh) | 2019-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Namanya et al. | Similarity hash based scoring of portable executable files for efficient malware detection in IoT | |
Uwagbole et al. | Applied machine learning predictive analytics to SQL injection attack detection and prevention | |
CN105915555B (zh) | 网络异常行为的检测方法及系统 | |
Pai et al. | Clustering for malware classification | |
Sun et al. | {HinDom}: A robust malicious domain detection system based on heterogeneous information network with transductive classification | |
Jianliang et al. | The application on intrusion detection based on k-means cluster algorithm | |
CN112866023B (zh) | 网络检测、模型训练方法、装置、设备及存储介质 | |
Kakisim et al. | Metamorphic malware identification using engine-specific patterns based on co-opcode graphs | |
CN117081858B (zh) | 一种基于多决策树入侵行为检测方法、系统、设备及介质 | |
US20220385635A1 (en) | Combined machine learning and formal techniques for network traffic analysis | |
Zhang et al. | Based on multi-features and clustering ensemble method for automatic malware categorization | |
CN112306820B (zh) | 一种日志运维根因分析方法、装置、电子设备及存储介质 | |
He et al. | Malicious domain detection via domain relationship and graph models | |
Brandao et al. | Log Files Analysis for Network Intrusion Detection | |
Zhang et al. | An efficient log parsing algorithm based on heuristic rules | |
Yavvari et al. | Malware characterization using behavioral components | |
Jia et al. | MAGIC: Detecting Advanced Persistent Threats via Masked Graph Representation Learning | |
Tang et al. | HSLF: HTTP header sequence based lsh fingerprints for application traffic classification | |
CN114662096A (zh) | 一种基于图核聚类的威胁狩猎方法 | |
Pimenta et al. | Androidgyny: Reviewing clustering techniques for Android malware family classification | |
CN110110177B (zh) | 一种基于图的恶意软件家族聚类评估方法及装置 | |
Chen et al. | MalCommunity: A graph-based evaluation model for malware family clustering | |
KR101893029B1 (ko) | 머신 러닝 기반의 취약점 정보를 분류하는 방법 및 장치 | |
US12067115B2 (en) | Malware attributes database and clustering | |
CN111507368B (zh) | 一种校园网入侵检测方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |