CN116192462A - 一种基于pe文件格式的恶意软件分析方法及装置 - Google Patents
一种基于pe文件格式的恶意软件分析方法及装置 Download PDFInfo
- Publication number
- CN116192462A CN116192462A CN202211732234.6A CN202211732234A CN116192462A CN 116192462 A CN116192462 A CN 116192462A CN 202211732234 A CN202211732234 A CN 202211732234A CN 116192462 A CN116192462 A CN 116192462A
- Authority
- CN
- China
- Prior art keywords
- cluster
- feature vector
- information
- vector
- files
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/145—Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请涉及网络信息安全技术领域,尤其涉及一种基于PE文件格式的恶意软件分析方法及装置。该方法中,获取多个PE文件。解析多个PE文件,得到文件信息。根据文件信息,确定多个PE文件对应的特征向量。对特征向量集合中每个特征向量进行聚类,得到聚簇集合。其中,聚簇集合中任一聚簇包括的特征向量之间的相似度小于等于第一阈值。对聚簇集合中每个聚簇进行聚类,得到目标聚簇集合。其中,目标聚簇集合中任一目标聚簇包括的聚簇之间的相似度小于等于第二阈值,第二阈值大于第一阈值。显示目标聚簇集合。上述方案,采用聚类方法实现对PE文件格式的恶意软件进行分析,提升分析恶意软件的效率。
Description
技术领域
本申请涉及网络安全技术领域,尤其涉及一种基于PE文件格式的恶意软件分析方法及装置。
背景技术
网络中较大部分的网络攻击都是通过恶意软件实现的。因此,对恶意软件样本的分析是网络威胁检测的重要部分,用户可以通过分析恶意软件样本及时发现威胁,并设立防御机制。
但是恶意软件数量极其庞大,目前对恶意软件的分析目前大多依赖人工分析,效率较低。
发明内容
本申请实施例提供一种基于PE文件格式的恶意软件分析方法及装置,用于及时检测恶意软件,提升分析恶意软件的效率。
第一方面,本申请实施例提供一种基于PE文件格式的恶意软件分析方法,包括:获取多个PE文件。解析多个PE文件,得到文件信息。其中,文件信息包括多个PE文件的格式信息以及通用信息。根据文件信息,确定多个PE文件对应的特征向量。对特征向量集合中每个特征向量进行聚类,得到聚簇集合。其中,聚簇集合中任一聚簇包括的特征向量之间的相似度小于等于第一阈值。特征向量集合包括多个PE文件中每个PE文件对应的特征向量。对聚簇集合中每个聚簇进行聚类,得到目标聚簇集合。其中,目标聚簇集合中任一目标聚簇包括的聚簇之间的相似度小于等于第二阈值,第二阈值大于第一阈值。显示目标聚簇集合。
上述方法中,通过对特征向量进行聚类,可以及时实现对大量PE文件格式的恶意软件样本的划分,辅助用户分析恶意软件。本申请中通过对聚簇集合再次聚类,得到目标聚簇集合,可以缩小聚簇数量、便于确定遗漏的聚簇,便于用户分析恶意软件。同时,本申请基于PE文件格式的恶意软件分析方法是一种低时间复杂度的聚类算法,可以提升分析恶意软件的效率。
可选的,根据文件信息,确定多个PE文件对应的特征向量,具体包括:在文件信息包括数值型的信息和文本型的信息的情况下,将文本型的信息进行向量化,得到文本向量。将文本向量的数值与数值型的信息的数值合并,得到特征向量。
上述方法中,通过将文本型的信息进行向量化,得到文本向量。再将文本向量的数值与数值型的信息的数值合并,得到特征向量。便于后续衡量所有特征向量之间的相似度进行聚类。
可选的,根据文件信息,确定多个PE文件对应的特征向量,还包括:在文件信息为数值型的信息的情况下,将数值型的信息作为特征向量。
上述方法中,通过将数值型的信息作为特征向量。便于后续衡量所有特征向量之间的相似度进行聚类。
可选的,对特征向量集合中每个特征向量进行聚类之前,方法还包括:采用缩放函数缩放多个特征向量,得到缩放后的多个特征向量,其中,在多个特征向量中任一特征向量的第i个位置上的数值大于零的情况下,缩放后的特征向量的第i个位置上的数值小于缩放前的特征向量的第i个位置上的数值。
上述方法中,通过采用缩放函数缩放多个特征向量,得到缩放后的多个特征向量。可以将各个特征向量的数值的范围差异缩小,同时保证能够反映出样本的特征。限制各个特征向量中特征值的范围,保证特征值在合理的区间。防止各个特征向量在不同维度上的数值的范围有很大的差异。
可选的,缩放函数满足以下公式:
其中,vi为特征向量第i个位置上的值。
可选的,对特征向量集合中每个特征向量进行聚类,得到聚簇集合,具体包括:将特征向量集合中任意一个特征向量作为起始向量,将特征向量集合中包含的与起始向量相似度小于等于第一阈值的其他特征向量聚类形成聚簇。将特征向量集合中任意一个与起始向量的相似度大于第一阈值的特征向量作为新的起始点,返回执行将特征向量集合中包含的与起始点相似度小于等于第一阈值的其他特征向量聚类形成聚簇,得到聚簇集合。
上述方法中,通过对特征向量集合中每个特征向量进行聚类,得到聚簇集合。可以将每个特征向量进行初步划分,分配到初始的聚簇集合当中。便于后续再次进行聚类,确定目标聚簇集合。
可选的,聚簇集合包含M个聚簇,M为正整数,对聚簇集合中每个聚簇进行聚类,得到目标聚簇集合,具体包括:将第N个聚簇中任意一个特征向量作为起始向量。N为大于0小于等于M的整数。确定起始向量与第N+K个聚簇包含的特征向量之间的相似度,K为大于0,小于等于M-N的整数。在相似度小于等于第二阈值的情况下,将第N个聚簇与第N+k个聚簇作为目标聚簇,得到目标聚簇集合。
上述方法中,通过对聚簇集合再次聚类,得到目标聚簇集合,可以缩小聚簇数量、便于确定遗漏的聚簇。
第二方面,本申请实施例提供一种基于PE文件格式的恶意软件分析装置,包括:
获取模块,用于获取多个PE文件;
解析模块,用于解析多个PE文件,得到文件信息,文件信息包括多个PE文件的格式信息以及通用信息;
解析模块,还用于根据文件信息,确定多个PE文件对应的特征向量;
处理模块,用于对特征向量集合中每个特征向量进行聚类,得到聚簇集合,聚簇集合中任一聚簇包括的特征向量之间的相似度小于等于第一阈值,特征向量集合包括多个PE文件中每个PE文件对应的特征向量;
处理模块,还用于对聚簇集合中每个聚簇进行聚类,得到目标聚簇集合,多个目标聚簇中任一目标聚簇包括的聚簇之间的相似度小于等于第二阈值,第二阈值大于第一阈值;
显示模块,用于显示目标聚簇集合。
第三方面,本申请实施例还提供了一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,当计算机程序被处理器执行时,使得处理器实现上述第一方面中的任一种基于PE文件格式的恶意软件分析方法。
第四方面,本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时,实现第一方面的任一种基于PE文件格式的恶意软件分析方法。
第五方面,本申请实施例还提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行以实现如上述第一方面中任一项的任一种基于PE文件格式的恶意软件分析方法。
第二方面至第五方面中任意一种实现方式所带来的技术效果可参见第一方面中对应的实现方式所带来的技术效果,此处不再赘述。
附图说明
图1为本申请实施例提供的一种基于PE文件格式的恶意软件分析方法的应用场景示意图;
图2为本申请实施例提供的一种基于PE文件格式的恶意软件分析方法流程图;
图3为本申请实施例提供的一种聚簇集合示意图;
图4为本申请实施例提供的一种目标聚簇集合示意图;
图5为本申请实施例提供的一种基于PE文件格式的恶意软件分析方法的示例性流程图;
图6为本申请实施例提供的一种基于PE文件格式的恶意软件分析的装置示意图;
图7为本申请实施例提供的电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请技术方案的一部分实施例,而不是全部的实施例。基于本申请文件中记载的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请技术方案保护的范围。
需要说明的是,在本申请的描述中“多个”理解为“至少两个”。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。A与B连接,可以表示:A与B直接连接和A与B通过C连接这两种情况。另外,在本申请的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
网络中较大部分的网络攻击都是通过恶意软件实现的。因此,对恶意软件样本的分析是网络威胁检测重要的部分。但是恶意软件数量极其庞大,对恶意软件的分析目前大多依赖人工分析,效率较低,因此不可能对恶意软件逐个进行分析。此外,大量的恶意样本通常是由少数的恶意样本衍生而来,因此分析少数的样本就可以了解到同类样本的特点,而无需重复进行分析。
所以,针对高价值未知样本进行重点分析是样本分析的首要任务。在分析过程中,通常需要对收集到的样本进行筛选,去除已知样本和低价值的样本,重点针对高价值样本进行分析。
但筛选后的高价值样本数量依然较大,为了更快的对这些样本进行处理,本申请采用聚类的方法对上述样本进行分析。由于对样本进行聚类后,属于同一聚簇的样本具有相似性,因此只需对每个聚簇中的部分样本进行分析就可以掌握整个聚簇中的所有样本的信息,从而实现快速对大量未知样本进行分析,发现新家族、新变体等,节省了分析时间。
现有技术主要通过以下几种方式分析恶意软件。
在一种现有的技术方式中,通过使用文件哈希算法对文件进行编码,进而在进行相似文件检索时,将哈希值相同的文件作为相似文件,从而完成聚类。但哈希算法为了避免哈希碰撞,通常会被设计成一种随机性较大的算法,因此,即使文件相差不大,也可能会产生截然不同的哈希结果,随机性极大,距离难以衡量。
在另一种现有的技术方式中,使用机器学习,特别是深度学习方法进行文件表示和聚类的方法逐渐增多。但基于深度学习的方法往往需要对模型进行训练,难以应对未知的样本。效果好的模型通常会有复杂的结构,使用起来计算代价较高,在面对大量样本时,存在性能瓶颈,且这类方法生成的特征向量或最终的结果,通常是用户难以理解的高维向量,这造成了结果不可解释性,对于用户来说,这类结果难以有较好的分析参考作用。
可见,由于恶意软件本身的变化复杂且数量庞大,如何实现快速对大量PE文件格式的恶意软件进行分析,是目前亟需解决的问题。
有鉴于此,本申请实施例中,为了实时分析基于PE文件格式的恶意软件,提出了一种基于PE文件格式的恶意软件分析方法,包括:获取多个PE文件。解析多个PE文件,得到文件信息。其中,文件信息包括多个PE文件的格式信息、字节信息以及字符串信息。根据文件信息,确定多个PE文件对应的特征向量。对特征向量集合中每个特征向量进行聚类,得到聚簇集合。其中,聚簇集合中任一聚簇包括的特征向量之间的相似度小于等于第一阈值,特征向量集合包括多个PE文件中每个PE文件对应的特征向量。对聚簇集合中每个聚簇进行聚类,得到目标聚簇集合。其中,目标聚簇集合中任一目标聚簇包括的聚簇之间的相似度小于等于第二阈值。第二阈值大于第一阈值。显示目标聚簇集合。
下面对本申请实施例涉及的一些术语进行介绍:
1、可移植的可执行的文件(Portable Executable,PE)是微软视窗操作系统(Windows)上的程序文件,可以在Windows系统上运行,执行特定的功能。常见的可执行程序(Executable Program,EXE)文件、动态链接库(Dynamic Link Library,DLL)文件、系统(System,SYS)文件、组件对象模型(Component Object Model,COM)文件等都是PE文件。并且此类文件通常需要遵循特定的文件格式才可以在系统上正常运行。
2、恶意软件是指在计算机系统中执行恶意行为的软件,这类恶意行为通常包括感染文件、破坏系统、窃取数据等行为。在本申请的使用场景中,恶意软件是指存在恶意行为的PE文件,后文如无特殊说明,恶意软件、恶意样本、恶意代码、PE文件都指代此类软件。
3、聚类算法是指对一定数量的单个样本,按照各自的特点,将相似的样本判定为同一类样本的过程。聚类后的一类样本可以称为一个聚簇,一个聚簇内的样本应当是聚类算法认为都属于同一类型的样本。
4、哈希算法是指一种映射方法,通常是一种数学函数运算,可以将输入的数据转换成特定范围内的映射结果,这一结果称之为哈希值。不同的输入经过哈希算法后可能产生相同的结果,称之为哈希碰撞。哈希算法对输入的数据一般非常敏感,原始数据经过简单修改,最终的哈希值会产生极大的变化。通常,哈希算法通过哈希值难以推导出原有的数据。
特别地,以下结合说明书附图对本申请的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本申请,并不用于限定本申请,并且在不冲突的情况下,本申请实施例及实施例中的特征可以相互组合。
图1示出了本申请一种可选的基于PE文件格式的恶意软件分析方法的应用场景示意图,该场景中包括服务端100以及终端101,服务端100与终端101之间可以通过网络实现可通信的连接,以实现本申请的基于PE文件格式的恶意软件的分析方法。
用户可以使用服务端100通过网络与终端101交互,例如接收或发送消息等。终端101上可以安装有各种客户端应用程序,例如程序编写类应用、网页浏览器应用、搜索类应用等。终端101可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、台式计算机等等。服务端100可以为独立的服务器或者是多个服务器组成的服务器集群来实现。
服务端100用于获取多个PE文件。解析多个PE文件,得到文件信息。其中,文件信息包括多个PE文件的格式信息、字节信息以及字符串信息。根据文件信息,确定多个PE文件对应的特征向量。对特征向量集合中每个特征向量进行聚类,得到聚簇集合。其中,聚簇集合中任一聚簇包括的特征向量之间的相似度小于等于第一阈值,特征向量集合包括多个PE文件中每个PE文件对应的特征向量。对聚簇集合中每个聚簇进行聚类,得到目标聚簇集合。其中,目标聚簇集合中任一目标聚簇包括的聚簇之间的相似度小于等于第二阈值。第二阈值大于第一阈值。显示目标聚簇集合。
可以理解的是,本申请实施例提供的基于PE文件格式的恶意软件分析方法可以由服务端100执行,也可以由终端101执行。
如图2所示,本申请实施例提供的一种基于PE文件格式的恶意软件的分析方法流程图,具体可以包括以下操作。以下,以服务端为执行主体为例进行说明。
S201:获取多个PE文件。
在一种可能的实施例中,Windows是当下使用最为广泛的桌面操作系统,其可执行文件采用的是PE文件格式。服务端可以获取Windows操作系统的PE文件。
在另一种可能的实施例中,服务端可以登录能够获取PE文件的网址,获取多个PE文件。
S202:解析多个PE文件,得到文件信息。
其中,文件信息包括多个PE文件的格式信息以及通用信息。
在一种可能的实施例中,PE文件是以线性结构组织成的数据流,服务端可以依据PE文件的基本结构,按照顺序由MS-DOS头开始,接着是PE头、节表,紧接着的是所有节实体进行解析,得到文件信息。
接下来将详细介绍文件信息。
格式信息指与PE格式相关的信息。由于PE格式文件需要遵循一定的格式以便系统对其进行加载。在格式信息中,包含数值型的信息,也包含以字符串形式的信息。格式信息可以归纳为包含以下五类:
1)文件基本信息:文件基本信息是与文件总体相关的基本信息,这类信息包括文件真实长度、文件虚拟空间长度、导入导出函数数量、是否含有调试模式、线程相关信息、重定向、特殊标志数量等。
2)文件头信息:文件头信息是指文件头包含的基本信息,这类信息是系统在加载文件时主要需要处理的信息。这些信息包括文件头时间戳、目标机器、目标系统、动态链接库(Dynamic Link Library,DLL),特征(字符串)、文件链接器版本、子系统版本、代码块长度、头部长度等。
3)导入函数:导入函数是程序运行前需要导入的其他必要函数列表,这里,本发明提取重要导入函数的集合,以函数名字符串表示一个导入函数。
4)导出函数:导出函数是指PE文件可以导出的函数,与导入函数一样,这里选取导出函数的集合,以函数名字符串表示一个导出函数。
5)段信息:PE文件的数据构成可以分成数据段、代码段、堆栈段等不同段。段信息是指与这些段有关的信息。这些信息包括段名、长度、熵、虚拟长度、代表性字符串列表等。
通用信息是指与PE文件信息没有直接联系的数据,主要涉及一些二进制层面和编码层面的信息。通用信息可以归纳为以下三类:
1)字节直方图:字节直方图是通过统计字节信息生成的,将文件视作256种字节的字节流,统计每种字节的数量可以生成字节直方图。字节直方图表示了256种字节的分布情况。
2)字节熵直方图:字节熵直方图同样是通过统计字节信息生成的,字节熵直方图使用一个定长的窗口,以指定步长移动对字节进行采样。每次移动计算当前窗口的以2为对数的熵值,对所有的窗口的熵值进行直方图统计,可以得到256维的特征向量。
3)字符串的相关信息:字符串的相关信息是指文件中所有由可打印字符(编码范围在0x20到0x7f中)构成,且长度大于5的字节串的集合。这些字符串本身数量庞大,因此字符串本身不会作为信息。本申请统计字符串的数量、平均长度、可打印字符的直方图、可打印字符的字符熵。此外,通过正则匹配统计文件路径、统一资源定位系统(uniformresource locator,URL)、注册表键、特定字符串(如马克·茨柏克沃斯基(MarkZbikowski,MZ))出现的次数也作为需要提取的重要信息。
S203:根据文件信息,确定多个PE文件对应的特征向量。
在一种可能的实施例中,在文件信息为数值型的信息的情况下,服务端将该数值型的信息作为特征向量。例如,假设PE文件的文件信息为数值型的信息。文件基本信息为(131,167…153)字节直方图为(24,79…62)。则特征向量为将文件基本信息和字节直方图的数值型的信息进行合并,得到的(131,167…153,24,79…62)。可以理解的是,在文件信息包含的多种信息为数值型的信息的情况下,服务端将该数值型的信息进行合并,作为特征向量。本申请对于合并数值型的信息的先后顺序不做具体限定。
在另一种可能的实施例中,服务端解析的从PE文件中直接提取的信息有些会以文本形式存在,为了后续衡量所有的信息的相似度,本申请对文本型的信息进行向量化,得到文本向量。并将得到的文本向量与数值型的信息合并,作为PE文件的特征向量。
例如,本申请服务端可以对于导入函数、导出函数、全文字符串等不同种类的文本型的信息分别进行向量化得到文本向量。最终,将PE文件对应的所有的文本向量和数值型的信息进行合并,得到特征向量。
可以理解的是,由于文本向量和数值型的信息进行合并的顺序,对于后续进行聚类没有影响。因此,本申请对文本向量和数值型的信息进行合并的顺序没有具体的限定。
在一种可能的实施例中,为了将文本型的信息向量化,服务端可以采用特征哈希(Feature Hash)方法将文本型的信息向量化。其中,特征哈希方法可以将字符型信息编码成定长的向量。
特征哈希方法可以形式化的表述为如下过程,字符串集合满足以下公式:
S={(si,ni)|i=1,2,3,...,l}
其中si表示第i个字符串,ni代表字符串si出现的次数,l表示集合长度。
上述方法中,由于通过特征哈希方法将文本型的信息向量化,相似的两个文本的向量会很相似。因此为了便于后续根据特征向量进行聚类,本申请可以通过特征哈希方法将文本型的信息进行向量化,得到文本向量。
例如,哈希算法伪代码如下:
在另一种可能的实施例中,本申请服务端也可以采用词袋(Bag of Word)模型、神经网络语言模型(Neural Network Language Model,NNLM)等方法将文本型的信息进行向量化。
S204:对特征向量集合中每个特征向量进行聚类,得到聚簇集合。
其中,聚簇集合中任一聚簇包括的特征向量之间的相似度小于等于第一阈值。特征向量集合包括多个PE文件中每个PE文件对应的特征向量。
由于特征向量集合中的特征向量在各个不同维度上的范围有很大的差异。例如,文件长度通常会出现过万甚至百万的数值,而熵通常数值小于1。若不加处理,不同维度的范围差异会极大的影响各个不同特征向量在计算距离时的重要性。例如,数值较小的特征向量在计算距离时会被严重忽略,而该特征向量对应的实际意义可能是比较重要的。
因此本申请采用特征缩放方法对各个维度的特征向量的数值进行处理,将各个特征的范围差异进行调整,同时保证能够反映出样本的特征。
假设特征向量为V=(v1,v2,v3,...,vm),特征缩放函数满足以下公式:
其中,vi为特征向量第i个位置上的值。
在一种可能的情况中,服务端可以采用缩放函数缩放多个特征向量,得到缩放后的多个特征向量。其中,在多个特征向量中任一特征向量的第i个位置上的数值大于零的情况下,缩放后的特征向量的第i个位置上的数值小于缩放前的特征向量的第i个位置上的数值。
例如,缩放前的特征向量为(12,45,79,67)。则采用缩放函数缩放后的特征向量为(log 13,log46,log80,log68)。又例如,缩放前的特征向量为(-5,-123,-45,-20)。则采用缩放函数缩放后的特征向量为(-log6,-log124,-log46,-log21)。
为了将相似的PE文件进行聚集,本申请采用一种基于贪心思想的聚类算法对特征向量进行聚类。基于贪心思想的聚类算法能够以较低的时间复杂度完成聚类任务,同时保证一定的效果可信性。
需要说明的是,本申请实施例并不对聚类算法进行限定,服务端还可以采用其他的聚类算法,如均值漂移聚类算法、层次聚类算法等对特征向量进行聚类。
在一种可选的实施例中,服务端可以将特征向量集合中任意一个特征向量作为起始向量,将特征向量集合中包含的与起始向量相似度小于等于第一阈值的其他特征向量聚类形成聚簇。将特征向量集合中任意一个与起始向量的相似度大于第一阈值的特征向量作为新的起始点,返回执行将特征向量集合中包含的与起始点相似度小于等于第一阈值的其他特征向量聚类形成聚簇,得到聚簇集合。
可以理解的是,第一阈值可以5、10等本领域技术人员预先设置的经验数值,并且可以根据具体的应用场景进行合理设置。相似度也可以是欧式距离、曼哈顿距离等距离,本申请不做具体限定。
例如,服务端可以采用距离度量算法确认特征向量之间的距离。假设第一阈值为2。服务端可以将特征向量集合中任意一个特征向量作为起始向量。服务端在样本集合中,获取其他各个元素,即特征向量。确定其他特征向量与起始向量之间的距离。在特征向量与起始向量的距离小于第一阈值的情况下,该特征向量与起始向量在同一个聚簇中。
例如,聚类算法伪代码如下:
其中,E={ei|i=1,2,3,...,k}为样本集合。ei为其中第i个样本。距离度量算法Fdis(ei,ej)输出样本为ei和ej的距离。距离阈值∈ss为实数。聚簇集合C={ci}样本是聚类结果的集合,其中ci表示聚簇集合中的第i个聚簇。ci可以包含样本集合E中的多个样本。
可选的,本申请服务端可以采用距离运算作为贪心思想的聚类算法的基础运算。
假设样本集合中的样本数量为n,则服务端可以确定上述贪心思想的聚类算法的最高时间复杂度为O(n2),表示所有的特征向量都自成一个聚簇,运行该算法需要的时间复杂度。
最优时间复杂度为O(n),表示所有的特征向量都属于一个聚簇,运行该算法需要的时间复杂度。
平均时间复杂度为O(n log n),表示介于最高时间复杂度与最优时间复杂度之间的时间复杂度。可以表示大部分概率的算法运行中,既有多个特征向量形成的聚簇,又有单个特征向量形成的聚簇需要的时间复杂度。
通过上述方法,用户可以及时确定采用贪心思想的聚类算法的时间复杂度。便于用户后续及时分析PE文件格式的恶意软件。
S205:对聚簇集合中每个聚簇进行聚类,得到目标聚簇集合。
其中,目标聚簇集合中任一目标聚簇包括的聚簇之间的相似度小于等于第二阈值。第二阈值大于第一阈值。
可以理解的是,第二阈值可以10、15等本领域技术人员预先设置的经验数值,并且可以根据具体的应用场景进行合理设置。
为了缩小聚簇数量、发现遗漏的聚簇,对在聚簇集合中没有合并到同一聚簇中的相似样本进行二次分析,将已形成的聚簇进行整合。服务端可以对聚簇集合中每个聚簇进行聚类,得到目标聚簇集合。
在一种可选的实施例中,聚簇集合包含M个聚簇。其中,M为正整数。服务端将第N个聚簇中任意一个特征向量作为起始向量。其中,N为大于0小于等于M的整数。服务端确定起始向量与第N+K个聚簇包含的特征向量之间的相似度。其中,K为大于0,小于等于M-N的整数。服务端在相似度小于等于第二阈值的情况下,将第N个聚簇与第N+k个聚簇作为目标聚簇,得到目标聚簇集合。
例如,服务端可以采用距离度量算法确认聚簇之间的距离。假设第二阈值为5。服务端可以将聚簇集合中任意一个特征向量作为起始向量。服务端在样本集合中,获取其他各个元素,即特征向量。确定其他特征向量与起始向量之间的距离。在第K个聚簇中的所有特征向量与起始向量的距离都小于第二阈值的情况下,该第K个聚簇与起始向量所在的聚簇在同一个目标聚簇中。
例如,聚类算法伪代码如下:
其中,C={ci|i=1,2,3,...,p}为聚簇集合。ci为其中第i个样本。距离度量算法Fdis(ei,ej)输出样本为ei和ej的距离。距离阈值∈c为实数。聚簇集合C={ci}样本是聚类结果的集合,其中ci表示聚簇集合中的第i个聚簇。ci可以包含聚簇集合C中的多个聚簇。
可以理解的是,本申请中对聚簇集合中每个聚簇进行聚类,确定目标聚簇集合的时间复杂度的方式与上文中对特征向量集合中每个特征向量进行聚类,确定聚簇集合的时间复杂度的方式相同,此处不再赘述。
上述方法中,采用贪心聚类算法进行聚类,可以进行快速聚类,发现关联样本,分析基于PE文件格式的恶意软件。
如图3所示,服务端对特征向量集合中每个特征向量进行聚类,得到聚簇集合。其中,聚簇集合包阔聚簇A、聚簇B、聚簇C、聚簇D以及聚簇E。如图4所示,服务端对聚簇集合中每个聚簇进行聚类,得到目标聚簇集合。其中,目标聚簇集合包括目标聚簇AB、目标聚簇C、目标聚簇D以及目标聚簇E。
S206:显示目标聚簇集合。
服务端向终端发送目标聚簇集合。终端接收到上述目标聚簇集合之后,将该目标聚簇集合显示在电子屏幕中,以使用户进行查看。
上述方法中,通过将目标聚簇集合显示在电子屏幕中,以使用户进行查看。提高了用户使用体验,使用户能够及时分析恶意软件。便于用户通过目标聚簇集合,了解掌握整个目标聚簇中的所有恶意软件的信息。从而实现对大量未知恶意软件的快速分析,节省分析时间。
如图5所示,本申请提供一种基于PE文件格式的恶意软件分析的示例性流程图。
S501、获取多个PE文件;
S502、解析多个PE文件,得到文件信息;
S503、在文件信息包括数值型的信息和文本型的信息的情况下,将文本型的信息进行向量化,得到文本向量;
S504、将文本向量的数值与数值型的信息的数值合并,得到特征向量;
S505、采用缩放函数缩放多个特征向量,得到缩放后的多个特征向量;
S506、将特征向量集合中任意一个特征向量作为起始向量,将特征向量集合中包含的与起始向量相似度小于等于第一阈值的其他特征向量聚类形成聚簇;
S507、将特征向量集合中任意一个与起始向量的相似度大于第一阈值的特征向量作为新的起始点,返回执行将特征向量集合中包含的与起始点相似度小于等于第一阈值的其他特征向量聚类形成聚簇,得到聚簇集合;
S508、将第N个聚簇中任意一个特征向量作为起始向量,N为大于0小于等于M的整数;
S509、确定起始向量与第N+K个聚簇包含的特征向量之间的相似度,K为大于0,小于等于M-N的整数;
S510、在相似度小于等于第二阈值的情况下,将第N个聚簇与第N+k个聚簇作为目标聚簇,得到目标聚簇集合;
S511、显示目标聚簇集合。
进一步地,基于相同的技术构思,本申请实施例还提供了一种PE文件格式的恶意软件分析装置,该PE文件格式的恶意软件分析装置用以实现本申请实施例的上述的PE文件格式的恶意软件分析方法流程。参阅图6所示,该PE文件格式的恶意软件分析装置包括:获取模块601、解析模块602、处理模块603,显示模块604。其中:
获取模块601,用于获取多个PE文件;
解析模块602,用于解析多个PE文件,得到文件信息,文件信息包括多个PE文件的格式信息以及通用信息;
解析模块602,还用于根据文件信息,确定多个PE文件对应的特征向量;
处理模块603,用于对特征向量集合中每个特征向量进行聚类,得到聚簇集合,聚簇集合中任一聚簇包括的特征向量之间的相似度小于等于第一阈值,特征向量集合包括多个PE文件中每个PE文件对应的特征向量;
处理模块603,还用于对聚簇集合中每个聚簇进行聚类,得到目标聚簇集合,目标聚簇集合中任一目标聚簇包括的聚簇之间的相似度小于等于第二阈值,第二阈值大于第一阈值;
显示模块604,用于显示目标聚簇集合。
可选的,根据文件信息,确定多个PE文件对应的特征向量,处理模块603,具体用于:
在文件信息包括数值型的信息和文本型的信息的情况下,将文本型的信息进行向量化,得到文本向量;
将文本向量的数值与数值型的信息的数值合并,得到特征向量。
可选的,根据文件信息,确定多个PE文件对应的特征向量,处理模块603,还用于:
在文件信息为数值型的信息的情况下,将数值型的信息作为特征向量。
可选的,对特征向量集合中每个特征向量进行聚类之前,处理模块603还用于:
采用缩放函数缩放多个特征向量,得到缩放后的多个特征向量,其中,在多个特征向量中任一特征向量的第i个位置上的数值大于零的情况下,缩放后的特征向量的第i个位置上的数值小于缩放前的特征向量的第i个位置上的数值。
可选的,缩放函数满足以下公式:
其中,vi为特征向量第i个位置上的值。
可选的,对特征向量集合中每个特征向量进行聚类,得到聚簇集合,处理模块603具体用于:
将特征向量集合中任意一个特征向量作为起始向量,将特征向量集合中包含的与起始向量相似度小于等于第一阈值的其他特征向量聚类形成聚簇;
将特征向量集合中任意一个与起始向量的相似度大于第一阈值的特征向量作为新的起始点,返回执行将特征向量集合中包含的与起始点相似度小于等于第一阈值的其他特征向量聚类形成聚簇,得到聚簇集合。
可选的,聚簇集合包含M个聚簇,M为正整数,对聚簇集合中每个聚簇进行聚类,得到目标聚簇集合,处理模块603具体用于:
将第N个聚簇中任意一个特征向量作为起始向量,N为大于0小于等于M的整数;
确定起始向量与第N+K个聚簇包含的特征向量之间的相似度,K为大于0,小于等于M-N的整数;
在相似度小于等于第二阈值的情况下,将第N个聚簇与第N+k个聚簇作为目标聚簇,得到目标聚簇集合。
基于相同的技术构思,本申请实施例还提供了一种电子设备,该电子设备可实现本申请上述实施例提供的PE文件格式的恶意软件分析方法流程。在一种实施例中,该电子设备可以是服务器,也可以是终端设备或其他电子设备。如图7所示,该电子设备可包括:
至少一个处理器701,以及与至少一个处理器701连接的存储器702,本申请实施例中不限定处理器701与存储器702之间的具体连接介质,图7中是以处理器701和存储器702之间通过总线700连接为例。总线700在图7中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线700可以分为地址总线、数据总线、控制总线等,为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。或者,处理器701也可以称为控制器,对于名称不做限制。
在本申请实施例中,存储器702存储有可被至少一个处理器701执行的指令,至少一个处理器701通过执行存储器702存储的指令,可以执行前文论述的一种PE文件格式的恶意软件分析方法。处理器701可以实现图5所示的装置中各个模块的功能。
其中,处理器701是该装置的控制中心,可以利用各种接口和线路连接整个该控制设备的各个部分,通过运行或执行存储在存储器702内的指令以及调用存储在存储器702内的数据,该装置的各种功能和处理数据,从而对该装置进行整体监控。
在一种可能的设计中,处理器701可包括一个或多个处理单元,处理器701可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器701中。在一些实施例中,处理器701和存储器702可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器701可以是通用处理器,例如CPU、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的一种PE文件格式的恶意软件分析方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器702作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器702可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器702是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器702还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
通过对处理器701进行设计编程,可以将前述实施例中介绍的一种PE文件格式的恶意软件分析方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行图2所示的实施例的一种PE文件格式的恶意软件分析方法的步骤。如何对处理器701进行设计编程为本领域技术人员所公知的技术,这里不再赘述。
基于同一发明构思,本申请实施例还提供一种存储介质,该存储介质存储有计算机指令,当该计算机指令在计算机上运行时,使得计算机执行前文论述的一种PE文件格式的恶意软件分析方法。
在一些可能的实施方式中,本申请提供一种PE文件格式的恶意软件分析方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在装置上运行时,程序代码用于使该控制设备执行本说明书上述描述的根据本申请各种示例性实施方式的一种PE文件格式的恶意软件分析方法中的步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (11)
1.一种基于PE文件格式的恶意软件分析方法,其特征在于,所述方法包括:
获取多个PE文件;
解析所述多个PE文件,得到文件信息,所述文件信息包括所述多个PE文件的格式信息以及通用信息;
根据所述文件信息,确定所述多个PE文件对应的特征向量;
对特征向量集合中每个特征向量进行聚类,得到聚簇集合,所述聚簇集合中任一聚簇包括的特征向量之间的相似度小于等于第一阈值,所述特征向量集合包括所述多个PE文件中每个PE文件对应的特征向量;
对所述聚簇集合中每个聚簇进行聚类,得到目标聚簇集合,所述目标聚簇集合中任一目标聚簇包括的所述聚簇之间的相似度小于等于第二阈值,所述第二阈值大于所述第一阈值;
显示所述目标聚簇集合。
2.根据权利要求1所述的方法,其特征在于,所述根据所述文件信息,确定所述多个PE文件对应的特征向量,具体包括:
在所述文件信息包括数值型的信息和文本型的信息的情况下,将所述文本型的信息进行向量化,得到文本向量;
将所述文本向量的数值与所述数值型的信息的数值合并,得到所述特征向量。
3.根据权利要求1所述的方法,其特征在于,所述根据所述文件信息,确定所述多个PE文件对应的特征向量,还包括:
在所述文件信息为数值型的信息的情况下,将所述数值型的信息作为所述特征向量。
4.根据权利要求1至3中任一所述的方法,其特征在于,所述对特征向量集合中每个特征向量进行聚类之前,所述方法还包括:
采用缩放函数缩放多个特征向量,得到缩放后的多个特征向量,其中,在所述多个特征向量中任一特征向量的第i个位置上的数值大于零的情况下,缩放后的特征向量的第i个位置上的数值小于缩放前的特征向量的第i个位置上的数值。
6.根据权利要求1所述的方法,其特征在于,所述对所述特征向量集合中每个特征向量进行聚类,得到聚簇集合,具体包括:
将所述特征向量集合中任意一个特征向量作为起始向量,将所述特征向量集合中包含的与所述起始向量相似度小于等于所述第一阈值的其他特征向量聚类形成聚簇;
将所述特征向量集合中任意一个与所述起始向量的相似度大于第一阈值的特征向量作为新的起始点,返回执行将所述特征向量集合中包含的与所述起始点相似度小于等于所述第一阈值的其他特征向量聚类形成聚簇,得到所述聚簇集合。
7.根据权利要求1所述的方法,其特征在于,所述聚簇集合包含M个聚簇,所述M为正整数,所述对所述聚簇集合中每个聚簇进行聚类,得到目标聚簇集合,具体包括:
将第N个聚簇中任意一个特征向量作为起始向量,所述N为大于0小于等于M的整数;
确定所述起始向量与第N+K个聚簇包含的特征向量之间的相似度,所述K为大于0,小于等于M-N的整数;
在所述相似度小于等于第二阈值的情况下,将所述第N个聚簇与所述第N+k个聚簇作为目标聚簇,得到所述目标聚簇集合。
8.一种基于PE文件格式的恶意软件分析装置,其特征在于,所述装置包括:
获取模块,用于获取多个PE文件;
解析模块,用于解析所述多个PE文件,得到文件信息,所述文件信息包括所述多个PE文件的格式信息以及通用信息;
所述解析模块,还用于根据所述文件信息,确定所述多个PE文件对应的特征向量;
处理模块,用于对特征向量集合中每个特征向量进行聚类,得到聚簇集合,所述聚簇集合中任一聚簇包括的特征向量之间的相似度小于等于第一阈值,所述特征向量集合包括所述多个PE文件中每个PE文件对应的特征向量;
所述处理模块,还用于对所述聚簇集合中每个聚簇进行聚类,得到目标聚簇集合,所述目标聚簇集合中任一目标聚簇包括的所述聚簇之间的相似度小于等于第二阈值,所述第二阈值大于所述第一阈值;
显示模块,用于显示所述目标聚簇集合。
9.一种电子设备,其特征在于,包括:存储器以及控制器;
存储器,用于存储程序指令;
控制器,用于调用所述存储器中存储的程序指令,按照获得的程序执行权利要求1-7中任一项所述的方法。
10.一种计算机存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令用于执行如权利要求1-7中任一所述方法的步骤。
11.一种计算机程序产品,其特征在于,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述如权利要求1-7中任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211732234.6A CN116192462A (zh) | 2022-12-30 | 2022-12-30 | 一种基于pe文件格式的恶意软件分析方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211732234.6A CN116192462A (zh) | 2022-12-30 | 2022-12-30 | 一种基于pe文件格式的恶意软件分析方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116192462A true CN116192462A (zh) | 2023-05-30 |
Family
ID=86441599
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211732234.6A Pending CN116192462A (zh) | 2022-12-30 | 2022-12-30 | 一种基于pe文件格式的恶意软件分析方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116192462A (zh) |
-
2022
- 2022-12-30 CN CN202211732234.6A patent/CN116192462A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110808968B (zh) | 网络攻击检测方法、装置、电子设备和可读存储介质 | |
CN106844410B (zh) | 确定多媒体内容的摘要的质量 | |
CN107204960B (zh) | 网页识别方法及装置、服务器 | |
CN107038173B (zh) | 应用查询方法和装置、相似应用检测方法和装置 | |
CN112800427B (zh) | webshell检测方法、装置、电子设备和存储介质 | |
CN111352907A (zh) | 流水文件解析方法、装置、计算机设备和存储介质 | |
CN104978521B (zh) | 一种实现恶意代码标注的方法及系统 | |
RU2722692C1 (ru) | Способ и система выявления вредоносных файлов в неизолированной среде | |
CN110750615B (zh) | 文本重复性判定方法和装置、电子设备和存储介质 | |
CN109933502B (zh) | 电子装置、用户操作记录的处理方法和存储介质 | |
WO2019148712A1 (zh) | 钓鱼网站检测方法、装置、计算机设备和存储介质 | |
CN112765324B (zh) | 一种概念漂移检测方法及装置 | |
Hadi et al. | Aobtm: Adaptive online biterm topic modeling for version sensitive short-texts analysis | |
CN112148305A (zh) | 一种应用检测方法、装置、计算机设备和可读存储介质 | |
CN111177719A (zh) | 地址类别判定方法、装置、计算机可读存储介质及设备 | |
US11762730B2 (en) | Selection of outlier-detection programs specific to dataset meta-features | |
CN111930610B (zh) | 软件同源性检测方法、装置、设备及存储介质 | |
CN110855635B (zh) | Url识别方法、装置及数据处理设备 | |
CN112130944A (zh) | 页面异常的检测方法、装置、设备及存储介质 | |
CN117312825A (zh) | 一种目标行为检测方法、装置、电子设备及存储介质 | |
CN112231696A (zh) | 恶意样本的识别方法、装置、计算设备以及介质 | |
CN115801455B (zh) | 一种基于网站指纹的仿冒网站检测方法及装置 | |
CN109919180B (zh) | 电子装置、用户操作记录数据的处理方法和存储介质 | |
WO2016127858A1 (zh) | 网页入侵脚本特征的识别方法及设备 | |
CN116186708A (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 |