郑州大学学报(理学版)  2023, Vol. 55 Issue (2): 10-17, 24  DOI: 10.13705/j.issn.1671-6841.2021417

引用本文  

吕杨琦, 王张宜, 杨秀璋, 等. 基于特征功能函数的APT样本分类方法[J]. 郑州大学学报(理学版), 2023, 55(2): 10-17, 24.
LYU Yangqi, WANG Zhangyi, YANG Xiuzhang, et al. A Novel APT Malware Classification Method Based on Feature Function Code[J]. Journal of Zhengzhou University(Natural Science Edition), 2023, 55(2): 10-17, 24.

基金项目

国家自然科学基金项目(62172308, U1626107, 61972297, 62172144)

通信作者

王张宜(1978—),男,讲师,主要从事应用密码学研究,E-mail: wzy@whu.edu.cn

作者简介

吕杨琦(1997—),女,硕士研究生,主要从事恶意代码分析研究,E-mail:lyqhihi@whu.edu.cn

文章历史

收稿日期:2021-10-06
基于特征功能函数的APT样本分类方法
吕杨琦1,2, 王张宜1,2, 杨秀璋1,2, 宋文纳1,2, 彭国军1,2    
1. 武汉大学 空天信息安全与可信计算教育部重点实验室 湖北 武汉 430072;
2. 武汉大学 国家网络安全学院 湖北 武汉 430072
摘要:APT攻击对网络空间构成严重威胁,APT组织通常会复用恶意功能代码。首先对大量威胁情报进行调研,总结了APT样本的8大类功能,构建各类功能的静态检测规则,并提取样本的功能函数。接着标准化处理函数的汇编代码和计算其模糊哈希,构建APT组织的特征功能指纹库。最后根据待分类样本与APT组织指纹库的匹配程度确定样本组织。实验结果表明,所提方法的准确率为92%,能有效实现对APT样本的组织分类和溯源。
关键词APT样本分类    模糊哈希    特征功能函数    威胁情报    攻击溯源    
A Novel APT Malware Classification Method Based on Feature Function Code
LYU Yangqi1,2, WANG Zhangyi1,2, YANG Xiuzhang1,2, SONG Wenna1,2, PENG Guojun1,2    
1. Key Laboratory of Aerospace Information Security and Trusted Computing of Ministry of Education, Wuhan University, Wuhan 430072, China;
2. School of Cyber Science and Engineering, Wuhan University, Wuhan 430072, China
Abstract: APT attack poses a serious threat to today′s cyberspace. APT organizations reused malicious functional codes. Firstly, in terms of function implementation, malicious samples of the same organization were more similar, while malicious samples of different organizations were less similar. Based on a large number of threat intelligence, the eight categories of function of APT samples were summarized and static detection rules for various functions were constructed to extract the functional modules of the samples. Then, the function assembly code was standardized and its fuzzy hash was calculated. The characteristic functional fingerprint database of the APT organization was constructed. Finally, the sample organization was determined according to the degree of matching between the sample to be classified and the fingerprint database of the APT organization. The experimental results showed that the accuracy of the proposed method was 92%, which could effectively realize the organization classification and traceability of APT samples.
Key words: APT malware classification    fuzzy hash    feature function    threat intelligence    attack attribution    
0 引言

高级可持续性威胁攻击[1](advanced persistent attack,APT)是一种使用高隐蔽、高组织、高威胁的攻击方法对指定目标进行持续性网络攻击的攻击方式。在当今的网络空间中,APT网络攻击呈现复杂性、组织性和针对性逐步提升的趋势,对全球的网络空间安全构成严重威胁。因此,如何快速检测APT攻击进而阻止威胁事件的传播已经成为维护网络安全的关键问题。

为了检测APT攻击,研究人员目前试图通过网络流量或安全日志信息来挖掘隐藏的异常行为[2],或者通过对安全警报事件进行相关分析来查找APT攻击的痕迹[3]。但由于产品对自身安全性和隐私性的要求,普通研究人员很难获得网络流量或安全日志信息。与传统的恶意网络活动类似,APT组织需要使用恶意软件作为武器发起网络攻击。因此,可以通过分析攻击中使用的恶意软件来对APT攻击进行检测和溯源。

