CN108446559B - 一种apt组织的识别方法及装置 - Google Patents
一种apt组织的识别方法及装置 Download PDFInfo
- Publication number
- CN108446559B CN108446559B CN201810150813.7A CN201810150813A CN108446559B CN 108446559 B CN108446559 B CN 108446559B CN 201810150813 A CN201810150813 A CN 201810150813A CN 108446559 B CN108446559 B CN 108446559B
- Authority
- CN
- China
- Prior art keywords
- apt
- sample file
- organization
- function
- malicious sample
- 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
- 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
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Medical Informatics (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)
Abstract
本文公开了一种APT组织的识别方法及装置,所述方法包括:对待检测样本文件进行逆向分析,获取所述待检测样本文件的函数;基于预先形成的特征集以及所述待检测样本文件的函数,形成所述待检测样本文件的特征向量,所述特征向量表示所述待检测样本文件中函数与所述特征集的关系,一个所述特征集为相似函数集的集合,该相似函数集中的函数对应同一APT组织;使用预先建立的APT组织溯源模型基于所述待检测样本文件的特征向量,得到所述待检测样本文件的APT组织标识,所述APT组织溯源模型为基于机器学习算法建立的计算模型。本申请至少能够对APT组织进行有效溯源。
Description
技术领域
本发明涉及数据处理技术领域,尤指一种APT组织的识别方法及装置。
背景技术
高级持续性威胁(APT,Advanced Persistent Threat)与蠕虫、木马或病毒不同,APT是指有组织的网络攻击者出于经济利益、政治或名誉的驱使而精心策划的复杂入侵计划,目标是秘密潜入系统。一旦植入,可能潜伏数月甚至数年之久,收集关键信息,造成严重破坏。
目前,尚未提出针对APT组织及其攻击的有效防御方案。而APT组织及其攻击的有效防御,必然需要对APT组织进行有效溯源。
发明内容
本申请提供了一种APT组织的识别方法及装置,至少能够对APT组织进行有效溯源。
本申请提供了如下技术方案。
一种高级持续性威胁APT组织的识别方法,包括:
对待检测样本文件进行逆向分析,获取所述待检测样本文件的函数;
基于预先形成的特征集以及所述待检测样本文件的函数,形成所述待检测样本文件的特征向量,所述特征向量表示所述待检测样本文件中函数与所述特征集的关系,一个所述特征集为相似函数集的集合,该相似函数集中的函数对应同一APT组织;
使用预先建立的APT组织溯源模型基于所述待检测样本文件的特征向量,得到所述待检测样本文件的APT组织标识,所述APT组织溯源模型为基于机器学习算法建立的计算模型。
其中,所述方法还包括:分析恶意样本文件的函数相似度,形成所述特征集,并采用机器学习算法训练得到所述APT组织溯源模型,所述APT组织溯源模型以预先标记的APT组织标识为输出、以样本文件中函数与所述特征集的关系为输入。
其中,所述分析恶意样本文件的函数相似度,形成特征集,包括:对所述恶意样本文件进行逆向分析,获取所述恶意样本文件的函数;按照函数相似度对所述恶意样本文件的函数进行聚类,得到所述特征集。
其中,所述按照函数相似度对所述恶意样本文件的函数进行聚类,包括:按照所述函数对应的16进制字节码字符串的相似度对所述恶意样本文件的函数进行聚类。
其中,所述采用机器学习算法训练得到所述APT组织溯源模型,包括:为所述恶意样本文件标记APT组织标识,并形成所述恶意样本文件的特征向量;以所述恶意样本文件的APT组织标识为结果、所述恶意样本文件的特征向量为参数采用机器学习算法训练得到所述APT组织溯源模型。
其中,所述为所述恶意样本文件标记APT组织标识,至少包括如下之一:
将共同特征集的个数超出预定阈值的多个恶意样本文件归为同一APT组织,并为所述归为同一APT组织的恶意样本文件标记APT组织标识;
对于已知属于同一APT组织的恶意样本文件,直接为其标记APT组织标识。
其中,利用IDA实现所述逆向分析。
其中,一个所述特征集通过特征集标识和其所包含相似函数集的标识表示。
其中,所述特征向量包含与所述特征集一一对应的分量值,所述分量值指示样本文件是否具有属于相对应特征集的函数。
一种高级持续性威胁APT组织的识别装置,包括:处理器、存储器;所述存储器存储有计算机程序,所述处理器配置为读取所述计算机程序以执行上述APT组织的识别方法的操作。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述APT组织的识别方法的步骤。
本申请的优点至少包括:
本发明实施例中,基于反编译样本文件得到的高级语言(比如,C语言、C++等)进行APT组织的识别,能够更有效、更准确的对APT组织的攻击进行溯源,进而高效精准的识别发出攻击的APT组织。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1为实施例一APT组织识别方法的流程示意图;
图2为实施例一APT组织溯源模型的构建流程示意图;
图3为通过IDA对恶意样本文件1进行逆向处理后得到的文件信息示意图;
图4为通过IDA对恶意样本文件2进行逆向处理后得到的文件信息示意图;
图5为恶意样本文件1经过IDA逆向处理后的IDA编译汇编语言示意图;
图6为恶意样本文件2经过IDA逆向处理后的IDA编译汇编语言示意图;
图7为实施例二的计算设备的示例性结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
尽管机器学习和AI技术已经引入了安全领域,用于对样本的自动化分析、分类等。但目前通常是将可执行文件等二进制数据转化为图片,然后通过机器学习技术基于图片相似度来识别同类样本。而目前,通过样本对攻击者和攻击组织进行分析和判定,则依赖于专家经验。基于专家经验对攻击者和攻击组织进行分析和判定的方式最大的问题是效率,专家是重量级资源,能够覆盖的范围非常有限,无法实现全面的监测和发现以APT为代表的针对性攻击,因而只能在高度怀疑或已确定严重安全事件发生的时候才会进行防御。
基于图片相似度识别同类样本的方式,在面对APT攻击时,难以取得类似的效果。主要原因如下:1)基于图片相似度进行恶意样本分类需要对大量的样本进行训练,而APT攻击样本很少;2)APT组织进行攻击时,通常将多平台、多用途的组件进行组合,基于图片相似度的方式难以找出这些组件之间的联系,也就无法识别APT组织的攻击。针对上述问题,本申请提出一种APT组织的识别方案,通过该方案能够对APT组织的攻击进行有效溯源,进而高效精准的识别发出攻击的APT组织。
本申请中术语解释如下:
IDA:反汇编工具,是进行逆向安全测试的必备工具,本申请利用IDA对文件进行逆向分析以得到该文件的函数。
需要说明的是,本申请所述的样本文件(包括恶意样本文件、待检测样本文件等)可以为可移植的可执行(PE,Portable Executable)文件。PE文件是win32环境自身所带的执行体文件格式,其部分特性继承自Unix的通用对象文件格式(COFF,Common Object FileFormat)文件格式。PE表示该文件格式是跨win32平台的,即使Windows运行在非Intel的CPU上,任何Win32平台的PE装载器都能识别和使用该文件格式的文件。目前,所有Win32执行体(除了VxD和16位的DLL)都使用PE文件格式,如EXE文件、DLL文件等,包括NT的内核模式驱动程序(Kernel Mode Driver)。
需要说明的是,本申请所述APT组织的识别方法及装置可通过任何能够实现本文所述功能的计算设备来实现。例如,计算设备可以被体现为(但不限于)服务器计算机、分布式计算系统、多处理器系统和/或被配置为执行本文所述功能的任何其他计算设备。
下面对本申请技术方案的实现方式进行说明。
实施例一
一种APT组织的识别方法,如图2所示,可包括:
步骤201,对待检测样本文件进行逆向分析,获取所述待检测样本文件的函数;
步骤202,基于预先形成的特征集以及所述待检测样本文件的函数,形成所述待检测样本文件的特征向量,所述特征向量表示所述待检测样本文件中函数与所述特征集的关系,一个所述特征集为相似函数集的集合,该相似函数集中的函数对应同一APT组织;
步骤203,使用预先建立的APT组织溯源模型基于所述待检测样本文件的特征向量,得到所述待检测样本文件的APT组织标识,所述APT组织溯源模型为基于机器学习算法建立的计算模型。
本实施例的方法,基于反编译样本文件得到的高级语言(比如,C语言、C++等)进行APT组织的识别,能够更有效、更准确的对APT组织的攻击进行溯源,进而高效精准的识别发出攻击的APT组织。
本实施例的方法,还可以包括:分析恶意样本文件的函数相似度,形成所述特征集,并采用机器学习算法训练得到所述APT组织溯源模型,所述APT组织溯源模型以预先标记的APT组织标识为输出、以样本文件中函数与所述特征集的关系为输入。本实施例中,通过将恶意样本文件的函数相似度与机器学习算法相结合,建立APT组织溯源模型,实现了机器学习技术在攻击组织的分析和判定中的应用,可自动完成样本文件的攻击组织分析和判断,不再依赖于专家经验,不仅大大提高了对攻击组织进行分析和判定的效率,节省了专家资源,而且实现了以APT为代表的针对性攻击的全面监测和发现,从而在严重安全事件发生之前对该针对性攻击进行有效防御,有效避免了重大安全事件的发生。
本实施例中,所述分析恶意样本文件的函数相似度,形成特征集,可以包括:对所述恶意样本文件进行逆向分析,获取所述恶意样本文件的函数;按照函数相似度对所述恶意样本文件的函数进行聚类,得到所述特征集。由于较少的攻击样本仍可提取出大量函数,而且函数相似度可以体现多平台、多用途的组件之间的联系,因此,以函数相似度形成特征集,并将该特征集应用于APT组织溯源模型的建立、以及待检测样本文件的识别中,更适用于攻击样本较少且组件分散的APT组织的识别。
这里,可以按照所述函数对应的16进制字节码字符串的相似度对所述恶意样本文件的函数进行聚类。需要说明的是,实际应用中,还可以采用其他方式来实现对恶意样本文件中函数的聚类。对此,本文不予限制。
本实施例中,采用机器学习算法训练得到所述APT组织溯源模型的过程,可以包括:为所述恶意样本文件标记APT组织标识,并形成所述恶意样本文件的特征向量;以所述恶意样本文件的APT组织标识为结果、所述恶意样本文件的特征向量为参数采用机器学习算法训练得到所述APT组织溯源模型。这里,所述为所述恶意样本文件标记APT组织标识,可以包括如下之一或两项:将共同特征集的个数超出预定阈值的多个恶意样本文件归为同一APT组织,并为所述归为同一APT组织的恶意样本文件标记APT组织标识;对于已知属于同一APT组织的恶意样本文件,直接为其标记APT组织标识。
本实施例的一种实现方式中,可以利用IDA实现所述逆向分析。除此之外,还可采用其他工具完成样本文件的逆向分析,对此,本文不予限制。
需要说明的是,本实施例中的特征集可以通过特征集标识和其所包含相似函数集的标识表示。所述特征向量可以包含与所述特征集一一对应的分量值,每个所述分量值指示一个样本文件是否具有属于相对应特征集的函数。
如图3所示,建立APT组织溯源模型的示例性流程可以包括:
步骤201,收集恶意样本文件,建立恶意样本库;
在本步骤中,还可以针对已知属于同一APT组织的恶意样本文件进行归类,并为归类后每个类别的恶意样本文件标记APT组织标识。
对于不确定是否属于同一APT组织的恶意样本文件,可以通过下文步骤204的处理,对其进行归类,并为归类后每个类别的恶意样本文件标记APT组织标识。
这里,APT组织标识可以是预先定义的符号、代码或其他可作为标识使用的信息,也可以按照预先设定的算法生成。比如,API组织标识可以表示A13、A14、A15……等。
这里,可基于“恶意样本库尽可能多的均匀的包含各类恶意样本”的原则建立恶意样本库。
步骤202,对恶意样本库中的所有恶意样本文件进行IDA逆向分析,批量获取其函数,得到其函数数据集;
这里,函数数据集可以包括对样本文件逆向处理后得到的对应每个函数的16进制字节码模块。
一种实现方式中,一个恶意样本文件对应一个函数数据集,函数数据集包括该恶意样本文件中获取的函数,即每个函数数据集可以包括一个恶意样本文件逆向后对应的16进制字节码模块。
实际应用中,可以批量获取恶意样本库中所有恶意样本文件的函数数据集,还可以对恶意样本库中的每个恶意样本文件分别进行IDA逆向分析得到每个恶意样本文件的函数数据集。
本步骤中,IDA是一种逆向工具,通过IDA打开恶意样本文件即可将恶意样本文件对文件进行逆向处理,形成对应每个函数的16进制字节码模块。实际应用中,还可以采用其他逆向分析工具来实现样本文件的逆向分析,对此,本文不予限制。
本步骤中,与其他IDA逆向分析过程的不同是,通过程序自动化对恶意样本文件进行批量逆向,而不是手动在IDA中单个打开,批量逆向的方式效率更高,而且不容易出错。具体应用中,可以通过调用IDA的API接口预先形成功能程序,该功能程序可自动执行IDA单个文件的逆向过程,通过该功能程序可实现恶意样本文件的批量解析。
步骤203,根据函数相似度对函数进行聚类,得到特征集;
本步骤中,可以通过函数对应的16进制字节码模块中16进制字节码字符串的相似度来确定函数之间的相似度。
本步骤中,聚类的准则是:将函数两两进行比较,得到函数对的相似度,当相似度大于预设的相似度阈值(比如,80%)时,认为该函数对属于同一个相似函数集。这里,相似度的定义是:找出每个函数对对应的16进制字节码的最长公共子序列,最长公共子序列长度与16进制字节码的长度的比值即为相似度值。这里,只要函数对中每个函数的相似度值都大于预设的相似度阈值即可视为该函数对为相似函数。
本实施例中,特征集是指对相似函数聚类后得到的相似函数集的集合。这里,相似函数集是指相似函数的集合,一个相似函数的集合可以通过函数名称、代码或其他类似的信息来标识。具体来说,每个特征集可以包含特征集的标识、以及该特征集下相似函数集的标识,该标识可以是相似函数集的名称、代码、编号或其他信息。特征集标识可以是特征集的名称、编号、代码或其他具有标识作用的信息,特征集的标识可以预先定义,也可以按照预先设定的算法随机生成。
一个特征集可以通过特征集编号及其所包含函数的函数标识来表示。下表1为特征集的示例,表1包含4个特征集,分别是编号为0、1、2、3的特征集,编号为0的特征集中包含两个相似函数集,分别是:sub_404DF3、sub_40A799,说明这两个相似函数集中函数的相似度高,属于同一APT组织。需要说明的是,一个特征集包含相似度比较高的两个或两个以上个相似函数集,这些相似函数集对应同一APT组织。但,一个APT组织可以对应一个或多个特征集。大多数情况下,一个APT组织会有多个函数,这多个函数可能属于多个不同的相似函数集,也就可能属于多个不同的特征集。
特征集编号 | 特征集中函数的名称 |
0 | sub_404DF3 |
0 | sub_40A799 |
1 | sub_4368E0 |
1 | sub_41B1F0 |
1 | sub_41F0B0 |
1 | sub_421EE0 |
1 | sub_40BB50 |
1 | sub_418D50 |
2 | sub_42ADCB |
2 | sub_429247 |
3 | sub_421EE0 |
3 | sub_40BB50 |
3 | sub_424680 |
3 | sub_418D50 |
3 | sub_4368E0 |
3 | sub_426430 |
表1
步骤204,设定阈值,将共同类别数达到该阈值的恶意样本文件归为一类(即视为属于同一APT组织),并为归类后的每类恶意样本文件标记同一APT组织标识。
本实施例中,共同类别数是指不同恶意样本文件中相似函数集的个数,即不同恶意样本文件之间共同特征集的个数。
一种实现方式中,可以根据样本文件中所包含函数的总量来设置相应的阈值。对于包含较多函数的样本文件,该阈值可以设置为较高的值,对于包含较少函数的样本文件,该阈值可以设置为较低的值。实际应用中,该阈值的具体取值可以根据实际应用场景的特点、样本文件的特点等进行调整。一般来说,该阈值取为一个固定值。但实际应用中,不排除该阈值取为区间值或按照预定的函数关系变化(比如,随着预先设定的权重值成比例变化)的值。换言之,对于该阈值的具体取值方式,本文不予限制。
如下表2为上述阈值的示例。其中,对于函数总量低于10的样本文件,其阈值设置为6,对于函数总量在10到20之间的样本文件,其阈值设置为15,对于函数总量在20以上的样本文件,其阈值设置为20。具体来讲,对于包含10个及以下个函数的恶意样本文件,如果相似函数集的个数不低于6个,那么这些样本文件属于同一组织;对于包含10~20个函数的恶意样本文件,如果相似函数集的个数不低于15个,那么这些样本文件属于同一组织,对于包含20个以上函数的恶意样本文件,如果相似函数集的个数不低于20个,那么这些样本文件属于同一组织。
样本文件的函数总量 | 阈值 |
函数总量<10 | 6 |
10<函数总量<20 | 15 |
函数总量>20 | 20 |
表2
本步骤中,样本文件之间共有的相似函数集个数可以通过特征集来确定。具体来说,样本文件之间共同特征集的个数即可表示这些样本文件之间共有的相似函数集的个数,样本文件之间共同特征集的个数是指样本文件所对应特征集中相同特征集的个数。比如,对于两个样本文件来说,其共同特征集的个数为该两个样本文件中各函数所属特征集中相同特征集的个数。
如下表3的示例中,第一列表示恶意样本文件中函数所属特征集的编号,第二列是恶意样本文件名称,从表3可以看出,共同特征集有4个:44、64、65、66,这4个共同特征集中,每个特征集对应两个恶意样本文件。
特征集编号 | 恶意样本文件的名称 |
41 | 5210c2a1eeb74ebb39eb7ea3673c85ed0b2c8b7783e |
44 | 5370c2a1eeb74ebb39eb7ea3673c85ed0b2c8b7783e |
59 | 5370c2a1eeb74ebb39eb7ea3673c85ed0b2c8b7783e |
64 | 5150c2a1eeb74ebb39eb7ea3673c85ed0b2c8b7783e |
65 | 5190c2a1eeb74ebb39eb7ea3673c85ed0b2c8b7783e |
66 | 5420c2a1eeb74ebb39eb7ea3673c85ed0b2c8b7783e |
81 | 5150c2a1eeb74ebb39eb7ea3673c85ed0b2c8b7783e |
7 | 959119a82df2ec2c5efc89e629ff2ebdf015d05a6a3 |
20 | 959119a82df2ec2c5efc89e629ff2ebdf015d05a6a3 |
25 | 943119a82df2ec2c5efc89e629ff2ebdf015d05a6a3 |
31 | 955119a82df2ec2c5efc89e629ff2ebdf015d05a6a3 |
40 | 930119a82df2ec2c5efc89e629ff2ebdf015d05a6a3 |
44 | 943119a82df2ec2c5efc89e629ff2ebdf015d05a6a3 |
64 | 955119a82df2ec2c5efc89e629ff2ebdf015d05a6a3 |
65 | 963119a82df2ec2c5efc89e629ff2ebdf015d05a6a3 |
66 | 948119a82df2ec2c5efc89e629ff2ebdf015d05a6a3 |
67 | 936119a82df2ec2c5efc89e629ff2ebdf015d05a6a3 |
79 | 955119a82df2ec2c5efc89e629ff2ebdf015d05a6a3 |
88 | 930119a82df2ec2c5efc89e629ff2ebdf015d05a6a3 |
表3
步骤205,基于特征集,映射得到所有恶意样本文件的特征向量;
本步骤中,特征向量的维度为特征集的个数,分量值用于指示恶意样本文件中的函数是否在这个特征集中,如果恶意样本文件中的函数在这个特征集则分量值取为1,如果恶意样本文件中的函数不在这个特征集则分量值取为0。
如下表4为特征向量与API组织标识之间对应关系的示例。表4的示例中,有15个特征集,每个特征集通过一个特征集编号(7、20、……)标识,有两个样本文件,这两个恶意样本文件分别用文件名称标识,这两个文件名称分别为5210c2a1eeb74ebb39eb7ea3673c85ed0b2c8b7783e和963119a82df2ec2c5efc89e629ff2ebdf015d05a6a3,有两个API组织,这两个API组织分别通过API组织代号(A13、A21)标识。两个恶意样本文件对应的特征向量分别有15维度,每个维度有一个分量值,分量值与特征集一一对应,每个分量值表示一个恶意样本文件是否具有属于相应特征集的函数。如下表4的示例中,“0”、“1”分别为分量值,分量值为“0”时表示恶意样本文件不具有属于对应特征集的函数,分量值为“1”时表示相应恶意样本文件具有属于对应特征集的函数。
表4
步骤206,以步骤204和步骤201得到的恶意样本文件的API组织标识为结果、以步骤205得到的恶意样本文件的特征向量为参数,通过机器学习算法,进行学习,以训练出APT组织溯源模型;
实际应用中,可以根据应用场景的需要选取不同的机器学习算法。比如,可以通过决策树、支持向量机、神经网络等机器学习算法进行学习,训练出APT组织溯源模型。
步骤207,输出训练出的APT组织溯源模型。
步骤207之后,APT组织溯源模型可以通过不断迭代进行优化。采用不同的机器学习算法,迭代过程即不同。除此之外,还可以将每次检测得到的识别结果加入到该APT组织溯源模型的迭代中。
下面对本实施例APT组织识别方法的有益效果进行说明。
一个人、一个团队的代码习惯很难改变,任何一个攻击团队写的攻击工具都会有其自身的特点,这些特点非常难以改变。而这些特征可以通过函数来体现,因此,通过提取样本文件中的函数进行APT组织溯源。
下面结合两个例子即恶意样本文件1和恶意样本文件2进行说明。
图3为通过IDA对文件2进行逆向处理后得到的文件信息示意图,图4为通过IDA对文件2进行逆向处理后得到的文件信息示意图。其中,图3和图4分别是用IDA逆向两个样本文件的结果,左侧为函数名,右侧蓝色部分为16进制字节码(机器码),显然这两个经过逆向呈现的程序,其16进制字节码存在非常大的差异,看不到什么相似性,也就没有相关性。
但如果对这两个程序做进一步的处理,转化为更抽象的表述,如图5和图6所示,图5为恶意样本文件1经过IDA逆向处理后的IDA编译汇编语言示意图,图6为恶意样本文件2经过IDA逆向处理后的IDA编译汇编语言示意图。显而易见的,这两份程序存在高度一致的功能逻辑。
由上述可知,通过将程序从16进制字节码自动翻译到汇编语言,再进一步抽象,即翻译为更高级的语言(如C语言)或者伪代码,就能得到程序的功能逻辑,而功能逻辑是与操作系统版本、类型无关的。而攻击工具,无论运行在Windows平台,或者*NIX平台,甚至Android平台,其关键的业务逻辑(即功能逻辑)是不会改变的,变化的只是经过编译、优化后的16进制字节码。通过自动执行从机器语言抽象到高级语言或伪代码的过程,然后再去寻找不同程序之间的相似度,即可实现对同一攻击团队开发工具的识别。换言之,通过提取样本文件的函数即可识别这些样本文件是否属于同一API组织,也就是可以通过样本文件的函数对该样本文件进行APT组织溯源。
基于上述原因,本实施例的方法可实现对同一攻击团队(包括APT组织)开发攻击工具的识别,且识别效率和识别准确率都比较高。
实施例二
一种APT组织的识别装置,如图7所示,包括:存储器71、处理器72;所述存储器101存储有计算机程序,所述处理器72配置为读取所述计算机程序以执行实施例一所述APT组织的识别方法的操作。
具体来讲,处理器72至少可以配置为读取所述计算机程序以执行实例一中的步骤201~步骤203。除此之外,处理器72还可以配置为读取所述计算机程序以执行实施例一所述APT组织的识别方法的其他操作。这些操作的技术细节可参照实施例一。
需要说明的是,图7所示结构仅为示出了本实施例APT组织的识别装置的基础架构。实际应用中,APT组织的识别装置除包含该基础结构(处理器、存储器)之外,还可以包括:通信组件、总线、输入设备、输出设备等部件。可以理解,本实施例的APT组织的识别装置还可以采用其他架构形式。比如,该APT组织的识别装置可以采用多处理器架构,以适应待检测样本文件比较大的应用场景。
实施例三
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现实施例一所述APT组织的识别方法的步骤。
具体来讲,所述计算机程序被处理器执行时至少实现步骤201~步骤203的操作。除此之外,所述计算机程序被处理器执行时还可以实现实施例一所述APT组织的识别方法的其他步骤。这些步骤的技术细节可参照实施例一。
实际应用中,该计算机可读介质包括永久性和非永久性、可移动和非可移动存储介质,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM),快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (10)
1.一种高级持续性威胁APT组织的识别方法,其特征在于,包括:
对待检测样本文件进行逆向分析,获取所述待检测样本文件的函数;
基于预先形成的特征集以及所述待检测样本文件的函数,形成所述待检测样本文件的特征向量,所述特征向量表示所述待检测样本文件中函数与所述特征集的关系,一个所述特征集为相似函数集的集合,该相似函数集中的函数对应同一APT组织;
使用预先建立的APT组织溯源模型基于所述待检测样本文件的特征向量,得到所述待检测样本文件的APT组织标识,所述APT组织溯源模型为基于机器学习算法建立的计算模型;
所述方法还包括:
分析恶意样本文件的函数相似度,形成所述特征集,并采用机器学习算法训练得到所述APT组织溯源模型,所述APT组织溯源模型以预先标记的APT组织标识为输出、以样本文件中函数与所述特征集的关系为输入。
2.根据权利要求1所述的识别方法,其特征在于,所述分析恶意样本文件的函数相似度,形成特征集,包括:
对所述恶意样本文件进行逆向分析,获取所述恶意样本文件的函数;
按照函数相似度对所述恶意样本文件的函数进行聚类,得到所述特征集。
3.根据权利要求2所述的识别方法,其特征在于,
所述按照函数相似度对所述恶意样本文件的函数进行聚类,包括:按照所述函数对应的16进制字节码字符串的相似度对所述恶意样本文件的函数进行聚类。
4.根据权利要求1所述的识别方法,其特征在于,所述采用机器学习算法训练得到所述APT组织溯源模型,包括:
为所述恶意样本文件标记APT组织标识,并形成所述恶意样本文件的特征向量;
以所述恶意样本文件的APT组织标识为结果、所述恶意样本文件的特征向量为参数采用机器学习算法训练得到所述APT组织溯源模型。
5.根据权利要求4所述的识别方法,其特征在于,所述为所述恶意样本文件标记APT组织标识,至少包括如下之一:
将共同特征集的个数超出预定阈值的多个恶意样本文件归为同一APT组织,并为所述归为同一APT组织的恶意样本文件标记APT组织标识;
对于已知属于同一APT组织的恶意样本文件,直接为其标记APT组织标识。
6.根据权利要求1或2所述的识别方法,其特征在于:利用IDA实现所述逆向分析。
7.根据权利要求1至5任一项所述的识别方法,其特征在于:
一个所述特征集通过特征集标识和其所包含相似函数集的标识表示。
8.根据权利要求7所述的识别方法,其特征在于:
所述特征向量包含与所述特征集一一对应的分量值,所述分量值指示样本文件是否具有属于相对应特征集的函数。
9.一种高级持续性威胁APT组织的识别装置,包括:处理器、存储器;其特征在于,所述存储器存储有计算机程序,所述处理器配置为读取所述计算机程序以执行权利要求1至8任一项所述APT组织的识别方法的操作。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至8任一项所述APT组织的识别方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810150813.7A CN108446559B (zh) | 2018-02-13 | 2018-02-13 | 一种apt组织的识别方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810150813.7A CN108446559B (zh) | 2018-02-13 | 2018-02-13 | 一种apt组织的识别方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108446559A CN108446559A (zh) | 2018-08-24 |
CN108446559B true CN108446559B (zh) | 2022-03-29 |
Family
ID=63192495
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810150813.7A Active CN108446559B (zh) | 2018-02-13 | 2018-02-13 | 一种apt组织的识别方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108446559B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109981587A (zh) * | 2019-02-27 | 2019-07-05 | 南京众智维信息科技有限公司 | 一种基于apt攻击的网络安全监控溯源系统 |
CN110149319B (zh) * | 2019-04-26 | 2021-11-23 | 奇安信科技集团股份有限公司 | Apt组织的追踪方法及装置、存储介质、电子装置 |
CN110149318B (zh) * | 2019-04-26 | 2022-07-05 | 奇安信科技集团股份有限公司 | 邮件元数据的处理方法及装置、存储介质、电子装置 |
CN110222715B (zh) * | 2019-05-07 | 2021-07-27 | 国家计算机网络与信息安全管理中心 | 一种基于动态行为链和动态特征的样本同源分析方法 |
CN111460447B (zh) * | 2020-03-06 | 2023-08-04 | 奇安信科技集团股份有限公司 | 恶意文件检测方法、装置、电子设备与存储介质 |
CN111565205B (zh) * | 2020-07-16 | 2020-10-23 | 腾讯科技(深圳)有限公司 | 网络攻击识别方法、装置、计算机设备和存储介质 |
CN111651768B (zh) * | 2020-08-05 | 2020-10-30 | 中国人民解放军国防科技大学 | 计算机二进制程序的链接库函数名识别方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103326780A (zh) * | 2013-06-21 | 2013-09-25 | 中国科学院空间科学与应用研究中心 | 基于压缩感知接收机的自由空间光通信apt系统及方法 |
US9280163B2 (en) * | 2011-12-01 | 2016-03-08 | Rf Micro Devices, Inc. | Average power tracking controller |
CN106909841A (zh) * | 2015-12-22 | 2017-06-30 | 北京奇虎科技有限公司 | 一种判断病毒代码的方法及装置 |
CN107172050A (zh) * | 2017-05-19 | 2017-09-15 | 北京安数云信息技术有限公司 | Apt攻击行为的检测方法及检测系统 |
CN107659543A (zh) * | 2016-07-26 | 2018-02-02 | 北京计算机技术及应用研究所 | 面向云平台apt攻击的防护方法 |
-
2018
- 2018-02-13 CN CN201810150813.7A patent/CN108446559B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9280163B2 (en) * | 2011-12-01 | 2016-03-08 | Rf Micro Devices, Inc. | Average power tracking controller |
CN103326780A (zh) * | 2013-06-21 | 2013-09-25 | 中国科学院空间科学与应用研究中心 | 基于压缩感知接收机的自由空间光通信apt系统及方法 |
CN106909841A (zh) * | 2015-12-22 | 2017-06-30 | 北京奇虎科技有限公司 | 一种判断病毒代码的方法及装置 |
CN107659543A (zh) * | 2016-07-26 | 2018-02-02 | 北京计算机技术及应用研究所 | 面向云平台apt攻击的防护方法 |
CN107172050A (zh) * | 2017-05-19 | 2017-09-15 | 北京安数云信息技术有限公司 | Apt攻击行为的检测方法及检测系统 |
Also Published As
Publication number | Publication date |
---|---|
CN108446559A (zh) | 2018-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108446559B (zh) | 一种apt组织的识别方法及装置 | |
US9398034B2 (en) | Matrix factorization for automated malware detection | |
US10303874B2 (en) | Malicious code detection method based on community structure analysis | |
Komatwar et al. | Retracted article: a survey on malware detection and classification | |
RU2454714C1 (ru) | Система и способ повышения эффективности обнаружения неизвестных вредоносных объектов | |
Sabhadiya et al. | Android malware detection using deep learning | |
Zhao et al. | Malicious executables classification based on behavioral factor analysis | |
Tien et al. | Machine learning framework to analyze iot malware using elf and opcode features | |
Gao et al. | Android malware detection via graphlet sampling | |
US10043012B2 (en) | Method of correlating static and dynamic application security testing results for a web application | |
Zakeri et al. | A static heuristic approach to detecting malware targets | |
CN108280348B (zh) | 基于rgb图像映射的安卓恶意软件识别方法 | |
CN111460445A (zh) | 样本程序恶意程度自动识别方法及装置 | |
Zhao et al. | Maldeep: A deep learning classification framework against malware variants based on texture visualization | |
CN111368289B (zh) | 一种恶意软件检测方法和装置 | |
Walker et al. | Insights into malware detection via behavioral frequency analysis using machine learning | |
CN114024761B (zh) | 网络威胁数据的检测方法、装置、存储介质及电子设备 | |
Zuo | Defense of Computer Network Viruses Based on Data Mining Technology. | |
US20240054210A1 (en) | Cyber threat information processing apparatus, cyber threat information processing method, and storage medium storing cyber threat information processing program | |
Mei et al. | CTScopy: hunting cyber threats within enterprise via provenance graph-based analysis | |
CN116932381A (zh) | 小程序安全风险自动化评估方法及相关设备 | |
Ban et al. | A Survey on IoT Vulnerability Discovery | |
Han et al. | IMShell-Dec: Pay more attention to external links in powershell | |
Carrier | Detecting obfuscated malware using memory feature engineering | |
Balodi et al. | Automated Static Malware Analysis Using Machine Learning |
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 |