首页> 中国专利> 恶意软件家族聚类及识别方法及系统

恶意软件家族聚类及识别方法及系统

摘要

本发明公开了恶意软件家族聚类及识别方法及系统,包括:对良性的HTTP网络流量、恶意家族的HTTP网络流量分别采集并进行统一资源定位符URL提取;将统一资源定位符URL的各个部分信息进行标记,并分别存入相应的词库并对得到的词库进行向量化处理;通过前向神经网络映射将输入的量化数据映射到另外一个数据空间,进行聚类,得到每个簇,计算正常样本和每个恶意家族样本数量的比例,确定正常样本和每个恶意家族的权值,计算每个簇的家族类别评分,确定每个簇所属家族类别。本发明设计了一种组合的模型,将神经网络,Canopy和K‑Means结合在一起,进行恶意家族聚类,达到识别恶意家族的目的。

著录项

  • 公开/公告号CN112765428A

    专利类型发明专利

  • 公开/公告日2021-05-07

    原文格式PDF

  • 申请/专利权人 济南大学;

    申请/专利号CN202110057173.7

  • 发明设计人 陈贞翔;何琦;刘聪;彭立志;杨波;

    申请日2021-01-15

  • 分类号G06F16/906(20190101);G06F16/955(20190101);G06F16/84(20190101);G06K9/62(20060101);G06N3/04(20060101);G06N3/08(20060101);

  • 代理机构37221 济南圣达知识产权代理有限公司;

  • 代理人李圣梅

  • 地址 250022 山东省济南市市中区南辛庄西路336号

  • 入库时间 2023-06-19 10:54:12

说明书

技术领域

本发明属于通信网络领域,尤其涉及恶意软件家族聚类及识别方法及系统。

背景技术

本部分的陈述仅仅是提供了与本公开相关的背景技术信息,不必然构成在先技术。

现在的恶意软件已经成为日益增长的移动生态系统的主要威胁。最近,移动恶意软件的数量和复杂度已经显著增加,尤其是那些针对Android平台的恶意软件。Android平台和移动反病毒扫描器提供了安全保护机制来保护Android设备,但是越来越多的高级移动恶意软件仍然可以通过规避这些机制来渗透移动系统。随着移动设备与个人信息联系的日益紧密,迫切需要一个电子化的移动恶意软件检测系统。

恶意软件的开发者可以采用重新打包和代码混淆技术来生成大量恶意软件变体。这些恶意软件变体在运行时有类似的恶意行为,可以把他们聚集在一起,以确定他们的共同行为。绝大多数恶意软件程序通过网络发起恶意活动(例如,发送垃圾邮件、删除私有数据和下载恶意软件更新)。

发明人在研究中发现,可以利用恶意软件的网络行为来进行分类。聚类算法是一种无监督的学习方法,它根据样本之间的相似性将样本分组成不同的家族。然而,聚类算法的挑战在于精确地将同一系列的恶意软件聚类在一起,同时避免包含良性的应用程序。一些聚类算法可以动态地发现恶意样本之间的区别和共性,利用这些特征可以将恶意样本划分为多个类别。然而,这种方法没有能力在良性样本和恶意家族样本之间进行科学区分,即当良性样本与某种类型的恶意软件具有相似的特征时,它极有可能被包括在恶意集群中。

发明内容

为克服上述现有技术的不足,本发明提供了恶意软件家族聚类及识别方法,将具有相似特征的良性样本和恶意样本分开,并且还能够识别具体的恶意家族及对应的恶意行为。

为实现上述目的,本发明的一个或多个实施例提供了如下技术方案:

恶意软件家族聚类及识别方法,包括:

对良性的HTTP网络流量、恶意家族的HTTP网络流量分别采集并进行统一资源定位符URL提取;

将统一资源定位符URL的各个部分信息进行标记,并分别存入相应的词库并对得到的词库进行向量化处理;