为了快速构建攻击程序,APT组织通常会复用已有的恶意功能代码生成变体,这会导致相同组织的恶意样本之间在功能实现上可能存在一定的相似性[4-5]。目前有关APT恶意样本检测和分类的研究大多集中于提取样本的字符串、资源节、结构特性、字节码等静态特征,或在可控环境内运行样本,提取API调用序列、网络通信等动态行为特征,而忽略了不同APT组织的样本在实现具体功能时存在差异,这十分不利于刻画APT攻击活动的行为特征,因而不利于进一步溯源攻击活动背后的APT组织。因此,面对日益增长的APT样本,需要提出一种自动化提取和匹配APT样本功能特征的方法,从而快速实现样本的分类预测并溯源APT组织,减少人工分析工作量,提高APT攻击溯源分析的效率。

针对以上问题,本文提出了一种构建APT特征功能指纹库的方法,并利用构建的指纹库进行APT样本分类。

1 相关工作

目前已有大量关于APT样本分类的研究工作,根据样本特征的提取过程是否需要运行样本,可大致分为静态分类和动态分类[6-7]。静态分类方法主要使用样本的静态特征,即样本内容和结构相关的特征,如N-gram字节码、字节码序列、字符串、资源节、样本的结构特征等;动态分类方法需要在可控环境内运行样本,提取样本在运行过程中的动态行为特征,如API调用序列、网络通信行为、文件行为、注册表行为等。

Bolton等[8]主要使用APT样本的子程序指令序列和程序调用图作为特征,通过比对恶意样本与已知组织样本的指令序列和程序调用图的相似性,结合随机森林算法来判断样本所属的组织。Rosenberg等[9]通过Cuckoo沙箱运行恶意样本来提取动态行为报告中的样本特征,再构建深度神经网络解决样本所属国家的归因问题。Han等[10]使用APT样本的动态系统调用API作为特征解决样本分类问题,该方法结合TF-IDF算法计算API权重,选取Top-N的API作为特征向量,并使用多种机器学习算法进行对比实验;此外,该论文还创新性地提出构建APT样本的知识图谱,提取样本函数的本体信息,从而描述APT组织的区别。

以上有关APT样本分类的研究与常见的恶意样本家族分类方法并无太大区别,利用常见的样本动、静态特征进行分类,而未考虑APT攻击活动的规律性和特征性。由于APT组织在开发攻击样本时,可能会复用已有的功能模块,同一APT组织的不同样本间可能在功能函数实现上存在较高相似性[11]。因此,我们可以构建APT样本的恶意功能指纹库,通过比较攻击样本与已构建指纹库的相似性,来溯源攻击样本的归属组织,从而对样本进行组织分类。

此外,模糊哈希常用于判断两个文件的相似程度。由于恶意样本的二进制代码本质上也是一种文本文件,目前已有一些研究将模糊哈希应用于恶意样本的分类,并取得了不错的效果。Naik等[12]使用整个样本的模糊哈希和导入表序列的模糊哈希作为特征,并选取不同的相似性阈值进行样本分类实验,实验结果表明导入表的模糊哈希能作为恶意样本分类的有效辅助手段。Shiel等[13]进一步利用恶意PE样本各个节的模糊哈希进行相似性匹配,来确定样本所属的恶意家族。以上研究说明了模糊哈希应用于样本的分类研究具有一定的可行性,且同一APT组织的样本在功能实现上具有相似性,因此将模糊哈希应用于功能函数的相似性匹配具有一定理论依据。

基于上述工作,本文提出一种基于特征功能函数的APT样本分类方法。首先构建各APT组织的特征功能的模糊哈希指纹库,然后详细比较样本的特征函数模糊哈希与各APT组织模糊哈希库的相似性,从而确定样本所属的APT组织。

2 方法描述

本文提出的APT样本分类方法的总体架构如图 1所示,共包括预处理、模糊哈希存储和APT样本分类3个阶段。预处理阶段主要包含两部分,第一部分是构建用于提取样本功能特征的自定义规则,第二部分是利用该规则提取样本中的特征函数块,进行标准化处理并计算模糊哈希值。模糊哈希存储阶段是将上一步得到的所有模糊哈希值,按功能类别存储至数据库,便于后续对模糊哈希值的计算和匹配,从而有效保证APT样本的分类。APT样本分类阶段是按照预处理阶段的方法提取待分类样本的特征函数模糊哈希值,并与各APT组织的模糊哈希库进行匹配,对于匹配度最高的APT组织即预测为该样本所属的组织。

