CN112257062B - 一种基于频繁项集挖掘的沙箱知识库生成方法和装置 - Google Patents

一种基于频繁项集挖掘的沙箱知识库生成方法和装置 Download PDF

Info

Publication number
CN112257062B
CN112257062B CN202011535297.3A CN202011535297A CN112257062B CN 112257062 B CN112257062 B CN 112257062B CN 202011535297 A CN202011535297 A CN 202011535297A CN 112257062 B CN112257062 B CN 112257062B
Authority
CN
China
Prior art keywords
sample
behavior
malicious
sandbox
instruction
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
Application number
CN202011535297.3A
Other languages
English (en)
Other versions
CN112257062A (zh
Inventor
曲武
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jinjing Yunhua Shenyang Technology Co ltd
Beijing Jinjingyunhua Technology Co ltd
Original Assignee
Jinjing Yunhua Shenyang Technology Co ltd
Beijing Jinjingyunhua Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Jinjing Yunhua Shenyang Technology Co ltd, Beijing Jinjingyunhua Technology Co ltd filed Critical Jinjing Yunhua Shenyang Technology Co ltd
Priority to CN202011535297.3A priority Critical patent/CN112257062B/zh
Publication of CN112257062A publication Critical patent/CN112257062A/zh
Application granted granted Critical
Publication of CN112257062B publication Critical patent/CN112257062B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities

Abstract

本发明提供了一种基于频繁项集挖掘的沙箱知识库生成方法和装置,方法包括:获取样本数据集并进行标注;利用沙箱对样本的主机行为和网络行为进行监控,利用样本指令嵌入算法对样本行为文件进行预处理并生成样本指令片段嵌入集合;利用多种算法获取样本家族的关联规则集合;对样本家族的关联规则集合进行分解,过滤样本合法的频繁行为模式,对剩下的频繁行为模式进行恶意样本家族标注,通过嵌入向量映射获取可读的恶意行为模式描述,生成恶意样本沙箱的行为知识库。本发明可以大规模分析样本的行为数据,提高了沙箱行为知识库的质量和生成效率,允许沙箱自动识别具有类似行为的新型恶意样本,有效检测采用混淆和其他多态变形技术的APT样本。

Description

一种基于频繁项集挖掘的沙箱知识库生成方法和装置
技术领域
本发明涉及恶意代码动态检测领域,尤其涉及一种基于频繁项集挖掘的沙箱知识库生成方法和装置。
背景技术
恶意样本是当今Internet上的主要威胁之一,从经典的计算机病毒到蠕虫、僵尸网络和APT(Advanced Persistent Threat,APT)样本,恶意样本威胁可以说无处不在。与此同时,恶意样本的数量和多样性也在不断增加,这就导致传统的特征检测技术(如反病毒程序)失效。为了防止恶意样本在网络中的快速传播,反恶意样本的开发人员在很大程度上依赖于对新颖变体的人工分析来设计相应的防御措施。但是,由于恶意样本编写者经常采用混淆技术(例如二进制打包程序,加密或自适应修改代码)来阻碍分析。因此,对恶意样本进行持续大规模分析难度较大。过去,研究人员提出了大量新颖的技术对恶意样本二进制文件的静态分析特别有效。但是,与静态分析技术相比,在运行时对二进制文件进行动态分析以监控恶意样本的行为,这种行为很难掩盖,并且通常指示恶意活动。因此,近来大量研究集中在开发用于收集和监视恶意样本运行的工具。尽管在运行时监控样本行为已经成为研究恶意样本行为的一种可靠技术手段,但仅监控不足以减轻恶意样本传播的威胁。需要的是能够自动分析恶意样本行为的能力,以便可以有效地识别和缓解新型、变种样本的检测压力。
发明内容
为了解决上述技术问题,本发明提供一种基于频繁项集挖掘的沙箱知识库生成方法和装置,能够有效地分析恶意样本的行为,从而为及时防御产品开发提供基础。同时,结合用于构建检测模式和启发式方法的前沿技术,基于频繁项集挖掘的沙箱知识库生成技术可以显著增强在与恶意样本开发者对抗中的优势。
本发明是这样实现的,提供一种基于频繁项集挖掘的沙箱知识库生成方法,包括如下步骤:
1)获取样本数据集,利用多AV扫描方法和基因图谱聚类方法对样本进行家族标注,区分白样本以及多种同源恶意样本家族,获得标注后的白样本集合和恶意样本集合,统称为标注后的样本集合;
2)获取标注后的样本集合,利用沙箱方法对白样本集合以及恶意样本集合的主机行为和网络行为进行监控,生成白样本行为文件和恶意样本行为文件,对生成的样本行为文件进行分布式预处理并提取样本指令片段,利用样本指令嵌入算法生成样本指令片段嵌入向量集合;
3)获取样本指令片段嵌入向量集合,根据样本行为模式的定义,联合利用频繁项集挖掘、关联规则生成算法和频繁项集更新算法获取白样本集合以及恶意样本集合的关联规则集合;
4)对白样本集合以及恶意样本集合的关联规则集合进行分解,利用样本的合法行为模式过滤恶意样本的频繁行为模式集合,并对不同的频繁行为模式进行恶意样本家族标注,最后通过嵌入向量映射获取可读的恶意行为模式描述,进而生成恶意样本沙箱的行为知识库。
优选地,所述步骤1)具体包括:
101)多阶段复合的恶意样本标注方法,首先获取样本数据集,利用多种杀毒软件批量对样本进行扫描;
102)对扫描结果进行分析,对于待分析样本,若
Figure 164787DEST_PATH_IMAGE001
,则判定为白样本,若
Figure 92291DEST_PATH_IMAGE002
,则判定为灰样本,过滤灰样本,若
Figure 794930DEST_PATH_IMAGE003
,则判定为恶意样本,其中
Figure 378358DEST_PATH_IMAGE004
表示多AV方法判定待分析样本为恶意样本的不重复个数,
Figure 690391DEST_PATH_IMAGE005
Figure 737981DEST_PATH_IMAGE006
为设定的判定阈值的下限和上限,利用多AV投票机制标注家族信息,获得恶意样本集合;
103)对恶意样本集合进行分析,利用恶意样本家族信息生成家族聚类大簇;
104)对于多AV投票机制标注的家族聚类大簇,进行恶意代码基因图谱聚类,生成聚类子簇;
105)利用聚类质量评估算法对聚类结果进行评估,进而选择最优的聚类算法,然后过滤聚类质量较差的聚类子簇;
106)利用多AV投票机制对于恶意样本聚类子簇进行家族标注;
107)输出标注后的白样本集合和恶意样本集合,统称为标注后的样本集合。
进一步优选,所述步骤2)具体包括:
201)获取标注后的样本集合,批量提交给沙箱/沙箱集群,触发样本运行释放主机行为和网络行为,生成样本行为文件;
202)获取样本行为文件集合,至少包括样本Hash、家族标注、文件大小、文件类型以及主机行为和网络行为,写入消息队列的样本行为文件Topic;
203)利用分布式数据流处理组件,从消息队列的样本行为文件Topic读取相应的样本行为数据流;
204)对样本行为数据流进行预处理,并利用行为指令嵌入算法对提取的指令片段进行处理,完成指令片段嵌入过程,生成样本的结构化指令片段嵌入数据流;
205)利用分布式数据流处理组件,将样本的结构化指令片段嵌入数据流写入消息队列的结构化指令嵌入Topic。
进一步优选,所述步骤204)具体包括:
2041)对样本行为数据流进行预处理,生成行为序列报告,至少包括系统调用及其参数;
2042)特征行为嵌入过程,对于行为序列报告,每个指令都使用短数字标识符对系统调用及其参数进行编码;
2043)将系统调用参数以块的形式排列到不同级别,以不同数据粒度反应样本行为;
2044)对于变长参数,采用索引号表示方式,并且使用全局映射表在序列报告原始内容和索引号之间进行变换;
2045)输出样本的结构化指令片段嵌入数据流。
进一步优选,所述步骤3)具体包括:
301)通过删除满足对操作系统API调用少于指定阈值的样本,过滤执行失败样本的结构化指令片段嵌入;
302)定义行为模式相关集合,至少包括事务、项集、频繁项集、闭合频繁项集、关联规则;
303)利用频繁项集挖掘算法对样本指令片段嵌入向量集合进行挖掘,根据给定的最小支持度阈值获取频繁项集和相关支持度;
304)利用关联规则生成算法对频繁项集及其支持度集合进行计算,生成可信度超过最小可信度阈值的关联规则集合;
305)利用频繁项集更新算法更新关联规则集合。
进一步优选,所述步骤4)具体包括:
401)对样本家族的关联规则集合进行分解,根据标注区分为合法样本频繁行为模式库
Figure 110057DEST_PATH_IMAGE007
和恶意样本频繁行为模式库
Figure 744563DEST_PATH_IMAGE008
402)对恶意样本频繁行为模式库进行过滤,
Figure 860286DEST_PATH_IMAGE009
403)利用家族标注信息对最终生成的恶意样本频繁行为模式库
Figure 762383DEST_PATH_IMAGE010
进行区分,使得不同的恶意代码家族都具有相应的频繁行为模式库;
404)将频繁行为模式的结构化指令片段嵌入映射为可读的恶意行为模式描述,输出恶意样本沙箱的行为知识库。
本发明还提供一种基于频繁项集挖掘的沙箱知识库生成装置,包括:
样本标注单元,用于对样本进行分类,区分白样本以及多种同源恶意样本家族;
样本沙箱行为捕获单元,用于捕获样本的主机行为和网络行为,获取样本的API指令调用片段序列,利用样本指令嵌入算法生成样本指令片段嵌入向量集合;
频繁行为模式获取单元,获取样本指令片段嵌入向量集合,利用频繁项集挖掘算法、关联规则生成算法和频繁项集更新算法获取样本家族的关联规则集合;
恶意代码沙箱行为知识库生成单元,用于根据关联规则集合,生成恶意样本沙箱行为知识库;
恶意代码沙箱判定单元,用于使用沙箱知识库对样本的主机行为和网络行为进行判定,判为合法样本或恶意样本,以及恶意样本的家族类别。
优选地,所述样本标注单元,利用多AV投票机制标注样本的家族类别,生成家族聚类大簇;然后,利用基因图谱聚类算法对各个恶意样本家族大簇进行处理,生成聚类子簇;接下来,利用聚类质量评估算法进行聚类算法选择,进而过滤聚类质量较差的子簇;最后,输出标注后的样本集合;
所述样本沙箱行为捕获单元,将标注后的样本集合批量提交给沙箱,获取样本的行为文件集合,并写入消息队列模块;然后,从消息队列获取样本行为数据流,利用行为指令嵌入算法对指令片段进行处理,生成结构化指令嵌入数据,最后,样本的指令片段嵌入数据写入消息队列的结构化指令嵌入Topic。
进一步优选,所述频繁行为模式获取单元,利用过滤算法过滤执行失败样本的结构化指令片段嵌入;然后,利用频繁项集挖掘算法根据给定的最小支持度阈值对样本结构化指令片段嵌入数据集进行挖掘,获取频繁项集和相关支持度;接下来,利用关联规则生成算法对频繁项集及其支持度集合进行计算,生成可信度超过最小可信度阈值的关联规则集合;接下来利用频繁项集更新算法更新关联规则集合。
进一步优选,所述恶意代码沙箱行为知识库生成单元,利用过滤算法对恶意样本频繁行为模式库进行过滤;然后,利用家族标注信息对最终生成的恶意样本频繁行为模式库
Figure 305360DEST_PATH_IMAGE010
进行区分,使得不同的恶意代码家族都具有相应的频繁行为模式库;最后,将频繁行为模式的结构化指令片段嵌入映射为可读的恶意行为模式描述,输出恶意样本沙箱行为知识库;
所述恶意代码沙箱判定单元,对样本的的主机行为和网络行为进行判定,判为合法样本或恶意样本,以及恶意样本的家族类别。
与现有技术相比,本发明的优点在于:
本发明提供的一种基于频繁项集挖掘的沙箱知识库生成方法和装置,利用多AV扫描技术和基因图谱聚类技术对样本进行多尺度家族标注,并利用动态沙箱技术和样本指令嵌入算法生成样本的指令片段嵌入集合。然后,联合利用频繁项集挖掘算法、关联规则生成算法和频繁项集更新算法持续获取样本家族的关联规则集合。最后,利用样本的合法行为模式过滤恶意样本的频繁行为模式集合,并对不同的频繁行为模式进行恶意样本家族标注,通过嵌入向量映射获取可读的恶意行为模式描述,进而生成恶意样本沙箱的行为模式库。同时,本发明提出一套基于频繁项集挖掘的沙箱知识库生成框架,使得本发明具备以下优点:
1)对于样本进行同源标注,标注方法结合了多AV标注和文件基因聚类标注方法,使得生成的同源样本同时具备签名同源特性和二进制同源特性;
2)对于同源样本进行批量自动化分析,能够生成合法样本的行为模式集合、恶意样本的行为模式集合以及不同恶意样本家族的行为模式集合,极大的节约了人力分析成本;
3)自动生成沙箱知识库。提出利用行为指令嵌入算法提取样本行为的指令片段,利用特征行为嵌入算法完成指令片段嵌入过程,使得行为模式可以通过机器学习算法有效地访问。为了生成沙箱知识库,引入了频繁项集挖掘算法和关联规则生成算法对样本的指令片段嵌入数据集进行学习,并通过算法参数调整,例如支持度和可信度,使得沙箱的知识库能够在误报率和漏报率方面进行自适应;
4)根据样本积累情况,通过增量学习自动更新沙箱知识库。设计了一种频繁项集更新算法更新关联规则集合,进而实现自动更新沙箱知识库。这种增量学习算法显著减少了对全量数据集重新运行频繁项集挖掘和关联规则算法的运行时和内存开销,同时提高了对新型恶意样本的自动分析和准确识别能力;
5)本发明提供的基于沙箱集群和分布式数据流处理框架,可以大规模分析样本的行为数据,通过联合利用频繁项集挖掘、关联规则生成算法和频繁项集更新算法,极大提高了沙箱行为知识库的质量和生成效率。并且,通过使用高质量的沙箱行为知识库,允许沙箱自动识别具有类似行为的新型恶意样本,有效检测采用混淆和其他多态变形技术的APT样本。
本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书来实现和获得。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的基于频繁项集挖掘的沙箱知识库生成方法的沙箱原理示意图;
图2为本发明实施例提供的基于频繁项集挖掘的沙箱知识库生成方法的流程图;
图3为本发明实施例提供的基于频繁项集挖掘的沙箱知识库生成方法之样本同源标注流程图;
图4为本发明实施例提供的基于频繁项集挖掘的沙箱知识库生成方法之样本行为文件获取流程图;
图5为本发明实施例提供的基于频繁项集挖掘的沙箱知识库生成方法之样本行为关联规则生成流程图;
图6为本发明实施例提供的基于频繁项集挖掘的沙箱知识库生成方法之利用样本关联规则集合生成沙箱知识库流程图;
图7为本发明实施例提供的基于频繁项集挖掘的沙箱知识库生成装置结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
传统的基于签名的恶意样本检测技术是许多传统反病毒产品的基础。这些技术之所以成为首选,因为它们的检测率较高,而误报率相对较低。但基于签名的技术存在一个明显的缺点,难以抵御新的、未见的、多态的和变形的恶意样本。即便是用户定期更新特征数据库,也很有可能被攻击,威胁特征库里没有与样本相关的特征。为了解决基于签名方法存在的缺陷,在静态分析领域进行了许多基于启发式的研究工作。这些静态分析技术使用了无法轻易更改的可执行特征或基于距离的签名匹配方法,也有部分技术使用了诸如基于指令调用图签名和指令序列挖掘的方法。尽管在现有的防病毒系统和沙箱中通常会分析API调用,但本发明的工作率先使用了频繁项集挖掘技术分析恶意样本行为模式,并构建恶意样本沙箱知识库。
本申请实施例中,获取样本数据集,利用多AV扫描技术和基因图谱聚类技术对样本进行家族标注,区分白样本以及各种同源恶意样本家族;进一步的,获取标注后的白样本集合以及各种同源恶意代码家族,利用沙箱技术对样本的主机行为和网络行为进行监控,对生成的样本行为文件进行分布式预处理并提取指令片段,利用样本指令嵌入算法生成样本指令片段嵌入集合;接下来,获取样本指令嵌入向量集合,根据样本行为模式的定义,联合利用频繁项集挖掘、关联规则生成算法和频繁项集更新算法获取样本家族的关联规则集合;进而,对样本家族的关联规则集合进行分解,利用样本的合法行为模式过滤恶意样本的频繁行为模式集合,并对不同的频繁行为模式进行恶意样本家族标注,最后通过嵌入向量映射获取可读的恶意行为模式描述,进而生成恶意样本沙箱的行为模式库。本发明基于沙箱集群和分布式数据流处理框架,可以大规模分析样本的行为数据,通过联合利用频繁项集挖掘、关联规则生成算法和频繁项集更新算法,极大提高了沙箱行为知识库的质量和生成效率。并且,通过使用高质量的沙箱行为知识库,允许沙箱自动识别具有类似行为的新型恶意样本,有效检测采用混淆和其他多态变形技术的APT样本。
图1为本发明实施例提供的基于频繁项集挖掘的沙箱知识库生成方法的沙箱原理示意图,对于样本集合,基于沙箱的动态分析将文件样本视为黑匣子,在受控虚拟化环境中触发执行,并拦截和监控软件样本的所有系统API调用及其参数。受控虚拟化环境包括Windows虚拟机环境、Linux虚拟机环境、Android虚拟机环境和Mac OS虚拟机环境。
对于沙箱动态分析的拦截和监控过程实现,主要是通过内联函数挂钩拦截系统调用。该工具会无条件跳转到钩子函数,从而覆盖每个系统调用的过程。此功能首先将系统调用及其参数写入样本行为文件,然后继续执行拦截其他的系统调用操作,而所有这些监控对于调用者都是透明的。
样本行为模式与沙箱行为模式库比对,过程描述如下:首先,通过对系统调用拦截和监控生成的样本行为日志进行处理,生成样本行为模式序列。遍历样本行为模式序列,将每个行为模式与沙箱行为模式库进行比对,生成结果集合,包括合法样本、恶意样本及样本家族类别。对结果集合进行统计,输出样本分析结果评分,并根据评分将样本标注为黑样本&家族类别、白样本和灰样本。其中,白样本和灰样本通常被判定为合法样本:
行为模式示例描述如下:
1)恶意样本的创建文件行为。例如,创建文件命令“NtCreateFile”,对自身样本进行复制,并且释放了一个beep.sys的驱动;
2)恶意样本的修改注册表行为。例如,修改注册表命令“RegSetValueExA”,服务的键值指向了释放的exe程序路径;
3)恶意样本外联行为,发起C&C通信或恶意加密流量;
4)恶意样本反虚拟机行为,通过查询注册表项“HKEY_LOCAL_MACHINE\HARDWARE\DescriptionSystem\”以查找与常见虚拟机运行(如VMWare)相关联的值;
5)恶意代码为了对抗某些监控工具,往往不调用WIN32 API,而是直接调用底层的系统API命令。
下面结合附图和具体实施例进一步说明本发明实施例的技术方案。
图2是本发明实施例提供的基于频繁项集挖掘的沙箱知识库生成方法的流程图,包括以下步骤:
步骤S201:获取样本数据集,利用多AV扫描技术和基因图谱聚类技术对样本进行家族标注,区分白样本以及各种同源恶意样本家族,如图3所示;
进一步地,优选的是,提出多尺度恶意样本家族标注算法,利用多AV扫描技术和基因图谱聚类技术对样本进行多尺度家族标注,进而使得聚类簇同时具备特征检测技术的家族特性,也具备二进制变种遗传相似性的家族特性;
在具体实施过程中,包含以下步骤:
步骤S201-1,多阶段复合的恶意样本标注方法,首先获取样本数据库,利用多款杀毒软件(AntiVirus,AV)批量对样本进行扫描;
进一步地,优选的是,对于样本数据库,包含了黑样本、白样本和灰样本,并且原始样本数据库缺少样本标注信息;
进一步地,优选的是,区分黑样本、白样本和灰样本的算法要求至少包含3款杀毒软件;
进一步地,优选的是,对于杀毒软件扫描,建议采用批量扫描或分布式扫描,进而提高样本的处理能力。
步骤S201-2,对扫描结果进行分析,对于指定的样本,若
Figure 491661DEST_PATH_IMAGE001
,则判定为白样本。若
Figure 411076DEST_PATH_IMAGE002
,则判定为灰样本,过滤该样本。若
Figure 105362DEST_PATH_IMAGE003
,则判定为恶意样本,并利用多AV投票机制标注家族信息;
进一步地,优选的是,
Figure 819240DEST_PATH_IMAGE004
表示杀毒软件集合判定待分析样本为恶意样本的不重复个数;
进一步地,优选的是,灰样本被定义为“流氓软件”,是介于病毒和正规软件之间的软件,如恶意广告软件(Adware)、间谍软件(Spyware)、恶意共享软件(Maliciousshareware)等等,这些软件都处在合法商业软件和电脑病毒之间的灰色地带。它们既不属于正规商业软件,也不属于真正的病毒;既有一定的实用价值,也会给用户带来种种干扰;
进一步地,优选的是,例如选定主流TOP-20的杀毒软件作为杀毒软件集合,对样本库进行批量扫描。对扫描结果进行分析,对于指定的样本,若
Figure 926874DEST_PATH_IMAGE011
,则判定为白样本。若
Figure 322083DEST_PATH_IMAGE012
,则判定为灰样本,过滤该样本。若
Figure 434658DEST_PATH_IMAGE013
,则判定为恶意样本,并利用多AV投票机制标注家族信息;
步骤S201-3,对恶意样本集合进行分析,利用恶意样本家族信息生成家族聚类大簇;
进一步地,优选的是,该过程强调利用传统特征检测结果对样本进行标注,进而跟进标注结果将样本进行聚类,生成样本家族聚类大簇。
步骤S201-4,对于多AV标注的家族聚类大簇,进行恶意代码基因图谱聚类,生成聚类子簇;
进一步地,优选的是,为提高数据处理性能,恶意代码基因图谱生成过程定义为恶意代码映射成RGB图像过程,即使用RGB彩色图像对恶意代码进行表征;
进一步地,优选的是,恶意代码基因图谱生成过程描述如下:
1)对于给定的恶意代码可执行文件,即二进制文件,读取8 bit为一个无符号的整型(范围为0~255),固定的行宽为一个向量,整个文件最后生成一个二维数组。
2)此数组中每个元素的范围都是取值为[0,255] (0 表示黑色,255 表示白色),对于RGB通道图像,三个元素为一组,例如[0,21,231]表述RGB图像中的一个像素点;
3)过步骤2)的迭代映射,将此数组可视化为一个RGB彩色图像;
4)设RGB图像的宽度为
Figure 585016DEST_PATH_IMAGE014
、高度为h和样本文件大小为
Figure 914366DEST_PATH_IMAGE015
,对于给定的文件大小和图像宽度,则RGB图像的高度
Figure 175583DEST_PATH_IMAGE016
进一步地,优选的是,对RGB图像进行特征提取,构造文件基因图谱特征向量,可选用的图像特征提取算法例如GIST、SIFT、HOG等,但不局限于以上几种;
进一步地,优选的是,对于文件基因图谱特征向量集合进行聚类,可选用的聚类算法包括K-Means、Affinity propagation、Mean-shift、Spectral clustering、Wardhierarchical clustering、Agglomerative clustering、DBSCAN、OPTICS、Gaussianmixtures、Birch等,但不局限于以上几种。
步骤S201-5,利用聚类质量评估算法对聚类结果进行评估,进而选择最优的聚类算法,然后过滤聚类质量较差的子簇;
进一步地,优选的是,评估聚类质量有两个标准,内部质量评价指标和外部评价指标,内部质量评价指标可选用CH(Calinski-Harabasz)指标、轮廓系数(SilhouetteCoefficient)、DB指数(Davies-Bouldin Index)等算法。外部评价指标可选用RI(兰德系数)、ARI(调整兰德系数)、AMI(调整的互信息指数)、同质性,完整性和V-measure等算法。
步骤S201-6,利用多AV投票机制对于恶意样本子簇进行家族标注;
进一步地,优选的是,对于恶意样本聚类子簇,随机从中选择一个样本,利用该样本的多AV家族标注结果进行投票,进而根据投票结果对恶意样本聚类子簇进行家族命名;
进一步地,优选的是,若出现家族命名重复情况,则采用“原始家族名.”+8位随机数字。例如原始家族名为“UDS:DangerousObject.Multi.Generic”,新的家族名为“UDS:DangerousObject.Multi.Generic.24298912”。
步骤S201-7,输出标注后的恶意样本家族集合和白样本集合,统称为标注后的样本集合。
步骤S202:获取标注后的白样本集合以及各种同源恶意代码家族,利用沙箱技术对样本的主机行为和网络行为进行监控,对生成的样本行为文件进行分布式预处理并提取指令片段,利用样本指令嵌入算法生成样本指令片段嵌入集合,如图4所示;
在具体实施过程中,包含以下步骤:
步骤202-1,获取标注后的样本集合,批量提交给沙箱/沙箱集群,触发样本运行释放主机行为和网络行为,生成样本行为文件;
进一步地,优选的是,对于沙箱,每台沙箱可以设置并发运行的虚拟机个数为
Figure 142665DEST_PATH_IMAGE017
。对于沙箱集群,可以设置沙箱台数为
Figure 463925DEST_PATH_IMAGE018
。因此,在动态分析过程中,在某一个时间点,并发动态分析样本的数量为
Figure 280571DEST_PATH_IMAGE019
进一步地,优选的是,受控虚拟化环境包括Windows虚拟机环境、Linux虚拟机环境、Android虚拟机环境和Mac OS虚拟机环境;
进一步地,优选的是,受控虚拟化平台可以使用VirtualBox、KVM、VMwareWorkstation、XenServer等;
进一步地,优选的是,对于沙箱动态分析的拦截和监控过程实现,主要是通过内联函数挂钩拦截系统调用。该工具会无条件跳转到钩子函数,从而覆盖每个系统调用的过程。此功能首先将系统调用及其参数写入样本行为文件,然后继续执行拦截其他的系统调用操作,而所有这些监控对于调用者都是透明的;
进一步地,优选的是,运行每类样本,在捕获其与操作系统的交互之后,将虚拟机状态还原到以前的安全快照。当样本文件运行时,它将调用不同的功能模块,并且可以记录并评估该功能以确定可执行文件的行为。可以将跟踪日志预处理为所需的输入,以进行进一步分析。将这一系列API调用视为可执行行为,记录恶意样本的API调用。
进一步地,优选的是,钩子函数是计算机系统消息处理机制中的一个接口,程序可以在其中自定义函数并可以监控进程之间传输的消息。以Windows操作系统为例,可以使用WINAPIOverride32的API监视程序,该程序监视对Microsoft Windows API和内部函数的调用。首先,在目标进程中注入DLL,然后初始化DLL与WINAPIOverride32进程间的通信。注入DLL的作用是设置钩子,加载DLL和监视文件,以及在目标进程中进行函数调用。要执行函数调用的挂接,需要函数的地址。可以通过直接使用DLL名称执行LoadLibrary API调用或通过读取位于其标头中可执行文件的地址表直接找到地址来完成。要创建钩子,程序必须在指定的功能地址处修改初始汇编指令。例如,在某些版本的Windows XP上,User32.dll中MessageBoxA模块的GetProcAddress函数返回0x77d3add7地址。因此,要设置该钩子,WinAPIOverrideE32只需使用WriteProcessMemory API函数通过“调用OurHandlerAddr”来替换地址0x77d3add7的第一个字节。
步骤202-2,获取样本行为文件集合,至少包括样本Hash、家族标注、文件大小、文件类型以及主机行为和网络行为等,写入消息队列的样本行为文件Topic;
进一步地,优选的是,消息队列包括不同的数据通道,使用Topic进行区分。例如,以Kafka为例,典型的分布式消息队列,样本行为文件序列被写入到Kafka的样本行为文件Topic中;
进一步地,优选的是,对于样本的行为文件,其格式一般为文本或XML。这种格式适合人类分析师或一般统计数据的计算,不适合自动分析样本的行为模型。而且,文本表示的复杂性增加了样本行为文件的大小,对分析算法的运行时间产生了负面影响。为解决该问题并优化样本行为文件的处理,提出了行为指令嵌入算法,思路来源于处理器设计中使用的指令序列。
步骤202-3,利用分布式数据流处理组件,从消息队列的样本行为文件Topic读取相应的样本行为数据流;
步骤202-4,对样本行为数据流进行预处理,并利用行为指令嵌入算法对提取的指令片段进行处理,完成指令片段嵌入过程;
进一步地,优选的是,对样本行为数据流进行预处理,将样本受监控的行为转化为指令序列片段。其中,线程和进程的各个执行流顺序地附加到单个报告中。
进一步地,优选的是,行为指令嵌入算法描述如下:
1)嵌入指令结构包括三级,“CatOper|Arg1|Arg2|Others”。字段Cat表示编码系统调用的类别,字段Oper反映特定的系统调用,参数由ArgN表示为块;
2)对于每个系统指令,使用短数字标识符(例如,系统调用“修改注册表”的“ 0107”)对一个受监视的系统调用及其参数进行编码;
3)系统调用参数以块的形式排列在不同的级别,以不同的特异性反映行为;
4)可变长度参数(例如文件和互斥名称)由索引号表示,并使用全局映射表在原始内容和索引号之间进行转换。
进一步地,优选的是,指令的第一级对应于受监视系统调用的类别和名称。例如,“CatOper”的值为“ 01 07”对应于类别“注册表”(07),系统调用“修改文件”(01)。指令的其他级别包含不同的参数块,其中块的特异性从左到右增加。其目的是将嘈杂的、无模式的元素(例如进程和线程标识符)移至指令的末尾,而稳定的、有区别的模式(例如目录和互斥体名称)则保留在开头;
进一步地,优选的是,可以通过仅考虑特定级别的指令来调整行为模式的分析粒度。例如,若指令的一小部分有所不同,仅仅使用了随机文件名,甚至可能会发现共享类似行为的恶意软件。
进一步地,优选的是,沙箱的指令行为序列:
<move_filesrcfile="c:\kill.exe" dstfile="c:\windows\system32\kernel32.dll"
filetype="file" creationdistribution="CREATE_NEW" />
指令嵌入后:
03 05 | 01 000000 01|00006ce5|000066fc|00006b2c|002e6d6c|00006d5f|071c94bc
move_file|createflags|"exe"|"c:\"|"dll"|"c:\w..."|"kill"|"kernel"
步骤202-5,利用分布式数据流处理组件,将样本的指令片段嵌入数据写入消息队列的结构化指令嵌入Topic。
步骤S203,获取样本指令嵌入向量集合,根据样本行为模式的定义,联合利用频繁项集挖掘、关联规则生成算法和频繁项集更新算法获取样本家族的关联规则集合,如图5所示;
在具体实施过程中,包含以下步骤:
步骤203-1,通过删除满足对操作系统API调用少于指定阈值的样本,过滤执行失败样本的结构化指令片段嵌入;
进一步地,优选的是,对操作系统API调用少于指定阈值的样本被判定为沙箱执行失败的样本,这通常是由于无法识别的文件格式或缺少诸如DLL或OCX之类的库导致某些可执行文件的执行失败。
步骤203-2,定义行为模式相关集合,包括事务、项集、频繁项集、闭合频繁项集、关联规则等;
进一步地,优选的是,称
Figure 79900DEST_PATH_IMAGE020
为API调用指令项的集合,
Figure 167067DEST_PATH_IMAGE021
Figure 596911DEST_PATH_IMAGE022
为API指令事务数据集,事务
Figure 635274DEST_PATH_IMAGE023
Figure 238294DEST_PATH_IMAGE024
中若干API指令调用项组成。
进一步地,优选的是,设
Figure 881765DEST_PATH_IMAGE025
为由API指令调用项组成的一个集合,
Figure 279248DEST_PATH_IMAGE026
,称为项集。若
Figure 566092DEST_PATH_IMAGE027
,则
Figure 707223DEST_PATH_IMAGE025
称为K-项集;
进一步地,优选的是,项集
Figure 267518DEST_PATH_IMAGE025
的支持度定义为,
Figure 773585DEST_PATH_IMAGE028
。若项集
Figure 52120DEST_PATH_IMAGE025
的支持度
Figure 498407DEST_PATH_IMAGE029
,则称
Figure 913208DEST_PATH_IMAGE025
为频繁项集。其中,
Figure 918073DEST_PATH_IMAGE005
被称为最小支持度阈值;
进一步地,优选的是,若一个集合
Figure 418324DEST_PATH_IMAGE030
中的每一个元素都在集合
Figure 838941DEST_PATH_IMAGE031
中,且集合
Figure 875293DEST_PATH_IMAGE031
中可能包含
Figure 785480DEST_PATH_IMAGE030
中没有的元素,则集合
Figure 710711DEST_PATH_IMAGE031
就是
Figure 59652DEST_PATH_IMAGE030
的一个超集。
Figure 950510DEST_PATH_IMAGE031
Figure 297178DEST_PATH_IMAGE030
的超集,则
Figure 772022DEST_PATH_IMAGE030
Figure 534441DEST_PATH_IMAGE031
的真子集,反之亦然;
进一步地,优选的是,闭合频繁项集,是指一个项集
Figure 778341DEST_PATH_IMAGE032
,它的直接超集的支持度计数不等于它本身的支持度计数。如果闭项集同时是频繁的,也就是它的支持度大于等于最小支持度阈值
Figure 791515DEST_PATH_IMAGE005
,那它就称为闭频繁项集;
进一步地,优选的是,关联规则是反映一个事物与其他事物之间的相互依存性和关联性的。具体定义如下,关联规则是一个蕴含式
Figure 753655DEST_PATH_IMAGE033
,即由API调用项集
Figure 382082DEST_PATH_IMAGE032
可以推导出样本家族类别(合法样本、恶意样本及其家族类别)项集
Figure 480488DEST_PATH_IMAGE034
。其中
Figure 106642DEST_PATH_IMAGE032
Figure 57543DEST_PATH_IMAGE034
都是项集,
Figure 161765DEST_PATH_IMAGE032
称为规则的条件,也称为前项,
Figure 380257DEST_PATH_IMAGE034
称为规则结果,也称为后项。在恶意样本行为模式挖掘中,其行为关联规则表示在一次恶意样本运行过程中,如果出现项集
Figure 239628DEST_PATH_IMAGE032
,则项集
Figure 848464DEST_PATH_IMAGE034
也会按照一定的概率出现,即可以根据API调用项集判断样本的家族类别;
进一步地,优选的是,关联规则的支持度:对于关联规则
Figure 84273DEST_PATH_IMAGE033
,规则
Figure 298217DEST_PATH_IMAGE035
的支持度是API调用行为和样本家族信息中同时包含
Figure 689009DEST_PATH_IMAGE032
Figure 847458DEST_PATH_IMAGE034
的调用行为集合与所有调用行为之比,记为
Figure 293483DEST_PATH_IMAGE036
,其计算公式是
Figure 486567DEST_PATH_IMAGE037
。关联规则的支持度反映了X和Y 中所含的API调用事务以及恶意样本家族描述在全部事务中同时出现的频率。由于关联规则必须由频繁项集产生,所以关联规则的支持度其实就是频繁项集的支持度;
进一步地,优选的是,关联规则的置信度:对于关联规则
Figure 189206DEST_PATH_IMAGE033
,规则
Figure 975896DEST_PATH_IMAGE035
的置信度是指同时包含
Figure 146984DEST_PATH_IMAGE032
Figure 132257DEST_PATH_IMAGE034
的调用行为集合和样本家族信息与包含
Figure 504333DEST_PATH_IMAGE032
的调用行为集合之比,记为
Figure 575057DEST_PATH_IMAGE038
,其计算公式是
Figure 831726DEST_PATH_IMAGE039
。关联规则的置信度反映了当恶意样本运行中包含API调用项集X 时,恶意样本家族项集Y同时出现的概率。关联规则的支持度和置信度分别反映了,当前规则在整个行为模式库中的统计重要性和可靠程度;
进一步地,优选的是,关联规则的最小支持度记为
Figure 88483DEST_PATH_IMAGE040
,它用于衡量行为模式库中需要满足识别恶意样本家族能力的最低重要性,需要恶意样本分析专家指定。关联规则的最小置信度记为
Figure 569143DEST_PATH_IMAGE041
,它表示关联规则需要降低误报的情况下满足识别恶意样本家族能力的最低可靠性,需要恶意样本分析专家指定;
进一步地,优选的是,强关联规则,即沙箱知识库中的行为模式规则。若关联规则
Figure 64846DEST_PATH_IMAGE033
满足
Figure 843315DEST_PATH_IMAGE042
Figure 537602DEST_PATH_IMAGE043
,则称规则
Figure 752945DEST_PATH_IMAGE033
为强关联规则,可以被添加到沙箱知识库中。
步骤203-3,利用频繁项集挖掘算法对样本结构化指令片段嵌入数据集进行挖掘,根据给定的最小支持度阈值
Figure 1523DEST_PATH_IMAGE005
获取频繁项集和相关支持度;
进一步地,优选的是,频繁项集挖掘算法可以使用Apriori算法、FP-Growth算法、FP-Tree算法等,本发明不局限于频繁项集挖掘算法的使用;
步骤203-4,利用关联规则生成算法对频繁项集及其支持度集合进行计算,生成可信度超过最小可信度阈值的关联规则集合;
进一步地,优选的是,对于指令行为序列嵌入如下所示:
03 05 | 01 000000 01|00006ce5|000066fc|00006b2c|002e6d6c|00006d5f|071c94bc
move_file|createflags|"exe"|"c:\"|"dll"|"c:\w..."|"kill"|"kernel"
分解为03 05、03 05 | 01 000000 01、03 05 | 01 000000 01|00006ce5、03 05| 01 000000 01|00006ce5|000066fc、03 05 | 01 000000 01|00006ce5|000066fc|00006b2c等项集,标记为1、2、3、4、5,则
Figure 396733DEST_PATH_IMAGE044
。对于恶意样本家族
Figure 866897DEST_PATH_IMAGE034
,其行为序列X可以为
Figure 954939DEST_PATH_IMAGE045
进一步地,优选的是,
样本家族 API调用序列
Trojan.GenericKDZ.69545121 1 2 2 2 2 3 5 4 1 2 2
Win64:TrojanX-gen [Trj] 3 5 4 1 2 2 2 2 3
Legalfile 3 1 1 2 3 4 2 2 1
若最小支持度设定为66%,最小可信度设定为100%,则关联规则<3 5 4 1 2>为频繁闭项集,该关联规则将被选入恶意样本沙箱行为知识库;
进一步地,优选的是,样本行为包括文件行为、网络行为、进程行为和注册表行为等。对于文件行为包括,例如DeleteFile、FindClose、FindFirst、FindNext、GetSystemDirectory等;对于网络行为包括,例如Connect、WinHttpOpen、InternetOpen、InternetOpenUrl等;对于进程操作包括,例如CrateThread、CreateRemoteThread、LoadLibraryA、GetProcessAddress、WriteProcessMemory、SetWindowsHooksEx、IsDebuggerPresent、CheckRemoteDebuggerPresent等;对于注册表操作包括,例如RegOpenKey、RegQueryValueEx、SHDeleteValue、SHGetValue等。
步骤203-5,为持续提升检测能力,需要利用频繁项集更新算法更新关联规则集合,而无需对全量数据集重新运行频繁项集挖掘算法;
进一步地,优选的是,频繁项集更新算法描述如下:
1)最小支持度设定为
Figure 425234DEST_PATH_IMAGE046
,最小可信度设定为
Figure 420872DEST_PATH_IMAGE047
,关联规则集合为PreKB,输入为最新的API调用序列嵌入集合NewAPIDB;
2)步骤1:
1:
Figure 89751DEST_PATH_IMAGE048
2:
Figure 771530DEST_PATH_IMAGE049
3:
Figure 260280DEST_PATH_IMAGE050
4:
Figure 466134DEST_PATH_IMAGE051
3)步骤2:
5:
Figure 910891DEST_PATH_IMAGE052
6:
Figure 75156DEST_PATH_IMAGE053
7:
Figure 520043DEST_PATH_IMAGE054
8:
Figure 60746DEST_PATH_IMAGE055
9:
Figure 2420DEST_PATH_IMAGE056
10:
Figure 524537DEST_PATH_IMAGE057
11:
Figure 987879DEST_PATH_IMAGE058
步骤S204,对样本家族的关联规则集合进行分解,利用样本的合法行为模式过滤恶意样本的频繁行为模式集合,并对不同的频繁行为模式进行恶意样本家族标注,最后通过嵌入向量映射获取可读的恶意行为模式描述,进而生成恶意样本沙箱的行为模式库,如图6所示;
在具体实施过程中,包含以下步骤:
步骤S204-1,对样本家族的关联规则集合进行分解,根据标注区分为合法样本频繁行为模式库
Figure 535535DEST_PATH_IMAGE060
和恶意样本频繁行为模式库
Figure 33513DEST_PATH_IMAGE062
步骤S204-2,对恶意样本频繁行为模式库进行过滤,
Figure 601897DEST_PATH_IMAGE063
步骤S204-3,利用家族标注信息对最终生成的恶意样本频繁行为模式库
Figure 399475DEST_PATH_IMAGE010
进行区分,使得不同的恶意代码家族都具有相应的频繁行为模式库;
步骤S204-4,将频繁行为模式的结构化指令片段嵌入映射为可读的恶意行为模式描述,输出恶意样本沙箱行为知识库。
此外,与本发明方法实施例相对应,参考图7所示,还提供了一种基于频繁项集挖掘的沙箱知识库生成装置,包括:
S701:样本标注单元,用于对样本进行分类,区分样本以及各种同源恶意样本家族;
进一步地,优选的是,利用多AV模块标注样本的家族类别,生成家族聚类大簇;然后,利用基因图谱聚类模块对各个恶意样本家族大簇进行处理,生成聚类子簇;接下来,利用聚类质量评估模块进行聚类算法选择,进而过滤聚类质量较差的子簇。最后,输出标注后的样本集合;
S702:样本沙箱行为捕获单元,用于捕获样本的主机行为和网络行为,获取样本的API指令调用片段序列,利用样本指令嵌入模块生成样本指令片段嵌入集合;
进一步地,优选的是,将标注后的样本集合批量提交给沙箱模块,获取样本的行为文件集合,并写入消息队列模块;然后,从消息队列模块获取样本行为数据流,利用行为指令嵌入模块对指令片段进行处理,生成结构化指令嵌入数据。最后,样本的指令片段嵌入数据写入消息队列的结构化指令嵌入Topic;
S703:频繁行为模式获取单元,获取样本指令嵌入向量集合,利用频繁项集挖掘模块、关联规则生成模块和频繁项集更新模块获取样本家族的关联规则集合;
进一步地,优选的是,利用过滤模块过滤执行失败样本的结构化指令片段嵌入;然后,利用频繁项集挖掘模块根据给定的最小支持度阈值对样本结构化指令片段嵌入数据集进行挖掘,获取频繁项集和相关支持度;接下来,利用关联规则生成模块对频繁项集及其支持度集合进行计算,生成可信度超过最小可信度阈值的关联规则集合;接下来,为持续提升检测能力和处理效率,后续可以利用频繁项集更新模块更新关联规则集合;
S704:恶意代码沙箱行为知识库生成单元,用于根据关联规则集合,生成恶意样本沙箱行为知识库;
进一步地,优选的是,利用过滤模块对恶意样本频繁行为模式库进行过滤;然后,利用家族标注信息对最终生成的恶意样本频繁行为模式库FPS_Malware进行区分,使得不同的恶意代码家族都具有相应的频繁行为模式库;最后,利用映射模块将频繁行为模式的结构化指令片段嵌入映射为可读的恶意行为模式描述,输出恶意样本沙箱行为知识库;
S705:恶意代码沙箱判定单元,用于使用沙箱知识库对样本的主机行为和网络行为进行判定,判为合法样本或恶意样本,以及恶意样本的家族类别;
进一步地,优选的是,结合沙箱模块和行为知识库模块,对样本的的主机行为和网络行为进行判定,判为合法样本或恶意样本,以及恶意样本的家族类别。
综上所述,本发明涉及基于频繁项集挖掘的沙箱知识库生成方法和装置,本方法的核心是,利用多AV扫描技术和基因图谱聚类技术对样本进行多尺度家族标注,并利用动态沙箱技术和样本指令嵌入算法生成样本的指令片段嵌入集合。然后,联合利用频繁项集挖掘算法、关联规则生成算法和频繁项集更新算法持续获取样本家族的关联规则集合。最后,利用样本的合法行为模式过滤恶意样本的频繁行为模式集合,并对不同的频繁行为模式进行恶意样本家族标注,通过嵌入向量映射获取可读的恶意行为模式描述,进而生成恶意样本沙箱的行为模式库。同时,本发明提出一套基于频繁项集挖掘的沙箱知识库生成框架,使得本发明具备以下优点:
1、对于样本进行同源标注,标注方法结合了多AV标注和文件基因聚类标注方法,使得生成的同源样本同时具备签名同源特性和二进制同源特性;
2、对于同源样本进行批量自动化分析,能够生成合法样本的行为模式集合、恶意样本的行为模式集合以及不同恶意样本家族的行为模式集合,极大的节约了人力分析成本;
3、自动生成沙箱知识库。提出利用行为指令嵌入算法提取样本行为的指令片段,利用特征行为嵌入算法完成指令片段嵌入过程,使得行为模式可以通过机器学习算法有效地访问。为了生成沙箱知识库,引入了频繁项集挖掘算法和关联规则生成算法对样本的指令片段嵌入数据集进行学习,并通过算法参数调整,例如支持度和可信度,使得沙箱的知识库能够在误报率和漏报率方面进行自适应;
4、根据样本积累情况,通过增量学习自动更新沙箱知识库。设计了一种频繁项集更新算法更新关联规则集合,进而实现自动更新沙箱知识库。这种增量学习算法显著减少了对全量数据集重新运行频繁项集挖掘和关联规则算法的运行时和内存开销,同时提高了对新型恶意样本的自动分析和准确识别能力;
5、本发明提供的基于沙箱集群和分布式数据流处理框架,可以大规模分析样本的行为数据,通过联合利用频繁项集挖掘、关联规则生成算法和频繁项集更新算法,极大提高了沙箱行为知识库的质量和生成效率。并且,通过使用高质量的沙箱行为知识库,允许沙箱自动识别具有类似行为的新型恶意样本,有效检测采用混淆和其他多态变形技术的APT样本。
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,其均应涵盖在本发明的保护范围当中。

