CN115795466A - 一种恶意软件组织识别方法及设备 - Google Patents
一种恶意软件组织识别方法及设备 Download PDFInfo
- Publication number
- CN115795466A CN115795466A CN202310067439.5A CN202310067439A CN115795466A CN 115795466 A CN115795466 A CN 115795466A CN 202310067439 A CN202310067439 A CN 202310067439A CN 115795466 A CN115795466 A CN 115795466A
- Authority
- CN
- China
- Prior art keywords
- sample
- malicious software
- data set
- current
- malware
- 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.)
- Granted
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种恶意软件组织识别方法及设备,该方法包括:获取待识别的当前恶意软件样本;对当前恶意软件样本进行预处理,提取其属性信息和特征表示向量,并存储到样本特征数据集中;根据当前恶意软件样本的特征表示向量,使用预先训练好的恶意软件组织识别模型进行识别,获得组织识别结果;根据样本特征数据集中的各个恶意软件样本的属性信息,将样本特征数据集中的各个恶意软件样本划分为新样本数据集和旧样本数据集,以检测样本是否发生概念偏移;若是则将当前恶意软件样本的组织识别结果更新到样本特征数据集中,并采用更新后样本特征数据集重新训练恶意软件组织识别模型,可以克服恶意软件样本在现实中可能存在的概念漂移问题。
Description
技术领域
本发明涉及软件安全技术领域,尤其涉及一种恶意软件组织识别方法及设备。
背景技术
随着智能设备的广泛应用和发展,恶意软件开发者看到了背后的利益。高级持续威胁攻击通常由组织良好的专业团体发起,出于商业目的针对特定的目标,并在较长的一段时期内保持不被检测。APT组织在攻击特定的目标时,使用的恶意软件会交由组织的内部人员编写,这意味着APT恶意软件中存在APT组织内部人员的编程风格。当积累了多个已知的APT组织足够的恶意软件样本时,可通过特征工程提取出恶意软件的特征形成特征库。当发现新的APT攻击开展的时候,就可以使用特征库来识别用于APT攻击的恶意软件的组织,进而协助制定有效的防御策略,为安全分析人员进一步判断分析提供依据。因此,作为一种重要的安全防御技术,研究恶意软件的组织识别是有意义的。
目前,国内外已出现了一些基于机器学习的恶意软件组织识别研究,但是这些研究并未考虑恶意软件样本在现实中可能存在的概念漂移问题,其中,机器学习模型所要预测的目标变量可称为概念,而概念漂移是指目标变量的统计特性如样本数据分布随时间推移而发生不可预知的变化,将导致机器学习模型的预测精度随时间推移而降低,即样本的统计分布会随时间推移而发生不可预知的变化,从而导致恶意软件组织识别模型出错。因此,提出可自适应概念漂移的有效的恶意软件组织识别技术,对于恶意软件的组织识别在现实场景中的应用是很有必要的。
发明内容
本发明实施例提供一种恶意软件组织识别方法及设备,其能克服恶意软件样本在现实中可能存在的概念漂移问题,避免由于样本的统计分布会随时间推移而发生不可预知的变化从而导致恶意软件组织识别模型出错的问题。
第一方面,本发明实施例提供了一种恶意软件组织识别方法,包括:
获取待识别的当前恶意软件样本;
对当前恶意软件样本进行预处理,提取当前恶意软件样本的属性信息和特征表示向量,并存储到样本特征数据集中;
根据当前恶意软件样本的特征表示向量,使用预先训练好的恶意软件组织识别模型进行识别,获得当前恶意软件样本的组织识别结果;
根据所述样本特征数据集中的各个恶意软件样本的属性信息,将所述样本特征数据集中的各个恶意软件样本划分为新样本数据集和旧样本数据集;
根据所述新样本数据集和所述旧样本数据集,检测当前恶意软件样本是否发生概念偏移;
当检测到发生概念偏移时,将当前恶意软件样本的组织识别结果更新到所述样本特征数据集中,以采用更新后样本特征数据集重新训练所述恶意软件组织识别模型。
作为上述方案的改进,所述对当前恶意软件样本进行预处理,提取当前恶意软件样本的属性信息和特征表示向量,包括:
获取当前恶意软件样本的唯一标识信息以及首次提交日期,作为当前恶意软件样本的属性信息;
对当前恶意软件样本进行反汇编和反编译,生成当前恶意软件样本的源代码;
对所述源代码进行预处理和分词处理,得到当前恶意软件样本的特征表示向量。
作为上述方案的改进,对所述源代码进行预处理和分词处理,得到当前恶意软件样本的特征表示向量,包括:
将所述源代码按照预设的文本符号替换表进行替换,替换后的伪码文本;
对替换后的伪码文本进行分词处理,得到当前恶意软件样本的特征表示向量。
作为上述方案的改进,所述根据所述样本特征数据集中的各个恶意软件样本的属性信息,将所述样本特征数据集中的各个恶意软件样本划分为新样本数据集和旧样本数据集,包括:
检查所述样本特征数据集中的各个恶意软件样本的首次提交日期是否晚于所述恶意软件组织识别模型的上一次训练日期;
若是,则将所述样本特征数据中相应恶意软件样本划分到新样本数据集;
若否,则将所述样本特征数据中相应恶意软件样本划分到旧样本数据集。
作为上述方案的改进,所述根据所述新样本数据集和所述旧样本数据集,检测当前恶意软件样本是否发生概念偏移,包括:
对所述新样本数据集和所述旧样本数据集进行曼-惠特尼U检验,得到校验值;
当所述校验值大于等于预设的临界值时,确定当前恶意软件样本未发生概念偏移;
当所述校验值小于预设的临界值时,确定当前恶意软件样本发生概念偏移。
作为上述方案的改进,所述根据当前恶意软件样本的特征表示向量,使用预先训练好的恶意软件组织识别模型进行识别,获得当前恶意软件样本的组织识别结果,包括:
将当前恶意软件样本的特征表示向量输入到所述恶意软件组织识别模型进行识别,得到当前恶意软件样本的组织识别结果;
将当前恶意软件样本的特征表示向量输入到预先构建的各个组织的子学习器中,获得当前恶意软件样本被各个组织的子学习器接受的概率;
根据各个组织的子学习器的接受样本概率阈值以及当前恶意软件样本被各个组织的子学习器接受的概率,判断各个组织的子学习器是否接受当前恶意软件样本属于相应组织;
当存在一个组织的子学习器接受当前恶意软件样本属于相应组织时,确定将当前恶意软件样本分类到相应组织识别结果对应的组织中;
当不存在任何一个或者存在至少两个组织的子学习器接受当前恶意软件样本属于相应组织时,拒绝对当前恶意软件样本进行组织分类。
作为上述方案的改进,所述根据所述新样本数据集和所述旧样本数据集,检测当前恶意软件样本是否发生概念偏移,包括:
统计所述新样本数据集和所述旧样本数据集中属于拒绝对恶意样本进行组织分类情况的拒绝概率;
当所述拒绝概率超出预设的拒绝概率阈值时,确定当前恶意软件样本发生概念偏移;
当所述拒绝概率未超出预设的拒绝概率阈值时,确定当前恶意软件样本未发生概念偏移。
作为上述方案的改进,所述方法还包括以下恶意软件组织识别模型训练过程:
获取各个APT组织的恶意软件样本,构建APT恶意软件数据集;其中,每个所述恶意软件样本携带有唯一标识信息和组织标签;
对所述APT恶意软件数据集中各个恶意软件样本进行反汇编和反编译,生成相应恶意软件样本的源代码;
对所述APT恶意软件数据集中各个恶意软件样本的源代码进行预处理和分词处理,得到所述APT恶意软件数据集中各个恶意软件样本的特征表示向量;
根据所述APT恶意软件数据集中各个恶意软件样本的唯一标识信息、组织标签和特征表示向量,构建样本特征数据集;
采用所述样本特征数据集对预先构建的恶意软件组织识别模型进行训练,得到训练后的恶意软件组织识别模型。
作为上述方案的改进,所述恶意软件组织识别模型包括多个组织的子学习器;
则,采用所述样本特征数据集对预先构建的恶意软件组织识别模型进行训练,得到训练后的恶意软件组织识别模型,包括:
对于每个组织的子学习器,将所述样本特征数据集中属于同一个组织的恶意软件样本的组织标签置1,将所述样本特征数据集中属于不同组织的恶意软件样本的组织标签置0;并采用所述样本特征数据集中各个恶意软件样本的特征表示向量及其更新后的组织标签,对相应组织的子学习器进行训练,得到相应组织的子学习器接受各个恶意软件样本的概率,并将相应概率作为对应恶意软件样本属于相应组织的概率;
对于所述样本特征数据集中每个恶意软件样本,获取相应恶意软件样本属于各个组织的概率中的最大概率,并将最大概率对应的组织识别为相应恶意软件样本所属的ART组织。
第二方面,本发明实施例提供了一种恶意软件组织识别设备,包括:处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面中任意一项所述的恶意软件组织识别方法。
相对于现有技术,本发明实施例的有益效果在于:通过获取待识别的当前恶意软件样本;对当前恶意软件样本进行预处理,提取当前恶意软件样本的属性信息和特征表示向量,并存储到样本特征数据集中;根据当前恶意软件样本的特征表示向量,使用预先训练好的恶意软件组织识别模型进行识别,获得当前恶意软件样本的组织识别结果;根据所述样本特征数据集中的各个恶意软件样本的属性信息,将所述样本特征数据集中的各个恶意软件样本划分为新样本数据集和旧样本数据集;根据所述新样本数据集和所述旧样本数据集,检测当前恶意软件样本是否发生概念偏移;当检测到发生概念偏移时,将当前恶意软件样本的组织识别结果更新到所述样本特征数据集中,以采用更新后样本特征数据集重新训练所述恶意软件组织识别模型,本发明实施例可以克服恶意软件样本在现实中可能存在的概念漂移问题,避免由于样本的统计分布会随时间推移而发生不可预知的变化从而导致恶意软件组织识别模型出错的问题,从而可以有效识别恶意软件所属的APT组织,并且在发生概念漂移时具有良好的自适应性,即在组织识别的性能因为概念漂移而下降后,能重新恢复其性能。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施方式中所占据要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种恶意软件组织识别方法的流程图;
图2是本法发明实施例提供的恶意软件样本特征表示示意图;
图3是本法发明实施例提供的组织识别流程示意图;
图4是本法发明实施例提供的样本概念漂移检测流程示意图;
图5是本法发明实施例提供的恶意软件组织识别模型训练流程示意图;
图6是本法发明实施例提供的恶意软件组织识别整体流程示意图;
图7是本法发明实施例提供的RBEL策略的拒绝分类边界示意图;
图8是采用本法发明实施例提供的方法建立的系统和现有组织识别方法所构建的系统的性能对比图;
图9是本法发明实施例提供的一种恶意软件组织识别设备的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
请参阅图1,其是本发明实施例提供一种恶意软件组织识别方法的流程图,所述恶意软件组织识别方法,包括:
S1:获取待识别的当前恶意软件样本;
S2:对当前恶意软件样本进行预处理,提取当前恶意软件样本的属性信息和特征表示向量,并存储到样本特征数据集中;
S3:根据当前恶意软件样本的特征表示向量,使用预先训练好的恶意软件组织识别模型进行识别,获得当前恶意软件样本的组织识别结果;
S4:根据所述样本特征数据集中的各个恶意软件样本的属性信息,将所述样本特征数据集中的各个恶意软件样本划分为新样本数据集和旧样本数据集;
S5:根据所述新样本数据集和所述旧样本数据集,检测当前恶意软件样本是否发生概念偏移;
S6:当检测到发生概念偏移时,将当前恶意软件样本的组织识别结果更新到所述样本特征数据集中,以采用更新后样本特征数据集重新训练所述恶意软件组织识别模型。
本发明实施例在每次进行恶意软件样本的组织识别后,对进行概念偏移检测,并在发生概念漂移时,将当前的恶意软件样本添加到样本特征数据集重新训练恶意软件组织识别模型,从而可以克服恶意软件样本在现实中可能存在的概念漂移问题,避免由于样本的统计分布会随时间推移而发生不可预知的变化从而导致恶意软件组织识别模型出错的问题,进而可以有效识别恶意软件所属的APT组织,并且在发生概念漂移时具有良好的自适应性,即在组织识别的性能因为概念漂移而下降后,能重新恢复其性能。
在一种可选的实施例中,所述对当前恶意软件样本进行预处理,提取当前恶意软件样本的属性信息和特征表示向量,包括:
获取当前恶意软件样本的唯一标识信息以及首次提交日期,作为当前恶意软件样本的属性信息;
其中,每个恶意软件均携带有唯一标识信息,例如MD5信息摘要的哈希值。通过将待识别的当前恶意软件样本提交至可疑文件分析服务网站,可以当前恶意软件样本的相关信息,包括首次提交日期。在本发明实施例中,将当前恶意软件样本的首次提交日期作为其近似创建日期。
示例性,可疑文件分析服务网站可以是VirusTotal网站,通过VirusTotal网站的files接口获得提交当前恶意软件样本的相关信息,包括首次提交日期(first submissiondate)、编成日期(creation date)、最后提交日期(last submissiondate)md5等字段。其中,首次提交日期表示为首次提交分析日期,相当于当前恶意软件样本PE文件头中的创建日期时间戳,该字段因其同时满足接近样本的真实创建日期和无法使用工具任意篡改的条件而具有更高的可信度,因此选择字段首次提交日期(firstsubmission date)作为样本的近似创建日期。
对当前恶意软件样本进行反汇编和反编译,生成当前恶意软件样本的源代码;
对所述源代码进行预处理和分词处理,得到当前恶意软件样本的特征表示向量。
进一步,对所述源代码进行预处理和分词处理,得到当前恶意软件样本的特征表示向量,包括:
将所述源代码按照预设的文本符号替换表进行替换,替换后的伪码文本;
对替换后的伪码文本进行分词处理,得到当前恶意软件样本的特征表示向量。
在本发明实施例中,对于当前恶意软件样本,先反汇编、再反编译生成C++规范的源代码,然后对源代码进行预处理,即按照下表所示的按照函数的文本符号替换表进行替换,然后进行分词生成当前恶意软件样本的特征表示向量,如图2所示,最后将当前恶意软件样本的特征表示向量、唯一标识信息(例如MD5)、首次提交日期(即样本的近似创建日期)加入样本特征数据集中。
原始的反编译文本符号 (含正则表达式) | 替换后的伪码文本符号 |
变量声明语句 | / |
sub_[0-9A-F]+ | function |
loc_[0-9A-F]+ | local |
off_[0-9A-F]+ | offset |
stru_[0-9A-F]+ | structure |
byte_[0-9A-F]+ | address |
dword_[0-9A-F]+ | address |
unk_[0-9A-F]+ | unknown |
a[0-9]+ | parameter |
v[0-9]+ | variable |
0[xX][0-9a-fA-F]+u | unsigned hex |
0[xX][0-9a-fA-F]+i64 | hex_64 |
[0-9]+u | unsigned digit |
[0-9]+ | digit |
[0-9]+i64 | digit_64 |
LABEL_[0-9]+ | LABEL |
在一种可选的实施例中,所述根据所述样本特征数据集中的各个恶意软件样本的属性信息,将所述样本特征数据集中的各个恶意软件样本划分为新样本数据集和旧样本数据集,包括:
检查所述样本特征数据集中的各个恶意软件样本的首次提交日期是否晚于所述恶意软件组织识别模型的上一次训练日期;
若是,则将所述样本特征数据中相应恶意软件样本划分到新样本数据集;
若否,则将所述样本特征数据中相应恶意软件样本划分到旧样本数据集。
在一种可选的实施例中,所述根据所述新样本数据集和所述旧样本数据集,检测当前恶意软件样本是否发生概念偏移,包括:
对所述新样本数据集和所述旧样本数据集进行曼-惠特尼U检验,得到校验值;
当所述校验值大于等于预设的临界值时,确定当前恶意软件样本未发生概念偏移;
当所述校验值小于预设的临界值时,确定当前恶意软件样本发生概念偏移。
在一种可选的实施例中,所述根据当前恶意软件样本的特征表示向量,使用预先训练好的恶意软件组织识别模型进行识别,获得当前恶意软件样本的组织识别结果,包括:
将当前恶意软件样本的特征表示向量输入到所述恶意软件组织识别模型进行识别,得到当前恶意软件样本的组织识别结果;
将当前恶意软件样本的特征表示向量输入到预先构建的各个组织的子学习器中,获得当前恶意软件样本被各个组织的子学习器接受的概率;
根据各个组织的子学习器的接受样本概率阈值以及当前恶意软件样本被各个组织的子学习器接受的概率,判断各个组织的子学习器是否接受当前恶意软件样本属于相应组织;
当存在一个组织的子学习器接受当前恶意软件样本属于相应组织时,确定将当前恶意软件样本分类到相应组织识别结果对应的组织中;
当不存在任何一个或者存在至少两个组织的子学习器接受当前恶意软件样本属于相应组织时,拒绝对当前恶意软件样本进行组织分类。
在一种可选的实施例中,所述根据所述新样本数据集和所述旧样本数据集,检测当前恶意软件样本是否发生概念偏移,包括:
统计所述新样本数据集和所述旧样本数据集中属于拒绝对恶意样本进行组织分类情况的拒绝概率;
当所述拒绝概率超出预设的拒绝概率阈值时,确定当前恶意软件样本发生概念偏移;
当所述拒绝概率未超出预设的拒绝概率阈值时,确定当前恶意软件样本未发生概念偏移。
恶意软件的识别流程可以分为三个阶段,第一个阶段是样本识别,具体包括:获取的待识别的当前恶意软件样本,通过可疑文件分析服务网站获取当前恶意软件样本的MD5和首次提交日期;然后对当前恶意软件样本先反汇编、再反编译生成C++规范的源代码,将源代码按照上述的文本符号替换表进行替换、分词生成当前恶意软件样本的特征表示向量,将当前恶意软件样本的特征表示向量、唯一标识信息(例如MD5)、首次提交日期(即样本的近似创建日期)加入样本特征数据集中;接着将当前恶意软件样本的特征表示向量输入到已经训练好的恶意软件组织识别模型,得到当前恶意软件样本属于各个组织的概率,并将最大概率对应的组织作为当前恶意软件样本的组织识别结果,如图3所示。
第二阶段是基于RBEL(RejectionBased on Ensemble Learning)策略,将新样本识别为属于某个组织或者进行拒绝识别的处理,具体包括:先将待识别的当前恶意软件样本x的特征表示向量依次输入各个组织的子学习器;然后获取当前恶意软件样本x被各个子学习器接受的概率;最后根据预先设置的子学习器的接受样本概率阈值,判断每个组织的子学习器是否接受当前恶意软件样本x属于本组织;如果存在唯一的子学习器接受当前恶意软件样本x,将返回对应的组织标签并更新至样本特征数据集,此时,返回的组织标签即为恶意软件组织识别模型输出的组织识别结果;如果不存在任何一个或多于一个子学习器接受当前恶意软件样本x,将拒绝对当前恶意软件样本x进行组织分类,此时,拒绝恶意软件组织识别模型输出的组织识别结果。
第三个阶段是样本的概念漂移,具体包括:定期检测样本特征数据集是否发生概念漂移,并在检测到漂移时更新恶意软件组织识别模型。其中,定期检测的时间间隔可根据历史上最近两次漂移之间的间隔天数或新增样本数来确定。对于从样本特征数据集中取出的每个恶意软件样本,查询其近似创建日期(即首次提交日期)是否晚于恶意软件组织识别模型的上一次训练日期:如果晚于,则说明该恶意软件样本是在训练模型结束后到来的新样本,否则说明该样本是旧样本;通过历遍样本特征数据集中的恶意软件样本,可以将样本特征数据集中的恶意软件样本划分为新样本集和旧样本集。针对于新旧样本,使用曼-惠特尼U检验或模型的拒绝概率来判断新旧样本间是否发生了概念漂移。当将检测到发生概念漂移时,使用添加了当前恶意软件样本,即新样本的样本特征数据集重新训练恶意软件组织识别模型,从而使得恶意软件组织识别模型可以克服恶意软件样本在现实中可能存在的概念漂移问题,避免由于样本的统计分布会随时间推移而发生不可预知的变化从而导致恶意软件组织识别模型出错的问题,并在发生概念漂移时具有良好的自适应性,从而可以有效识别恶意软件所属的APT组织,如图4所示。
通过曼-惠特尼U检验计算得出新旧样本之间的显著性差异,当校验值低于原假设的临界值时,判定样本特征数据集发生了概念漂移;
又或者,当模型的拒绝概率超出预设的拒绝概率阈值时,判定样本特征数据集发生了概念漂移。其中,模型的拒绝概率可以通过计算所述新样本数据集和所述旧样本数据集中属于拒绝对恶意样本进行组织分类情况的样本数量与总样本数量的比值得到,例如模型的拒绝概率=a×(新样本集中属于拒绝对恶意样本进行组织分类情况的样本数量/新样本集的总样本数)+b×(旧样本集中属于拒绝对恶意样本进行组织分类情况的样本数量/旧样本集的总样本数),其中,a、b为设定权重,a+b=1。
结合图5所示,恶意软件组织识别模型训练过程包括:
获取各个APT组织的恶意软件样本,构建APT恶意软件数据集;其中,每个所述恶意软件样本携带有唯一标识信息和组织标签;
对所述APT恶意软件数据集中各个恶意软件样本进行反汇编和反编译,生成相应恶意软件样本的源代码;
对所述APT恶意软件数据集中各个恶意软件样本的源代码进行预处理和分词处理,得到所述APT恶意软件数据集中各个恶意软件样本的特征表示向量;
根据所述APT恶意软件数据集中各个恶意软件样本的唯一标识信息、组织标签和特征表示向量,构建样本特征数据集;
采用所述样本特征数据集对预先构建的恶意软件组织识别模型进行训练,得到训练后的恶意软件组织识别模型。
需要说明的是,所述APT恶意软件数据集中各个恶意软件样本的反汇编、反编译、预处理和分词处理过程与上文当前恶意软件样本的处理流程相同,在这里不再重复赘述。
在本发明实施例中,恶意软件样本实际的出现时间为其近似创建日期,即上述可疑文件分析服务网站提供的首次提交日期;根据恶意软件样本的近似创建日期的Unix时间戳大小,对APT恶意软件数据集中的恶意软件样本排序,例如对于2013-2017年的APT恶意软件数据集,以2014年12月31日为界,将2013年与2014年的样本作为初始化的旧样本集和训练数据集,将2015年、2016年、2017年的样本初始化为新样本集。
进一步,所述恶意软件组织识别模型包括多个组织的子学习器;
则,采用所述样本特征数据集对预先构建的恶意软件组织识别模型进行训练,得到训练后的恶意软件组织识别模型,包括:
对于每个组织的子学习器,将所述样本特征数据集中属于同一个组织的恶意软件样本的组织标签置1,将所述样本特征数据集中属于不同组织的恶意软件样本的组织标签置0;并采用所述样本特征数据集中各个恶意软件样本的特征表示向量及其更新后的组织标签,对相应组织的子学习器进行训练,得到相应组织的子学习器接受各个恶意软件样本的概率,并将相应概率作为对应恶意软件样本属于相应组织的概率;
对于所述样本特征数据集中每个恶意软件样本,获取相应恶意软件样本属于各个组织的概率中的最大概率,并将最大概率对应的组织识别为相应恶意软件样本所属的ART组织。
所述恶意软件组织识别模型的训练过程如下:
首先为样本特征数据集中的每个组织都单独训练一个子学习器,在各个子学习器的训练过程中,将属于同一组织的恶意软件样本的组织标签置1,不属于同一个组织的恶意软件样本的组织标签置0;例如,训练A组织的子学习器时,A组织的恶意软件样本的组织标签置1,其它组织的恶意软件样本的组织标签置0。
然后对于样本特征数据集中的恶意软件样本y,将一个组织的子学习器接受y的概率作为y属于此组织的概率;
最后通过集成各个组织的子学习器,可得到y属于各个组织的概率,其中最大概率值所对应的组织就被识别为y所属的APT组织。
示例性,每个子学习器都是一个二分类器,通过集成训练后的各个组织对应二分类器建立恶意软件组织识别模型。
本发明实施例的整体流程如图6所示,相对于现有技术具有如下的优点及效果:
1、本发明实施例结合了恶意软件的静态特征(例如首次提交日期、MD5)和机器学习模型的优势,联合了对APT组织的恶意软件样本进行组织识别和概念漂移检测,通过概念漂移检测方法检测样本特征数据集是否发生概念漂移以及更新恶意软件组织识别模型,相对于现有的恶意软件组织分类研究工作,更符合软件安全的真实情况,即数据集的划分不再按照一定比例随机划分即使用交叉验证的方法,而是按照恶意软件实际的出现时间的顺序划分,从而充分考虑了概念漂移的影响,克服了恶意软件样本在现实中可能存在的概念漂移问题,即样本的统计分布会随时间推移而发生不可预知的变化,从而导致组织识别模型出错的技术问题。
2、本发明实施例针对APT组织的恶意软件样本,首先进行反汇编得到反汇编代码,随后进行反编译生成C++规范的源代码;然后,按照函数的文本符号替换表进行替换,即对源代码进行预处理并分词,通过上述恶意软件样本的特征提取方法不仅能够保留反汇编代码中的代码执行顺序信息,还可以将基本块之间的边的特征融入了选择和循环等代码语句,能够更好地反映APT组织的风格特征。
3、本发明实施例通过将新样本的特征表示向量输入已训练好的恶意软件组织识别模型,得到新样本属于各个组织的概率,进而基于RBEL策略,将新样本识别为属于某个组织或者进行拒绝识别的处理,上述RBEL策略的拒绝分类边界的示意图如图7所示,图中阴影部分为子学习器集成的恶意软件组织分类模型的各个组织类别的边界,相比于传统的封闭边界,RBEL策略的开放边界使其具有更好的泛化能力,从而可以提高APT组织识别的精度。
4、现有组织识别方法所构建的系统1(即忽视现实场景中实际存在的概念漂移问题)与本发明实施例建立的组织识别系统2进行对比,如图8所示,使用安全公司提供的2013-2017年的APT恶意软件数据集,设置拒绝率阈值为40%,设置检测频率为间隔1个样本检测1次概念漂移。通过实验发现,系统1的模型准确率受概念漂移影响而呈现显著下降,且无法恢复至较高的准确率,因此不具有对概念漂移的自适应性。而使用本发明实施例构建的系统2在保证拒绝率低于阈值的情况下,对于接受识别的样本,模型的准确率长时间保持在90%以上,且大量检测点达到了100%,仅有3个检测点准确率短暂降为85.71%和2个检测点的准确率短暂降为83.33%,实验发现这些检测点的拒绝率接近阈值,这说明系统即将对模型进行重训练,随后准确率再次回到90%以上。可见系统2能够在识别准确率受概念漂移影响而下降时以较快的速度恢复至较高的准确率,具有对概念漂移的自适应性。此外,在模拟运行过程中,系统2在2015年、2016年和2017年共三年的时间中总共对识别模型进行了57次更新,即平均每19天更新一次,这样的更新频率在实际应用中通常是可行的。
实施例二
参见图9,是本发明实施例提供的恶意软件组织识别设备的示意图。该实施例的恶意软件组织识别设备包括:处理器100、存储器200以及存储在所述存储器200中并可在所述处理器100上运行的计算机程序,例如恶意软件组织识别程序。所述处理器100执行所述计算机程序时实现上述各个恶意软件组织识别方法实施例中的步骤,例如图1所示的步骤S1-S6。
示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述恶意软件组织识别设备中的执行过程。
所述恶意软件组织识别设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述恶意软件组织识别设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,所述示意图仅仅是恶意软件组织识别设备的示例,并不构成对恶意软件组织识别设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述恶意软件组织识别设备还可以包括输入输出设备、网络接入设备、总线等。
所述处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器 (Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列 (Field-Programmable Gate Array,FPGA) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述恶意软件组织识别设备的控制中心,利用各种接口和线路连接整个恶意软件组织识别设备的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述恶意软件组织识别设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card, SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
其中,所述恶意软件组织识别设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。
需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出多台改进和润饰,这些改进和润饰也视为本发明的保护范围。
Claims (10)
1.一种恶意软件组织识别方法,其特征在于,包括:
获取待识别的当前恶意软件样本;
对当前恶意软件样本进行预处理,提取当前恶意软件样本的属性信息和特征表示向量,并存储到样本特征数据集中;
根据当前恶意软件样本的特征表示向量,使用预先训练好的恶意软件组织识别模型进行识别,获得当前恶意软件样本的组织识别结果;
根据所述样本特征数据集中的各个恶意软件样本的属性信息,将所述样本特征数据集中的各个恶意软件样本划分为新样本数据集和旧样本数据集;
根据所述新样本数据集和所述旧样本数据集,检测当前恶意软件样本是否发生概念偏移;
当检测到发生概念偏移时,将当前恶意软件样本的组织识别结果更新到所述样本特征数据集中,以采用更新后样本特征数据集重新训练所述恶意软件组织识别模型。
2.如权利要求1所述的恶意软件组织识别方法,其特征在于,所述对当前恶意软件样本进行预处理,提取当前恶意软件样本的属性信息和特征表示向量,包括:
获取当前恶意软件样本的唯一标识信息以及首次提交日期,作为当前恶意软件样本的属性信息;
对当前恶意软件样本进行反汇编和反编译,生成当前恶意软件样本的源代码;
对所述源代码进行预处理和分词处理,得到当前恶意软件样本的特征表示向量。
3.如权利要求2所述的恶意软件组织识别方法,其特征在于,对所述源代码进行预处理和分词处理,得到当前恶意软件样本的特征表示向量,包括:
将所述源代码按照预设的文本符号替换表进行替换,替换后的伪码文本;
对替换后的伪码文本进行分词处理,得到当前恶意软件样本的特征表示向量。
4.如权利要求2所述的恶意软件组织识别方法,其特征在于,所述根据所述样本特征数据集中的各个恶意软件样本的属性信息,将所述样本特征数据集中的各个恶意软件样本划分为新样本数据集和旧样本数据集,包括:
检查所述样本特征数据集中的各个恶意软件样本的首次提交日期是否晚于所述恶意软件组织识别模型的上一次训练日期;
若是,则将所述样本特征数据中相应恶意软件样本划分到新样本数据集;
若否,则将所述样本特征数据中相应恶意软件样本划分到旧样本数据集。
5.如权利要求1或4所述的恶意软件组织识别方法,其特征在于,所述根据所述新样本数据集和所述旧样本数据集,检测当前恶意软件样本是否发生概念偏移,包括:
对所述新样本数据集和所述旧样本数据集进行曼-惠特尼U检验,得到校验值;
当所述校验值大于等于预设的临界值时,确定当前恶意软件样本未发生概念偏移;
当所述校验值小于预设的临界值时,确定当前恶意软件样本发生概念偏移。
6.如权利要求1所述的恶意软件组织识别方法,其特征在于,所述根据当前恶意软件样本的特征表示向量,使用预先训练好的恶意软件组织识别模型进行识别,获得当前恶意软件样本的组织识别结果,包括:
将当前恶意软件样本的特征表示向量输入到所述恶意软件组织识别模型进行识别,得到当前恶意软件样本的组织识别结果;
将当前恶意软件样本的特征表示向量输入到预先构建的各个组织的子学习器中,获得当前恶意软件样本被各个组织的子学习器接受的概率;
根据各个组织的子学习器的接受样本概率阈值以及当前恶意软件样本被各个组织的子学习器接受的概率,判断各个组织的子学习器是否接受当前恶意软件样本属于相应组织;
当存在一个组织的子学习器接受当前恶意软件样本属于相应组织时,确定将当前恶意软件样本分类到相应组织识别结果对应的组织中;
当不存在任何一个或者存在至少两个组织的子学习器接受当前恶意软件样本属于相应组织时,拒绝对当前恶意软件样本进行组织分类。
7.如权利要求6所述的恶意软件组织识别方法,其特征在于,所述根据所述新样本数据集和所述旧样本数据集,检测当前恶意软件样本是否发生概念偏移,包括:
统计所述新样本数据集和所述旧样本数据集中属于拒绝对恶意样本进行组织分类情况的拒绝概率;
当所述拒绝概率超出预设的拒绝概率阈值时,确定当前恶意软件样本发生概念偏移;
当所述拒绝概率未超出预设的拒绝概率阈值时,确定当前恶意软件样本未发生概念偏移。
8.如权利要求1所述的恶意软件组织识别方法,其特征在于,所述方法还包括以下恶意软件组织识别模型训练过程:
获取各个APT组织的恶意软件样本,构建APT恶意软件数据集;其中,每个所述恶意软件样本携带有唯一标识信息和组织标签;
对所述APT恶意软件数据集中各个恶意软件样本进行反汇编和反编译,生成相应恶意软件样本的源代码;
对所述APT恶意软件数据集中各个恶意软件样本的源代码进行预处理和分词处理,得到所述APT恶意软件数据集中各个恶意软件样本的特征表示向量;
根据所述APT恶意软件数据集中各个恶意软件样本的唯一标识信息、组织标签和特征表示向量,构建样本特征数据集;
采用所述样本特征数据集对预先构建的恶意软件组织识别模型进行训练,得到训练后的恶意软件组织识别模型。
9.如权利要求8所述的恶意软件组织识别方法,其特征在于,所述恶意软件组织识别模型包括多个组织的子学习器;
则,采用所述样本特征数据集对预先构建的恶意软件组织识别模型进行训练,得到训练后的恶意软件组织识别模型,包括:
对于每个组织的子学习器,将所述样本特征数据集中属于同一个组织的恶意软件样本的组织标签置1,将所述样本特征数据集中属于不同组织的恶意软件样本的组织标签置0;并采用所述样本特征数据集中各个恶意软件样本的特征表示向量及其更新后的组织标签,对相应组织的子学习器进行训练,得到相应组织的子学习器接受各个恶意软件样本的概率,并将相应概率作为对应恶意软件样本属于相应组织的概率;
对于所述样本特征数据集中每个恶意软件样本,获取相应恶意软件样本属于各个组织的概率中的最大概率,并将最大概率对应的组织识别为相应恶意软件样本所属的ART组织。
10.一种恶意软件组织识别设备,其特征在于,包括:处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至9中任意一项所述的恶意软件组织识别方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310067439.5A CN115795466B (zh) | 2023-02-06 | 2023-02-06 | 一种恶意软件组织识别方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310067439.5A CN115795466B (zh) | 2023-02-06 | 2023-02-06 | 一种恶意软件组织识别方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115795466A true CN115795466A (zh) | 2023-03-14 |
CN115795466B CN115795466B (zh) | 2023-06-20 |
Family
ID=85430004
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310067439.5A Active CN115795466B (zh) | 2023-02-06 | 2023-02-06 | 一种恶意软件组织识别方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115795466B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117113351A (zh) * | 2023-10-18 | 2023-11-24 | 广东省科技基础条件平台中心 | 一种基于多重多级预训练的软件分类方法及设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019002603A1 (en) * | 2017-06-30 | 2019-01-03 | Royal Holloway And Bedford New College | METHOD FOR MONITORING THE PERFORMANCE OF AN AUTOMATIC LEARNING ALGORITHM |
CN110110792A (zh) * | 2019-05-09 | 2019-08-09 | 南京大学 | 一种基于增量学习的多标签数据流分类方法 |
CN112001423A (zh) * | 2020-07-29 | 2020-11-27 | 暨南大学 | Apt恶意软件组织的开集识别方法、装置、设备和介质 |
CN113901463A (zh) * | 2021-09-03 | 2022-01-07 | 燕山大学 | 面向概念漂移的可解释Android恶意软件检测方法 |
-
2023
- 2023-02-06 CN CN202310067439.5A patent/CN115795466B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019002603A1 (en) * | 2017-06-30 | 2019-01-03 | Royal Holloway And Bedford New College | METHOD FOR MONITORING THE PERFORMANCE OF AN AUTOMATIC LEARNING ALGORITHM |
CN110110792A (zh) * | 2019-05-09 | 2019-08-09 | 南京大学 | 一种基于增量学习的多标签数据流分类方法 |
CN112001423A (zh) * | 2020-07-29 | 2020-11-27 | 暨南大学 | Apt恶意软件组织的开集识别方法、装置、设备和介质 |
CN113901463A (zh) * | 2021-09-03 | 2022-01-07 | 燕山大学 | 面向概念漂移的可解释Android恶意软件检测方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117113351A (zh) * | 2023-10-18 | 2023-11-24 | 广东省科技基础条件平台中心 | 一种基于多重多级预训练的软件分类方法及设备 |
CN117113351B (zh) * | 2023-10-18 | 2024-02-20 | 广东省科技基础条件平台中心 | 一种基于多重多级预训练的软件分类方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN115795466B (zh) | 2023-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Namanya et al. | Similarity hash based scoring of portable executable files for efficient malware detection in IoT | |
CN109359439B (zh) | 软件检测方法、装置、设备及存储介质 | |
CN110135157B (zh) | 恶意软件同源性分析方法、系统、电子设备及存储介质 | |
Darshan et al. | Performance evaluation of filter-based feature selection techniques in classifying portable executable files | |
Kostakis et al. | Improved call graph comparison using simulated annealing | |
CN110362996B (zh) | 一种离线检测PowerShell恶意软件的方法与系统 | |
CN111353062A (zh) | 一种图像检索方法、装置以及设备 | |
US11487876B1 (en) | Robust whitelisting of legitimate files using similarity score and suspiciousness score | |
CN115795466A (zh) | 一种恶意软件组织识别方法及设备 | |
Naeem et al. | Digital forensics for malware classification: An approach for binary code to pixel vector transition | |
CN112287339A (zh) | Apt入侵检测方法、装置以及计算机设备 | |
CN108229168B (zh) | 一种嵌套类文件的启发式检测方法、系统及存储介质 | |
CN113656768A (zh) | 一种区块链中数字资产流向追踪的方法、系统和存储介质 | |
US11868473B2 (en) | Method for constructing behavioural software signatures | |
US11550910B2 (en) | Creating generic rules in a high dimensional sparse feature space using negative feedback | |
CN112070161A (zh) | 一种网络攻击事件分类方法、装置、终端及存储介质 | |
Reddy et al. | Network attack detection and classification using ann algorithm | |
WO2023072002A1 (zh) | 开源组件包的安全检测方法及装置 | |
CN111198900B (zh) | 工业控制网络的数据缓存方法、装置、终端设备及介质 | |
CN115842645A (zh) | 基于umap-rf的网络攻击流量检测方法、装置及可读存储介质 | |
CN112163217A (zh) | 恶意软件变种识别方法、装置、设备及计算机存储介质 | |
Mulyanto et al. | Effectiveness of focal loss for minority classification in network intrusion detection systems. Symmetry. 2021; 13: 4 | |
Li et al. | RGDroid: Detecting Android Malware with Graph Convolutional Networks against Structural Attacks | |
CN110110177B (zh) | 一种基于图的恶意软件家族聚类评估方法及装置 | |
Joe et al. | A Method of Constructing Malware Classification Dataset Using Clustering |
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 |