图 1 APT样本分类的总体架构 Fig. 1 The overall structure of APT sample classification
2.1 预处理

预处理阶段主要包括反汇编代码的获取、功能函数的提取、代码标准化的处理以及模糊哈希的计算,该阶段的具体过程描述如下。

首先,对未加壳或已脱壳的样本S进行反汇编,提取反汇编文件中的函数片段,函数用func表示,一个样本由多个函数组成,可表示为

$ S \rightarrow\left\{ func _1, func_2, \cdots, func_n\right\}。$ (1)

其次,将这些函数与功能规则依次进行匹配,所有实现第i类功能的函数表示为

$ func Type_i=\left[func_{i 1}, func_{i 2}, \cdots, func_{i x}\right] 。$ (2)

一个样本由m类功能实现,则样本S中的所有功能函数可表示为

$ S \rightarrow\left\{funcType _1, funcType _2, \cdots, funcType _m\right\}。$ (3)

再次,对每一个功能函数中的汇编代码进行标准化处理,用于减少因为寄存器、内存地址等不同而造成的影响。

最后,计算功能函数代码标准化处理后的模糊哈希值,表示为hash。综上,一个样本预处理的全过程可表示为

$ \begin{aligned} & S \rightarrow\left\{ { func }_1, { func }_2, \cdots, { func }_n\right\} \rightarrow \\ & \left\{\left[ { func }_{11}, \cdots, { func }_{1 x}\right], \cdots, \left[ { func }_{m 1}, \cdots, { func }_{m z}\right]\right\} \rightarrow \\ & \left\{\left[ { hash }_{11}, \cdots, { hash }_{1 x}\right], \cdots, \left[ { hash }_{m 1}, \cdots, { hash }_{m z}\right]\right\} 。\end{aligned} $ (4)

下面详细介绍特征规则的构建、样本功能函数的提取和模糊哈希的计算方法和主要思路。

2.1.1 特征规则构建

基于对FireEye、Kaspersky、ESET、奇安信、360等国内外安全公司公开的大量威胁情报的调研,同时结合部分APT恶意样本的逆向分析以及网络安全攻击事件的各个阶段特点,总结APT恶意样本。此类样本通常包含代码执行、持久化驻留、命令和控制、各类威胁操作以及绕过防御系统等功能,其中威胁操作包含对主机的数据窃取和危害性操作。本文将APT样本常用功能特征归纳为8大类,并基于此分别构建对应的规则文件匹配APT样本的恶意功能函数。恶意功能的具体描述见表 1

表 1 恶意功能类别及功能描述 Tab. 1 Malicious function category and function description

本文使用yaml格式文件构建自定义规则,定义顶级节点名为rule,包含meta和features两个子节点。meta节点描述该规则的基本信息,包括规则名(name)和命名域(namespace)两个必需元素信息,以及作者(author)、描述信息(description)、参考信息(references)、例子(examples)等可选元素信息;features节点定义该规则匹配的函数特征,主要包括API、数字、字符串、字节码序列、偏移量、汇编指令等。不同特征之间使用布尔操作符and、or和not,其中:and表示需要匹配所有特征;or表示只需要匹配其中任意一个特征;not表示不匹配该特征。检测创建文件目录的规则如下,该功能属于主机操作类别。

rule:

  meta:

      name: create directory

  features:

      -or:

         -api: kernel32.CreateDirectorykernel32.CreateDirectoryEx

        -api: kernel32.CreateDirectoryTransacted

        -api: NtCreateDirectoryObjectZwCreateDirectoryObject

        -api: SHCreateDirectorySHCreateDirectoryExmkdir_wmkdir

2.1.2 模糊哈希算法

主流的模糊哈希算法有多种,由于SSDEEP已广泛应用于各大在线沙箱平台,本文使用该算法进行实验。SSDEEP[14]是一种基于内容分割的分片哈希算法,最初用于检测钓鱼邮件。该算法利用两个哈希值之间的“加权编辑距离”作为依据来确定两个哈希值之间的相似性,相似值为0~100,通常相似值大于0即被视为相似,其值越高对应的相似性越明显。此外,SSDEEP算法对于具体应用场景的哈希值计算,其相似性阈值还需要进一步通过实验来确定,本文针对APT样本的相似性阈值进行了详细的实验分析。

2.1.3 功能函数提取