Claims (6)

1.一种基于频繁项集挖掘的沙箱知识库生成方法,其特征在于,包括如下步骤:
1)获取样本数据集,利用多AV扫描方法和基因图谱聚类方法对样本进行家族标注,区分白样本以及多种同源恶意样本家族,获得标注后的白样本集合和恶意样本集合,统称为标注后的样本集合;
2)获取标注后的样本集合,利用沙箱方法对白样本集合以及恶意样本集合的主机行为和网络行为进行监控,生成白样本行为文件和恶意样本行为文件,对生成的样本行为文件进行分布式预处理并提取样本指令片段,利用样本指令嵌入算法生成样本指令片段嵌入向量集合;
步骤2)具体包括:
201)获取标注后的样本集合,批量提交给沙箱/沙箱集群,触发样本运行释放主机行为和网络行为,生成样本行为文件;
202)获取样本行为文件集合,至少包括样本Hash、家族标注、文件大小、文件类型以及主机行为和网络行为,写入消息队列的样本行为文件Topic;
203)利用分布式数据流处理组件,从消息队列的样本行为文件Topic读取相应的样本行为数据流;
204)对样本行为数据流进行预处理,并利用行为指令嵌入算法对提取的指令片段进行处理,完成指令片段嵌入过程,生成样本的结构化指令片段嵌入数据流;
步骤204)具体包括:
2041)对样本行为数据流进行预处理,生成行为序列报告,至少包括系统调用及其参数;
2042)特征行为嵌入过程,对于行为序列报告,每个指令都使用短数字标识符对系统调用及其参数进行编码;
2043)将系统调用参数以块的形式排列到不同级别,以不同数据粒度反应样本行为;
2044)对于变长参数,采用索引号表示方式,并且使用全局映射表在序列报告原始内容和索引号之间进行变换;
2045)输出样本的结构化指令片段嵌入数据流;
行为指令嵌入算法描述如下:
a)嵌入指令结构包括三级,“CatOper|Arg1|Arg2|Others”,字段Cat表示编码系统调用的类别,字段Oper反映特定的系统调用,参数由ArgN表示为块;
b)对于每个系统指令,使用短数字标识符对一个受监视的系统调用及其参数进行编码;
c)系统调用参数以块的形式排列在不同的级别,以不同的特异性反映行为;
d)可变长度参数由索引号表示,并使用全局映射表在原始内容和索引号之间进行转换;
205)利用分布式数据流处理组件,将样本的结构化指令片段嵌入数据流写入消息队列的结构化指令嵌入Topic;
3)获取样本指令片段嵌入向量集合,根据样本行为模式的定义,联合利用频繁项集挖掘、关联规则生成算法和频繁项集更新算法获取白样本集合以及恶意样本集合的关联规则集合;
步骤3)具体包括:
301)通过删除满足对操作系统API调用少于指定阈值的样本,过滤执行失败样本的结构化指令片段嵌入;
302)定义行为模式相关集合,至少包括事务、项集、频繁项集、闭合频繁项集、关联规则;
303)利用频繁项集挖掘算法对样本指令片段嵌入向量集合进行挖掘,根据给定的最小支持度阈值获取频繁项集和相关支持度;
304)利用关联规则生成算法对频繁项集及其支持度集合进行计算,生成可信度超过最小可信度阈值的关联规则集合;
305)利用频繁项集更新算法更新关联规则集合;
4)对白样本集合以及恶意样本集合的关联规则集合进行分解,利用样本的合法行为模式过滤恶意样本的频繁行为模式集合,并对不同的频繁行为模式进行恶意样本家族标注,最后通过嵌入向量映射获取可读的恶意行为模式描述,进而生成恶意样本沙箱的行为知识库。
2.如权利要求1所述的一种基于频繁项集挖掘的沙箱知识库生成方法,其特征在于,所述步骤1)具体包括:
101)多阶段复合的恶意样本标注方法,首先获取样本数据集,利用多种杀毒软件批量对样本进行扫描;
102)对扫描结果进行分析,对于待分析样本,若
Figure DEST_PATH_IMAGE002
,则判定为白样本,若
Figure DEST_PATH_IMAGE004
,则判定为灰样本,过滤灰样本,若
Figure DEST_PATH_IMAGE006
,则判定为恶意样本,其中
Figure DEST_PATH_IMAGE008
表示多AV方法判定待分析样本为恶意样本的不重复个数,
Figure DEST_PATH_IMAGE010
Figure DEST_PATH_IMAGE012
为设定的判定阈值的下限和上限,利用多AV投票机制标注家族信息,获得恶意样本集合;
103)对恶意样本集合进行分析,利用恶意样本家族信息生成家族聚类大簇;
104)对于多AV投票机制标注的家族聚类大簇,进行恶意代码基因图谱聚类,生成聚类子簇;
105)利用聚类质量评估算法对聚类结果进行评估,进而选择最优的聚类算法,然后过滤聚类质量较差的聚类子簇;
106)利用多AV投票机制对于恶意样本聚类子簇进行家族标注;
107)输出标注后的白样本集合和恶意样本集合,统称为标注后的样本集合。
3.如权利要求1所述的一种基于频繁项集挖掘的沙箱知识库生成方法,其特征在于,所述步骤4)具体包括:
401)对样本家族的关联规则集合进行分解,根据标注区分为合法样本频繁行为模式库
Figure DEST_PATH_IMAGE014
和恶意样本频繁行为模式库
Figure DEST_PATH_IMAGE016
402)对恶意样本频繁行为模式库进行过滤,
Figure DEST_PATH_IMAGE018
,其中
Figure DEST_PATH_IMAGE020
表示过滤后最终生成的恶意样本频繁行为模式库;
403)利用家族标注信息对最终生成的恶意样本频繁行为模式库
Figure 116329DEST_PATH_IMAGE020
进行区分,使得不同的恶意代码家族都具有相应的频繁行为模式库;
404)将频繁行为模式的结构化指令片段嵌入映射为可读的恶意行为模式描述,输出恶意样本沙箱的行为知识库。
4.一种基于频繁项集挖掘的沙箱知识库生成装置,其特征在于,包括:
样本标注单元,用于对样本进行分类,区分白样本以及多种同源恶意样本家族;
样本沙箱行为捕获单元,用于捕获样本的主机行为和网络行为,获取样本的API指令调用片段序列,利用样本指令嵌入算法生成样本指令片段嵌入向量集合;
具体的,所述样本沙箱行为捕获单元将标注后的样本集合批量提交给沙箱,获取样本的行为文件集合,并写入消息队列模块;然后,从消息队列获取样本行为数据流,利用行为指令嵌入算法对指令片段进行处理,生成结构化指令嵌入数据,最后,样本的指令片段嵌入数据写入消息队列的结构化指令嵌入Topic;
行为指令嵌入算法描述如下:
a)嵌入指令结构包括三级,“CatOper|Arg1|Arg2|Others”,字段Cat表示编码系统调用的类别,字段Oper反映特定的系统调用,参数由ArgN表示为块;
b)对于每个系统指令,使用短数字标识符对一个受监视的系统调用及其参数进行编码;
c)系统调用参数以块的形式排列在不同的级别,以不同的特异性反映行为;
d)可变长度参数由索引号表示,并使用全局映射表在原始内容和索引号之间进行转换;
频繁行为模式获取单元,获取样本指令片段嵌入向量集合,利用频繁项集挖掘算法、关联规则生成算法和频繁项集更新算法获取样本家族的关联规则集合;
具体的,所述频繁行为模式获取单元,利用过滤算法过滤执行失败样本的结构化指令片段嵌入;然后,利用频繁项集挖掘算法根据给定的最小支持度阈值对样本结构化指令片段嵌入数据集进行挖掘,获取频繁项集和相关支持度;接下来,利用关联规则生成算法对频繁项集及其支持度集合进行计算,生成可信度超过最小可信度阈值的关联规则集合;接下来利用频繁项集更新算法更新关联规则集合;
恶意代码沙箱行为知识库生成单元,用于根据关联规则集合,生成恶意样本沙箱行为知识库;
恶意代码沙箱判定单元,用于使用沙箱知识库对样本的主机行为和网络行为进行判定,判为合法样本或恶意样本,以及恶意样本的家族类别。
5.如权利要求4所述的一种基于频繁项集挖掘的沙箱知识库生成装置,其特征在于:
所述样本标注单元,利用多AV投票机制标注样本的家族类别,生成家族聚类大簇;然后,利用基因图谱聚类算法对各个恶意样本家族大簇进行处理,生成聚类子簇;接下来,利用聚类质量评估算法进行聚类算法选择,进而过滤聚类质量较差的子簇;最后,输出标注后的样本集合。
6.根据权利要求4所述的一种基于频繁项集挖掘的沙箱知识库生成装置,其特征在于:
所述恶意代码沙箱行为知识库生成单元,利用过滤算法对恶意样本频繁行为模式库进行过滤;然后,利用家族标注信息对最终生成的恶意样本频繁行为模式库
Figure 580940DEST_PATH_IMAGE020
进行区分,使得不同的恶意代码家族都具有相应的频繁行为模式库;最后,将频繁行为模式的结构化指令片段嵌入映射为可读的恶意行为模式描述,输出恶意样本沙箱行为知识库;
所述恶意代码沙箱判定单元,对样本的主机行为和网络行为进行判定,判为合法样本或恶意样本,以及恶意样本的家族类别。
CN202011535297.3A 2020-12-23 2020-12-23 一种基于频繁项集挖掘的沙箱知识库生成方法和装置 Active CN112257062B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011535297.3A CN112257062B (zh) 2020-12-23 2020-12-23 一种基于频繁项集挖掘的沙箱知识库生成方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011535297.3A CN112257062B (zh) 2020-12-23 2020-12-23 一种基于频繁项集挖掘的沙箱知识库生成方法和装置