通过前向神经网络映射将输入的量化数据映射到另外一个数据空间,进行聚类,得到每个簇,计算正常样本和每个恶意家族样本数量的比例,确定正常样本和每个恶意家族的权值,计算每个簇的家族类别评分,确定每个簇所属家族类别。

进一步的技术方案,良性的HTTP网络流量及恶意家族流量获取方式相同,均为:通过T-shark命令将apk的PCAP文件中的HTTP流量分离出来成一个单独的PCAP文件;

将PCAP文件中每一条HTTP网络流通过T-shark命令提取出URL内容写入对应的文本文档中。

进一步的技术方案,URL的第一部分的请求方法标记为m,hostname 作为第二部分,标记为h,path作为第三部分,标记为p,变量名作为第四部分,标记为n,变量值作为第四部分,标记为v。

进一步的技术方案,将所有的URL的请求方法m部分存入词库1、将所有的URL的Host存入词库2、将所有的URL的路径P、变量名n、变量值v使用自动特征提取算法得到的特征词存入词库3。

进一步的技术方案,对得到的词库进行向量化处理,对每个输入的URL 的m、URL的h及URL的p、n、v进行one-hot编码,将编码后的向量化数值组合。

进一步的技术方案,对得到的词库进行向量化处理,对每个输入的URL 的m、URL的h及URL的p、n、v进行one-hot编码:

根据词库的大小,设置向量大小为各自词库的大小;

将URL的m、URL的h及URL的p、n、v分别在各自对应的词库中搜索,记录位置,将向量的该位置设置为1,其他设置为0;

每个URL的m、URL的h及URL的p、n、v都是一个只有一位是1,其他位是0的向量。

进一步的技术方案,通过前向神经网络映射将输入的量化数据映射到另外一个数据空间:提取N维特征当成输入到前置神经网络,训练神经网络,输出映射到M维空间,将不同的数据样本进行分割开。

本发明公开了恶意软件家族聚类及识别系统,包括:

URL提取模块,对良性的HTTP网络流量、恶意家族的HTTP网络流量分别采集并进行统一资源定位符URL提取;

向量化处理模块,将统一资源定位符URL的各个部分信息进行标记,并分别存入相应的词库并对得到的词库进行向量化处理;

簇的聚类及识别模块,通过前向神经网络映射将输入的量化数据映射到另外一个数据空间,进行聚类,得到每个簇,计算正常样本和每个恶意家族样本数量的比例,确定正常样本和每个恶意家族的权值,计算每个簇的家族类别评分,确定每个簇所属家族类别。

一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现以下步骤:

对良性的HTTP网络流量、恶意家族的HTTP网络流量分别采集并进行统一资源定位符URL提取;

将统一资源定位符URL的各个部分信息进行标记,并分别存入相应的词库并对得到的词库进行向量化处理;

通过前向神经网络映射将输入的量化数据映射到另外一个数据空间,进行聚类,得到每个簇,计算正常样本和每个恶意家族样本数量的比例,确定正常样本和每个恶意家族的权值,计算每个簇的家族类别评分,确定每个簇所属家族类别。

一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现以下步骤:

对良性的HTTP网络流量、恶意家族的HTTP网络流量分别采集并进行统一资源定位符URL提取;

将统一资源定位符URL的各个部分信息进行标记,并分别存入相应的词库并对得到的词库进行向量化处理;

通过前向神经网络映射将输入的量化数据映射到另外一个数据空间,进行聚类,得到每个簇,计算正常样本和每个恶意家族样本数量的比例,确定正常样本和每个恶意家族的权值,计算每个簇的家族类别评分,确定每个簇所属家族类别。

以上一个或多个技术方案存在以下有益效果:

本发明使用了提取HTTP的URL的部分特征,使用卡方测试进行特征选择,避免人工选择特征带来的影响。

本发明根据自己建立的词库,使用one-hot编码方式,将URL的文本进行向量化表示,使得输入更适合模型训练检测。

本发明设计了一种组合的模型,将神经网络,Canopy和K-Means结合在一起,进行恶意家族聚类,达到识别恶意家族的目的。