本文使用Vivisect框架提取APT样本的功能函数。Vivisect是一个二进制文件静态分析框架,利用Vivisect的Python库进行二次开发,可快速定位样本的函数块并进行功能规则匹配。由于样本源代码的轻微改动将会造成反汇编代码的大量改变,为了尽量减少对实验结果的影响,本文按照表 2所示方法对汇编代码进行标准化处理。

表 2 代码标准化处理规则及示例 Tab. 2 Code standardization processing rules and examples

从样本中提取功能函数的具体过程描述如下。

1) 利用Vivisect框架对可移植的可执行(portable executable, PE)文件样本S进行反汇编,提取反汇编结果中的所有函数,对应的函数定义为

$ FuncSet=VivisectFunctionExtract(S)。$ (5)

2) 对于FuncSet中的函数func,使用功能规则集RuleSet进行匹配,若函数func的匹配结果为功能i,则将函数func添加到功能i对应的数组中,所有功能的匹配结果构成FunctResult,匹配函数为

$ funcType = { matchFuncFeature }({ func }, { RuleSet }), $ (6)

其中:funcType表示函数func所属功能类别。

3) 标准化处理FunctResult中的每一个特征函数func,计算对应的模糊哈希(hash),该过程对应的函数定义为

$ hash=hashFunc({ func })。$ (7)

所有不同的模糊哈希构成结果集AllFunctHash。该过程伪代码如算法1所示,通过上述三个核心步骤最终实现样本功能函数指纹的提取。

算法1  样本功能函数指纹提取

输入:APT样本S,规则集。

输出:样本S中所有功能函数的模糊哈希指纹集。

1:Function GetAllFunction(S)

2:    FuncSet=VivisectFuncExtract(S)

3:    FunctResult=[]

4:    For all func in FuncSet do

5:      funcType=matchFunc(func, RuleSet)

6:      FunctResult[funcType]=func

7:    End for

8:    For all func in FunctResult do

9:      hash=hashFunc(func)

10:        AllFunctHash=AllFunctHash+hash

11:     End for

12:     Return AllFunctHash

13:End Function

2.2 模糊哈希存储

本文方法的核心是构建APT组织实现不同功能函数的模糊哈希指纹库,根据2.1.1中提出的8大类功能特征,分别创建数据表存储每类功能函数的模糊哈希。由于不同APT组织在开发样本时,可能会复用一些开源代码或定制化组装恶意样本,因此在不同的APT组织样本之间可能存在一些相似的功能函数或复用某些功能代码片段,这些功能代码对应的模糊哈希相同,因此APT字段存储具有相同模糊哈希的所有APT组织。此外,在进行恶意样本开发时,一个函数可能会实现多个功能,因此在进行功能规则匹配时,会存在一个函数匹配多个功能规则的情况,此时在每类功能的数据表中均增加该函数的数据信息。

2.3 样本分类

APT组织经常会复用已有代码块进行攻击样本的开发,因此同一组织的不同样本之间,在相同功能模块上的函数代码可能较为相似,对应的模糊哈希值即使不完全一样,其相似度也会较高。在样本分类的过程中,考虑所有与待匹配函数相似的函数哈希。对样本进行分类的过程具体如下。

1) 对于待分类样本S,利用算法1获取样本每一类功能的模糊哈希集合,表示为

$ S \rightarrow\left\{ { funcType }_1, \cdots, { funcType }_8\right\}, $ (8)

其中:funcTypei为样本S实现Typei功能的所有函数的模糊哈希集合,i=1,2, …, 8,对应本文构建的8大类功能特征。

2) 在模糊哈希库中,统计funcTypei的模糊哈希相似的所有模糊哈希对应的APT组织,其结果为

$ { ResultCount }=\left\{ { count }_{i j}, i \in[1, 8] \cap j \in[1, k]\right\} , $ (9)

其中:countij表示在功能Typei的模糊哈希库中,所有与funcTypei中的模糊哈希相似度大于相似阈值,且属于组织Tj的模糊哈希个数;i的取值为1~8,对应8类不同的功能类别;j的取值为1,2,…,k,对应k个不同的APT组织。

3) 计算样本STj的匹配度MatchValuej,计算为

$ { MatchValue }_j=\sum\limits_{i=1}^8 { count }_{i j}, i \in[1, 8] \cap j \in[1, k]。$ (10)

4) 计算{MatchValue1, MatchValue2, …, MatchValuek}中的最大值MatchValueh,则Th为样本所属的APT组织。