Publications (2)

Publication Number Publication Date
CN112257062A CN112257062A (zh) 2021-01-22
CN112257062B true CN112257062B (zh) 2021-04-16

Family

ID=74225393

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011535297.3A Active CN112257062B (zh) 2020-12-23 2020-12-23 一种基于频繁项集挖掘的沙箱知识库生成方法和装置

Country Status (1)

Country Link
CN (1) CN112257062B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112968870A (zh) * 2021-01-29 2021-06-15 国家计算机网络与信息安全管理中心 一种基于频繁项集的网络团伙发现方法
CN116108439B (zh) * 2023-04-12 2023-07-07 北京华云安信息技术有限公司 Apt软件家族识别方法、装置及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102360408A (zh) * 2011-09-28 2012-02-22 国家计算机网络与信息安全管理中心 恶意代码的检测方法及其系统
CN104866765A (zh) * 2015-06-03 2015-08-26 康绯 基于行为特征相似性的恶意代码同源性分析方法
CN105530265A (zh) * 2016-01-28 2016-04-27 李青山 一种基于频繁项集描述的移动互联网恶意应用检测方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106130809B (zh) * 2016-09-07 2019-06-25 东南大学 一种基于日志分析的IaaS云平台网络故障定位方法及系统
US10733149B2 (en) * 2017-05-18 2020-08-04 Nec Corporation Template based data reduction for security related information flow data
CN107392019A (zh) * 2017-07-05 2017-11-24 北京金睛云华科技有限公司 一种恶意代码家族的训练和检测方法及装置
CN107835201A (zh) * 2017-12-14 2018-03-23 华中师范大学 网络攻击检测方法及装置
CN108123939A (zh) * 2017-12-14 2018-06-05 华中师范大学 恶意行为实时检测方法及装置
CN108985361B (zh) * 2018-07-02 2021-06-18 北京金睛云华科技有限公司 一种基于深度学习的恶意流量检测实现方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102360408A (zh) * 2011-09-28 2012-02-22 国家计算机网络与信息安全管理中心 恶意代码的检测方法及其系统
CN104866765A (zh) * 2015-06-03 2015-08-26 康绯 基于行为特征相似性的恶意代码同源性分析方法
CN105530265A (zh) * 2016-01-28 2016-04-27 李青山 一种基于频繁项集描述的移动互联网恶意应用检测方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Incremental Algorithm for Association Rule Mining under Dynamic Threshold;Iyad Aqra 等;《Applied Sciences》;20191210;第9卷(第24期);第1-22页 *
基于有向项集图的关联规则挖掘算法研究与应用;温磊;《中国优秀博士学位论文全文数据库 信息科技辑(月刊)》;20041215(第04期);第I138-30页 *
基于权限频繁模式挖掘算法的Android恶意应用检测方法;杨欢 等;《通信学报》;20130825;第34卷(第Z1期);第106-115页 *