附图说明

构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。

图1为本发明实施例子的整体流程图;

图2为本发明实施例子的URL提取表示的流程图;

图3为本发明实施例子的一条流产生的单词集向量化的流程图;

图4为本发明实施例子的建立聚类模型,确定每个簇的类别的流程图。

具体实施方式

应该指出,以下详细说明都是示例性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。

在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。

本发明提出的总体思路:

本发明通过:提取流量的url特征,进行特征选择,输入模型,进行多分类,能够识别不在训练集的测试的恶意家族。

将具有相似特征的良性样本和恶意样本分开,并且还能够识别具体的恶意家族及对应的恶意行为。

实施例一

本实施例公开了一种恶意软件家族聚类及识别方法,如图1所示,基于浮动质心方法的Android恶意应用识别和聚类,包括如下步骤:

步骤100,提取HTTP流的URL,提取URL的特征。通过该步骤,可以得到每条HTTP的特征集。图2描述了特征提取的具体过程。

步骤101,向量化特征集:将提取的URL进行特征选择,并进行向量化,得到数值型。图3描述了向量化的具体过程。

步骤102,训练检测模型的建立。将神经网络映射,Canopy算法,和 K-Means算法结合起来,作为聚类模型。图4描述了模型建立的具体过程。

该步骤为浮动质心步骤,神经网络映射,加canopy,K-Means算法的结合。

步骤103,检测模块的输入,将步骤101的词向量化输入到建立好的模型。

步骤104,将每个聚类好的簇,通过权值确定该类别是属于哪个家族。图4描述了类别确定的具体过程。

步骤105,输出聚类结果,确定流量所属恶意家族类别及其恶意行为。存在一个数据库,存储有恶意家族和恶意行为之间的匹配关系,可以将恶意家族和恶意行为对应上,恶意行为是通过APP静态代码分析的,在该实施例中,得到了恶意家族,就能直接获取恶意行为。

在具体实施例子中,图2为URL特征提取的流程图,它的具体工作过程为:

步骤200,正常流URL获取,使用T-shark命令“tshark-r网络流量文件名-Efields-e"http.request.uri">文本文档名”将一个流量文件(一个正常 APP网络交互产生的网络流量文件)中的每一条良性HTTP网络流的URL 写入到对应的TXT文件中;

步骤201,恶意家族流URL获取,使用T-shark命令“tshark-r网络流量文件名-Efields-e"http.request.uri">文本文档名”将一个流量文件(一个恶意APP网络交互产生的网络流量文件)中的每一条恶意家族HTTP网络流的URL写入到对应的TXT文件中;

步骤202,将正常和恶意家族流量放在一起,打上各自标签;用于模型的构建,便于后续进行样本的识别;

步骤203,将URL通过“/”,“?”等特殊字符分割,提取每个URL的五部分,标记出来;

将”/”分割的第一部分的请求方法标记为m;

将URL的hostname作为第二部分,标记为h;

将URL的path作为第三部分,标记为p;

将URL的变量名作为第四部分,标记为n;

将URL的变量值作为第五部分,标记为v;

步骤204,将所有的URL的请求方法m放入词库1;

步骤205,将所有的URL的h放入词库2;

步骤206,将所有的URL的路径P、变量名n、变量值v使用自动特征提取算法chi-square test,采用卡方检测对特征p,n,v特征进行选择,挑选100 个得分最高的特征单词,放入词库3。

具体实施例子中,使用卡方检测挑选p、m、v,根据卡方公式计算每个单词的得分,卡方公式如下:

其中,χ2(t,c)指的是特征t(一个单词)和类别c(恶意)之间的卡方值,χ2(t,c)值越大,说明特征t对类别c的表征程度就越大,特征t在类别 c中就越有意义。N

图3为URL特征向量化的流程图,它的具体工作过程为:

步骤300,将图2得到的结果,获得特征词库;