3 实验结果与分析 3.1 数据集

本文从国内外各大安全厂商公开的威胁情报中提取APT组织使用的恶意样本哈希值,并使用Hybrid、AnyRun、VirusShare等病毒分析网站下载对应的样本文件。共获取10个APT组织的6 240个PE样本文件,各组织样本数量如表 3所示。

表 3 各组织样本数量 Tab. 3 Samples of each APT
3.2 评价指标

本文解决的APT样本分类问题属于多分类问题,为了准确评估本文方法的有效性,选取宏精确率(Pmacro)、宏召回率(Rmacro)、宏F1值(F1-scoremacro)、准确率(Acc)作为实验的评价指标,计算公式为

$ \begin{gathered} {P_{{\text{macro }}}} = \frac{1}{n}\sum\limits_{i = 1}^n {\frac{{T{P_i}}}{{T{P_i} + F{P_i}}}} , \hfill \\ {R_{{\text{macro }}}} = \frac{1}{n}\sum\limits_{i = 1}^n {\frac{{T{P_i}}}{{T{P_i} + F{N_i}}}} , \hfill \\ {F_1} - scor{e_{{\text{macro }}}} = \frac{{2 \times {P_{{\text{macro }}}} \times {R_{{\text{macro }}}}}}{{{P_{{\text{macro }}}} + {R_{{\text{macro }}}}}}, \hfill \\ Acc = \frac{1}{n}\sum\limits_{i = 1}^n {\frac{{T{P_i} + T{N_i}}}{{T{P_i} + F{P_i} + T{N_i} + F{N_i}}}} , \hfill \\ \end{gathered} $

其中:TPi表示被正确分类为所属组织i的样本数量;FPi表示不属于组织i的样本被分类到组织i的样本数量;TNi表示在分类结果中不属于组织APTi的样本没有被分类到组织i的样本数量;FNi表示在分类结果中属于组织APTi的样本没有被分类到组织i的样本数量;n表示总组织数。

以上指标的计算为交叉验证一次的性能指标计算方式,本文实验最终的性能指标使用五折交叉验证计算结果的平均值。

3.3 实验结果分析

本文样本分类的重点是统计与待分类的模糊哈希相似度大于指定阈值的所有模糊哈希,选取不同的相似性阈值会对实验结果产生不同影响。本文选取的模糊哈希算法为SSDEEP算法,该算法的模糊哈希相似性取值0~100,本文分别使用SSDEEP哈希值相似度35、55、75、90、95作为阈值比较实验效果,实验结果如图 2所示。当相似度阈值为90时,实验效果最好,其PmacroRmacroF1-scoremacroAcc分别为0.91、0.92、0.91、0.92;而相似度阈值为35时,效果最差,PmacroRmacroF1-scoremacroAcc比最高值分别降低0.29、0.6、0.6、0.46。这主要是因为当相似度阈值较低时,存在大量误匹配;而相似度阈值过高时,无法有效消除因源代码轻微改动而造成的汇编代码变动的影响。

图 2 不同相似性阈值的实验结果 Fig. 2 Experiment results in different similarity thresholds

另外,本文通过进一步实验发现90为该类样本的最优相似度阈值,此时各组织的分类结果如表 4所示。分类效果较好的组织为OceanLotus和PatchWork,分类效果较差的组织为APT29和Donot。其中,预测最好的组织是OceanLotus,其Pmacro为0.96,Rmacro为0.95,F1-scoremacro为0.96;所有APT组织的平均Pmacro为0.92,平均Rmacro为0.92,平均F1-scoremacro为0.91。

表 4 相似度阈值为90时各组织的分类结果 Tab. 4 Classification results when similarity threshold was 90

由于各APT组织的样本数量不同,本文对混淆矩阵进行归一化处理,相似度阈值为90时各组织分类效果的混淆矩阵如图 3所示,其中部分组织的样本被误分类到其他组织,说明不同组织间可能存在复用相同恶意代码的现象,通常这些组织间存在较强的关联性。例如APT28有5%的测试样本被误分类到APT29组织,APT29有8%的测试样本被误分类到APT28组织。说明APT组织之间存在代码和基础设施共享的现象。

图 3 相似度阈值为90时的混淆矩阵 Fig. 3 Confusion matrix when similarity threshold was 90