Also Published As

Publication number Publication date
CN112257062A (zh) 2021-01-22

Similar Documents

Publication Publication Date Title
CN107908963B (zh) 一种自动化检测恶意代码核心特征的方法
Venkatraman et al. A hybrid deep learning image-based analysis for effective malware detection
Raff et al. Malware detection by eating a whole exe
Pektaş et al. Classification of malware families based on runtime behaviors
Kumar et al. DTMIC: Deep transfer learning for malware image classification
CN109829306B (zh) 一种优化特征提取的恶意软件分类方法
Nguyen et al. Auto-detection of sophisticated malware using lazy-binding control flow graph and deep learning
Galal et al. Behavior-based features model for malware detection
Ficco Malware analysis by combining multiple detectors and observation windows
Bayer et al. Scalable, behavior-based malware clustering.
US9021589B2 (en) Integrating multiple data sources for malware classification
Zakeri et al. A static heuristic approach to detecting malware targets
CN112257062B (zh) 一种基于频繁项集挖掘的沙箱知识库生成方法和装置
CN110362995B (zh) 一种基于逆向与机器学习的恶意软件检测及分析系统
Wang et al. TKRD: Trusted kernel rootkit detection for cybersecurity of VMs based on machine learning and memory forensic analysis
Falana et al. Mal-Detect: An intelligent visualization approach for malware detection
US20210334371A1 (en) Malicious File Detection Technology Based on Random Forest Algorithm
Elkhawas et al. Malware detection using opcode trigram sequence with SVM
Zhang et al. Based on multi-features and clustering ensemble method for automatic malware categorization
CN113935033A (zh) 特征融合的恶意代码家族分类方法、装置和存储介质
US20230254326A1 (en) System and Method for Information Gain for Malware Detection
Gibert et al. Orthrus: A bimodal learning architecture for malware classification
Sun et al. Learning fast and slow: Propedeutica for real-time malware detection
Park et al. Antibot: Clustering common semantic patterns for bot detection
Naeem et al. Development of a deep stacked ensemble with process based volatile memory forensics for platform independent malware detection and classification

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