步骤301,将请求方法m和词库1对应,在词库的对应位置上的向量标记为1,其他为0;

步骤302,将h和词库2对应,在词库的对应位置上的向量标记为1,其他为0;

步骤303,将p.n.v和词库3对应,在词库的对应位置上的向量标记为1,其他为0;

步骤304,将步骤301,302,303的向量连接成一个向量。

图4为模型建立训练测试的流程图,它的具体工作过程为:

步骤400,建立神经网络,将URL向量映射到另一个向量空间,在新的数据空间里以尽量的将不同的数据样本进行分割开;

具体为:

提取N维特征当成输入到前置神经网络;

训练神经网络,输出映射到M维空间。

步骤401,建立Canopy聚类模型,确定K值;

确定阈值T1,T2;

对另一个向量空间进行聚类,得到K值;

步骤402,根据K值,进行K-Means聚类,得到每个簇。

步骤403,根据正常样本和每个家族样本的比例,求出每个家族的权值;

步骤404,计算每个簇所属类别,用每个簇的家族样本数乘以家族的权值,哪个类别的值大,就属于哪个类别。

步骤405,将URL向量化的向量输入模型,得出流所属类别。

步骤406,输出流所属类别。

例如:恶意家族有Agent、FakeInst、SmsReg、DroidKongFu等,这里 Agent对应类别0、FakeInst对应类别1、SmsReg对应类别2、DroidKongFu 对应类别3,还有一个正常家族对应类别4,这样就是根据现有样本先训练出一个模型,会聚类成几个类,根据权值计算这个类别是属于什么家族,测试的时候,这个流会被分到一个类里,最后该流就预测为这个家族。

实施例二

本实施例的目的是提供恶意软件家族聚类及识别系统,包括:

URL提取模块,对良性的HTTP网络流量、恶意家族的HTTP网络流量分别采集并进行统一资源定位符URL提取;

向量化处理模块,将统一资源定位符URL的各个部分信息进行标记,并分别存入相应的词库并对得到的词库进行向量化处理;

簇的聚类及识别模块,通过前向神经网络映射将输入的量化数据映射到另外一个数据空间,进行聚类,得到每个簇,计算正常样本和每个恶意家族样本数量的比例,确定正常样本和每个恶意家族的权值,计算每个簇的家族类别评分,确定每个簇所属家族类别。

实施例三

一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现以下步骤:

对良性的HTTP网络流量、恶意家族的HTTP网络流量分别采集并进行统一资源定位符URL提取;

将统一资源定位符URL的各个部分信息进行标记,并分别存入相应的词库并对得到的词库进行向量化处理;

通过前向神经网络映射将输入的量化数据映射到另外一个数据空间,进行聚类,得到每个簇,计算正常样本和每个恶意家族样本数量的比例,确定正常样本和每个恶意家族的权值,计算每个簇的家族类别评分,确定每个簇所属家族类别。

实施例四

一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现以下步骤:

对良性的HTTP网络流量、恶意家族的HTTP网络流量分别采集并进行统一资源定位符URL提取;

将统一资源定位符URL的各个部分信息进行标记,并分别存入相应的词库并对得到的词库进行向量化处理;

通过前向神经网络映射将输入的量化数据映射到另外一个数据空间,进行聚类,得到每个簇,计算正常样本和每个恶意家族样本数量的比例,确定正常样本和每个恶意家族的权值,计算每个簇的家族类别评分,确定每个簇所属家族类别。

以上实施例二、三和四的装置中涉及的各步骤与方法实施例一相对应,具体实施方式可参见实施例一的相关说明部分。术语“计算机可读存储介质”应该理解为包括一个或多个指令集的单个介质或多个介质;还应当被理解为包括任何介质,所述任何介质能够存储、编码或承载用于由处理器执行的指令集并使处理器执行本发明中的任一方法。

本领域技术人员应该明白,上述本发明的各模块或各步骤可以用通用的计算机装置来实现,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。本发明不限制于任何特定的硬件和软件的结合。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号