为了更加直观地比较相同组织的样本相似性和不同组织的样本差异性,本文使用式(8)获取样本各功能的函数模糊哈希集合,比较样本在实现功能方面的相似性,首先计算两个样本在相同功能下的函数模糊哈希相似性,然后取这8类功能的相似性平均值作为两个样本的功能相似性。取值范围0~100,与SSDEEP哈希值的相似性范围一致,100表示完全一致,样本间比较结果如图 4所示。由图 4可以得出结论:样本相似性较高的APT组织为APT17和Lazarus Group,而样本相似性较低的APT组织为APT28和APT29。另外不同组织样本间的相似性明显低于相同组织样本间的相似性,这表明不同APT组织之间在功能函数实现上存在明显差异,而同一APT组织的样本在功能函数实现上存在较高相似性,这也与本文分类方法的核心理论一致。

图 4 组织样本相似性比较图 Fig. 4 APT samples similarity comparison
3.4 对比实验结果分析

为了验证本文方法的有效性,分别使用基于文件的模糊哈希、基于导入表的模糊哈希以及基于PE节的模糊哈希进行分类实验。样本的模糊哈希是多数在线沙箱使用的一种病毒静态特征,导入表的模糊哈希应用于Naik等[12]提出的勒索软件家族分类方法,PE节的模糊哈希应用于Shiel等[13]提出的样本家族分类方法。整体分类思路为构建已知组织样本的模糊哈希库,并将待分类样本与已构建的模糊哈希库进行比对,选取所有相似值大于设定阈值的模糊哈希,统计其对应的APT组织,其中数量最多的APT组织即为该样本所属的组织。对比实验均使用表 4所示样本,同样选取阈值相似度35、55、75、90、95进行对比实验,与本文方法的分类准确率对比如图 5所示。

图 5 各方法在不同相似度阈值下的实验结果 Fig. 5 Experiment result with different similarity thresholds based on different methods

图 5中可以看出,当相似度阈值取35时,基于PE节的分类效果优于本文方法,但当相似度阈值升高至55、75、90和95时,本文方法的分类效果均优于其他三种方法。随着相似度阈值提高,本文方法的分类效果整体变好,而基于PE节、基于导入表和基于文件的分类效果整体变差。相似度阈值为90时,本文方法的准确率为0.91,比基于PE节的分类方法高0.18,比基于文件的分类方法高0.51,比基于导入表的分类方法高0.56。这也进一步说明本文方法的有效性,在选取合适的相似度阈值后能实现对APT组织样本的分类预测,并取得良好的准确率。

3.5 相关工作比较

为了更好突出本文贡献,将从样本种类、样本数量、特征类别、分类所需要的计算资源、可解释性以及分类准确率6个方面,比较本文工作和其他相似研究工作的区别,得出如表 5所示的结果。与文献[8-10, 12]相比,本文选取了10个APT组织共6 240个样本进行实验, 验证本文方法的有效性的样本数量更多,覆盖的APT组织更广泛。另外本文构建了APT样本的8大类恶意功能的静态检测规则,无须搭建沙箱等环境动态来运行APT样本,能更快速地提取特征功能函数块,且未使用机器学习、深度学习等算法,对计算资源的要求较低,具有更广泛的应用性;而文献[9-10]需要搭建沙箱环境动态运行样本提取行为特征,文献[8-10, 12]均使用机器学习算法,对机器计算资源的要求较高。此外,本文基于同组织样本的相似性和不同组织样本的差异性进行分类,相比于机器学习、深度学习的不可解释性,本文方法根据样本间的相似性值确定样本所属APT组织,分类解释性较好,能辅助恶意样本分析人员判断样本功能特征以及快速溯源样本所属组织,具有较强的现实意义。

表 5 相关工作比较 Tab. 5 Comparison of related work
4 讨论

本文提出了一种基于特征功能函数的APT样本分类方法,并探索了不同APT组织的样本相似性,通过构建APT组织的特征功能指纹库,利用函数模糊哈希之间的相似性进行样本分类。本文在不同的模糊哈希相似性阈值下进行实验,确定当相似性阈值取90时,分类效果最好,准确率为0.92。本文方法的核心是定位样本的特征功能函数,利用同一组织的功能函数相似性和不同组织的功能函数差异性进行样本的分类溯源。通过详细的实验表明,本文的方法优于现有基于文件模糊哈希相似性、导入表模糊哈希相似性和PE节模糊哈希相似性的分类方法,能有效实现对APT样本的组织溯源。

同时,本文存在一些不足。在实际应用中,通常需要对多个APT组织的样本进行分类,本文仅选取10个知名APT组织的样本,后续将增加APT组织个数和样本数量进一步实验,讨论在不同样本规模下的分类效果。而且模糊哈希库会随着样本数量的增加而急剧增大,不利于广泛应用,因此后续也可考虑结合聚类算法尽量缩小模糊哈希库的大小,同时保证分类准确率。另外,本文仅对未混淆、未加壳的PE样本进行实验,后续的研究中可以考虑增加样本的多样性,针对特定格式的文件改进实验方法。

参考文献
[1]
TAN C, WANG Q, WANG L N, et al. Attack provenance tracing in cyberspace: solutions, challenges and future directions[J]. IEEE network, 2019, 33(2): 174-180. DOI:10.1109/MNET.2018.1700469 (0)
[2]
ALSHAMRANI A, MYNENI S, CHOWDHARY A, et al. A survey on advanced persistent threats: techniques, solutions, challenges, and research opportunities[J]. IEEE communications surveys & tutorials, 2019, 21(2): 1851-1877. (0)
[3]
MOON D, IM H, KIM I, et al. DTB-IDS: an intrusion detection system based on decision tree using behavior analysis for preventing APT attacks[J]. The journal of supercomputing, 2017, 73(7): 2881-2895. DOI:10.1007/s11227-015-1604-8 (0)
[4]
宋文纳, 彭国军, 傅建明, 等. 恶意代码演化与溯源技术研究[J]. 软件学报, 2019, 30(8): 2229-2267.
SONG W N, PENG G J, FU J M, et al. Research on malicious code evolution and traceability technology[J]. Journal of software, 2019, 30(8): 2229-2267. (0)
[5]
MATTHIEU F. The Dukes aren't back--they never left[EB/OL]. [2021-07-29]. https://www.welivesecurity.com/wp-content/uploads/2019/10/ESET_Operation_Ghost_Dukes.pdf. (0)
[6]
YE Y, LI T, ADJEROH D, et al. A survey on malware detection using data mining techniques[J]. ACM computing surveys, 2017, 50(3): 1-40. (0)
[7]
HAN W J, XUE J F, WANG Y, et al. Review: build a roadmap for stepping into the field of anti-malware research smoothly[J]. IEEE access, 2019, 7: 143573-143596. DOI:10.1109/ACCESS.2019.2945787 (0)
[8]
BOLTON A D, ANDERSON-COOK C M. APT malware static trace analysis through bigrams and graph edit distance[J]. Statistical analysis and data mining: the ASA data science journal, 2017, 10(3): 182-193. DOI:10.1002/sam.11346 (0)
[9]
ROSENBERG I, SICARD G, DAVID E. End-to-end deep neural networks and transfer learning for automatic analysis of nation-state malware[J]. Entropy, 2018, 20(5): 390. DOI:10.3390/e20050390 (0)
[10]
HAN W J, XUE J F, WANG Y, et al. APTMalInsight: identify and cognize APT malware based on system call information and ontology knowledge framework[J]. Information sciences, 2021, 546: 633-664. DOI:10.1016/j.ins.2020.08.095 (0)
[11]
陈瑞东, 张小松, 牛伟纳, 等. APT攻击检测与反制技术体系的研究[J]. 电子科技大学学报, 2019, 48(6): 870-879.
CHEN R D, ZHANG X S, NIU W N, et al. A research on architecture of APT attack detection and countering technology[J]. Journal of university of electronic science and technology of China, 2019, 48(6): 870-879. (0)
[12]
NAIK N, JENKINS P, SAVAGE N, et al. Fuzzy-import hashing: a malware analysis approach[C]//IEEE International Conference on Fuzzy Systems. Piscataway: IEEE Press, 2020: 1-8. (0)
[13]
SHIEL I, O'SHAUGHNESSY S. Improving file-level fuzzy hashes for malware variant classification[J]. Digital investigation, 2019, 28: S88-S94. DOI:10.1016/j.diin.2019.01.018 (0)
[14]
DAMIANI E, DI VIMERCATI S D C, PARABOSCHI S, et al. An open digest-based technique for spam detection[C]//Proceedings of the ISCA 17th International Conference on Parallel and Distributed Computing Systems. New York: ACM Press, 2004, 559-564. (0)