一种命令和控制通信检测方法及系统与流程

文档序号:18737959发布日期:2019-09-21 01:25阅读:215来源:国知局
一种命令和控制通信检测方法及系统与流程

本申请涉及计算机网络安全领域和人工智能领域,尤其涉及一种命令和控制(C&C)通信检测方法及系统。



背景技术:

随着互联网应用的快速发展,其中承载的黑色利益链条越来越大,攻击形式也纷繁多样且不断创新,网络攻击的检测难度不断增大。其中,僵尸网络已经成为变化形式最快、设计范围最广、直接危害最为严重的网络威胁之一。

域名系统(Domain Name System,DNS)作为互联网通信的基础服务,其核心能力是将易于人为理解的域名转义成机器可以识别的IP地址。由于DNS协议是网络中普遍使用的协议,攻击者通常使用DNS协议作为命令控制(Command and Control,C&C)通信和数据泄露的工具,即利用域名生成算法(Domain generation algorithm,DGA)生成的DGA域名进行C&C通信,以及利用DNS隐蔽隧道窃取用户数据。具体的,攻击者通过大量注册恶意域名用于部署僵尸网络和木马程序,以僵尸网络为例,其可以利用DGA技术将真假域名进行混淆访问,掩藏真实主机的IP地址以躲避检测,大大规避了检测系统的检测能力。

在C&C通信检测领域,存在攻击形式纷繁、攻击手段不断改进、且检测难度不断增大等现象,目前,还没有形成一个较为成熟的通信检测方式。因此,亟待提出一种应对DGA技术的检测方式。



技术实现要素:

本申请提供一种C&C通信检测方法及系统,能够构造DGA智能检测模型,提高DGA域名检测精度和检测效率。

为达到上述目的,本申请采用如下技术方案:

第一方面,本申请提供一种C&C通信检测方法,该方法可以包括:

构造黑白域名样本的训练数据集;根据训练数据集,利用多种特征提取算法构造不同类别的特征向量文件;利用不同类别的特征向量文件对

DGA基分类器进行训练;利用训练后的DGA基分类器和集成策略构建DGA智能检测模型;构建并训练强化学习模型,利用强化学习模型强化DGA智能检测模型的检测能力;利用DGA智能检测模型和关联分析算法,识别目标对象。

第二方面,本申请提供一种C&C通信检测系统,该系统包括:样本获取模块,用于获取DGA域名数据集和合法域名数据集,并对数据集进行预处理,进而构造黑白域名样本的训练数据集。特征提取模块,用于根据训练数据集,利用多种特征提取算法构造不同类别的特征向量文件。训练模块,利用不同类别的特征向量文件对DGA基分类器进行训练。构建模块,用于利用训练后的DGA基分类器和集成策略构建DGA智能检测模型。强化学习模块,用于构建强化学习模型,并利用强化学习模型强化DGA智能检测模型的检测能力。检测模块,用于利用DGA智能检测模型和关联分析算法,识别目标对象。

第三方面,本申请提供一种C&C通信检测系统,该系统包括:强化学习服务器,用于利用强化学习技术自动持续构造和输出免杀训练数据集,进而迭代训练DGA智能检测模型,强化DGA智能检测模型的检测能力。样本服务器,用于构造黑白域名样本的训练数据集。监督学习服务器,用于利用样本服务器获取的特征向量文件,训练基分类器并进行选择。同时,基于选取的基分类器,利用集成学习技术构建DGA智能检测模型。DGA智能检测模型服务器,用于获取流量分析服务器输出的数据,并对DGA域名的特征向量进行预测,判断是否为DGA域名。若为DGA域名,则利用DGA智能检测模型服务器中的关联引擎组件对域名的检测结果进行关联分析,进而识别受控主机、僵尸网络家族和僵尸网络控制服务器并输出检测结果,完成C&C通信检测过程。流量分析服务器,用于实时分析网络流量,输出待检测数据对应的五元组信息、DGA域名、查询结果、DGA域名特征向量等信息。

第四方面,本申请提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当计算机执行该指令时,该计算机执行上述第一方面及其各种可选的实现方式中任意之一所述的C&C通信检测方法。

本申请提供的C&C通信检测方法及系统。构造黑白域名样本的训练数据集;根据训练数据集,利用多种特征提取算法构造不同类别的特征向量文件;利用不同类别的特征向量文件对DGA基分类器进行训练;利用训练后的DGA基分类器和集成策略构建DGA智能检测模型;构建并训练强化学习模型,利用强化学习模型强化DGA智能检测模型的检测能力;利用DGA智能检测模型识别受控主机、僵尸网络家族和僵尸网络控制服务器。相对于现有技术中,对C&C通信检测的研究较为薄弱,不能应对DGA技术造成的连续、复杂的网络状态。本申请实施例提供的通信检测方法,能够通过建立DGA智能检测模型在C&C通信检测领域提高DGA域名检测精度和检测效率,降低误报和漏报。

附图说明

图1为本申请实施例提供的C&C通信检测方法示意图一;

图2为本申请实施例提供的C&C通信检测方法示意图二;

图3为本申请实施例提供的C&C通信检测方法示意图三;

图4为本申请实施例提供的C&C通信检测方法示意图四;

图5为本申请实施例提供的基于复合金字塔模型的集成策略示意图;

图6为本申请实施例提供的C&C通信检测方法示意图五;

图7为本申请实施例提供的C&C通信检测方法示意图六;

图8为本申请实施例提供的构建强化学习模型的示意图;

图9为本申请实施例提供的C&C通信检测方法示意图七;

图10为本申请实施例提供的DGA智能检测模型检测过程的示意图;

图11为本申请实施例提供的C&C通信检测系统的结构示意图一;

图12为本申请实施例提供的C&C通信检测系统的结构示意图二。

具体实施方式

下面结合附图对本申请实施例提供的C&C通信检测方法及系统进行详细地描述。

在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。

此外,本申请的描述中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括其他没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。

需要说明的是,本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。

在本申请的描述中,除非另有说明,“多个”的含义是指两个或两个以上。

本申请实施例提供一种C&C通信检测方法,如图1所示,该方法可以包括S101-S106:

S101、构造黑白域名样本的训练数据集。

作为一种可能的实现方式,如图2所示,S101可以实现为如下步骤S1011至S1013:

S1011、获取黑域名样本数据集。

其中,黑域名指的是DGA域名。

作为一种可能的实现方式,参见图2,利用爬虫直接获取公开的DGA样本。

可选的,直接获取DGA域名构成第一DGA域名数据集。示例性的,从DGA域名提供网站,例如OSINT、360、bambenekconsulting、DGArchive、Github等站点,分别获取大规模的不同僵尸网络家族使用的DGA域名列表,并进行域名标准化和去重处理后作为黑域名样本数据集。

或者,获取公开的DGA作为第一DGA。示例性的,从开源社区获取开源的DGA,例如andrewaeva、baderj等人提供的DGA。

作为一种可能的实现方式,参见图2,使用恶意代码逆向分析(逆向工程)技术,分析各个僵尸网络恶意代码对应的C&C通讯机制,进而分析出不同C&C通讯机制分别对应DGA。之后,利用DGA,生成不同僵尸网络家族的DGA域名,作为第二DGA。

根据上述第一DGA和/或第二DGA生成第二DGA域名数据集。

作为一种可能的实现方式,仍参见图2,使用动态分析技术根据恶意代码运行产生的网络流量获取DGA域名构成第三DGA域名数据集。作为一种可能的实现方式,对于难以逆向的僵尸网络的恶意代码样本,例如被加壳、加密、混淆等的恶意代码样本,使用例如沙箱、蜜罐等动态分析技术,使得恶意代码在虚拟可控环境中激活并进行沙箱DNS流量捕获,进而获取用于C&C通讯的DGA域名。基于DNS流量捕获的结果,获取DGA域名的详细流程可参见现有技术,这里不再赘述。示例性的,若某一域名的DNS访问流量大于预设的流量阈值时,可判断该域名为DGA域名。

将上述第一DGA域名数据集、第二DGA域名数据集和第三DGA域名数据集中的一个或多个域名数据集构成DGA域名数据集即黑域名样本数据集。

S1012、获取白域名样本数据集。

其中,白域名为合法域名。

作为一种可能的实现方式,参见图2,可以利用网络爬虫技术,从权威合法域名提供网站,例如Alex、Majestic、Statvoo等站点,分别获取1M合法域名,并进行域名标准化和去重处理后。进而,利用获取的合法域名数据集构建白域名样本数据集。

S1013、构造黑白域名样本的训练数据集。

将上述提及的黑域名样本数据集和白域名样本数据集作为黑白域名样本的原始训练数据集。

作为一种可能的实现方式,对该原始训练数据集进行预处理,包括过滤重复域名样本、删除异常样本等。利用威胁情报对预处理后的训练数据集进行去噪音,即使用威胁情报白名单对DGA域名进行过滤,使用威胁情报黑名单对合法域名进行过滤。最终,获得最终的黑白域名样本的训练数据集。

S102、利用多种特征提取算法构造不同类别的特征向量文件。

其中,可以对上述黑白域名样本的训练数据集进行数据清洗。具体的,例如域名规范化、去重、家族标注(即DGA域名可能归属于哪一僵尸网络家族)等,以便于提高数据集质量。之后,利用多种特征提取算法,从多类特征维度提取特征,构造不同类别的特征向量。这里,以特征提取算法来区分特征向量的类别(或类型)。比如,采用A特征提取算法得到的特征向量属于类别1,采用B特征提取算法得到的特征向量属于类别2。

最后,对不同类别的特征向量分别进行量化编码处理,并存储为其类别对应的特征向量文件。即A类别特征向量存储为A类别特征向量文件,B类别特征向量存储为B类别的特征向量文件。

需要说明的是,为了后续训练不同的DGA基分类器,本步骤需要根据不同的DGA基分类器需要的输入数据,构造不同类别的特征向量文件,进而需使用不同类别的特征提取算法,本申请实施例对使用的特征提取算法不做具体限定。

示例性的,使用的特征提取算法为N-Gram特征、统计特征、语言特征、语义特性中的两个或多个的组合,具体的:

N-Gram特征:域名实际上是一个字符串,使用N-Gram算法建模,例如2-Gram,把域名“weibo.com”进行建模,获得词汇向量,[‘we’,‘ei’,‘ib’,‘bo’,‘oc’,‘co’,‘om’],然后使用CountVectorizer函数进行量化生成2-Gram特征向量。而且,基于N-Gram特征进行扩展,可以衍生出N-Gram特征频度分布的信息熵等特征。

统计特征:对域名进行统计分析并提取统计特征,包括域名长度、子域名格式、子域名长度均值、是否有“www”前缀、是否有合法的顶级域名(Top level domain,TLD)、是否包含单个字符的子域名、是否包含TLD作为子域名、数字子域名的比例、16进制子域名的比例、唯一字母个数、唯一数字个数、是否包含IP地址等。

语言特征:正常域名在语言特征上会存在一定的规律,通过语言特征能够区分正常域名和DGA域名。语言特征包括元音字母的比例、是否包含数字、数字比例、重复字符的比例、不重复字符的个数、连续辅音字母的比例、连续数字的比例等。

语义特性:正常域名通常是具备上下文语义特性的。域名申请者通常会根据公司、政府、机构、个人、组织等实体的经营内容和网站承载内容对域名进行命名,即域名是由专业领域单词或短语进行描述的。而DGA域名由于其随机特性,即使高级DGA域名,也缺乏在语义特征方面的特性。借助自然语言领域的word切割技术从语义层面统计单词特征,可以提高DGA域名识别的准确性,但需要依赖庞大的语料库支持,例如牛津字典和维基百科字典共有52万个词头,且一个单词还可能拥有多种时态和复数形式。

S103、利用不同类别的特征向量文件对DGA基分类器进行训练。

使用不同类别的特征向量文件和不同的监督学习算法参数分别训练多个DGA基分类器,并对多个DGA基分类器分别进行交叉验证。监督学习算法例如可以为支持向量机(Support Vector Machine,SVM)、随机森林、长短期记忆网络(Long Short-Term Memory,LSTM)、卷积神经元网络(Convolutional Neural Networks,CNN)等。

作为一种可能的实现方式,如图3所示,S103可以实现为如下步骤S1031至S1034:

从上述多个不同类别的特征向量文件中选取一个特征向量文件并执行S1031、S1032、S1033(可选的):

S1031、获取该特征向量文件包括的一个或多个特征向量。

其中,某一类别的特征向量文件中包括一个或多个该类别的特征向量。

S1032、使用一个或多个特征向量和多种不同的监督学习算法分别训练不同的DGA基分类器。

以监督学习算法为SVM和随机森林算法为例,针对某一类别的特征向量,可以使用不同类别监督学习算法分别训练不同的DGA基分类器,比如,使用该类别的特征向量和SVM训练DGA基分类器1,使用该类别的特征向量和随机森林算法训练DGA基分类器2。也就是说,该类别的特征向量与两个监督学习算法,SVM和随机森林算法均具有对应关系。

如此,每一类别的特征向量文件均对应一个或多个基于不同监督学习算法的DGA基分类器。即同一类别的训练数据可以用于训练不同的DGA基分类器。

在本申请实施例中,为了提升DGA基分类器的能力,可以对不同的DGA基分类器分别进行交叉验证,以得到性能较优的DGA基分类器。

作为一种可能的实现方式,还可以获取并输出DGA基分类器的训练结果。具体的,获取并输出DGA基分类器的训练结果可实现为如下步骤S1033和S1034:

(可选的)S1033、通过DGA基分类器选择策略从上述多种不同的监督学习算法选择S个最优的监督学习算法。

其中,可以基于DGA基分类器的选择策略选取S个最优的监督学习算法,选择策略需同时考虑准确性和多样性。其中,准确性和多样性的定义如下:

1)准确性(accuracy):DGA基分类器要能对最终的输出有所帮助,

准确性至少要高于随机猜测。

2)多样性(diversity):DGA基分类器间需要有所不同,长处和短处各异,同质化(高度相关)的DGA基分类器无法互补。

本申请实施例中,可选的,选取准确性和多样性均较高的DGA基分类器对应的监督学习算法,即选取所谓“好而不同”的基分类器,“好”描述的是DGA基分类器的准确性,“不同”描述的是DGA基分类器的多样性。在某些场景中,在同时提高准确性和多样性的过程中,达到一定程度后,提高准确性会影响多样性,反之亦然。因此,需要根据业务情况对准确性与多样性进行取舍,即保证较高准确性,或保证较高多样性,得到较优的DGA基分类器。以便于后续基于较优的DGA基分类器对应的监督学习算法得到较优的DGA检测模型。

在得到某一类别特征向量文件对应的S个最优监督学习算法后,更换特征向量文件,并针对更换后的特征向量文件,重复上述步骤S1031-S1033。如此,可以获取针对不同类别特征向量文件的M个最优的监督学习算法。其中,M为不同类别的特征向量文件对应的最终每一次通过DGA基分类器选择策略选择的S个最优的监督学习算法的和。比如,类别1的特征向量文件对应a个最优监督学习算法,类别2的特征向量文件对应b个最优监督学习算法,则M=a+b。

(可选的)S1034、输出M个最优的监督学习算法对应的信息。

M个监督学习算法对应的信息包括如下任一项或多项的组合:M个监督学习算法对应的特征向量类别、选取的监督学习算法集合、通过DGA基分类器选择策略选取的DGA基分类器对应的交叉验证结果等信息。

M个监督学习算法对应的信息可以用于下一次更新DGA智能检测模型。

S104、利用训练后的DGA基分类器和集成策略构建DGA智能检测模型。

对于不同类别的特征向量,不同DGA基分类器的泛化能力差异性较大。如果DGA基分类器之间存在独立且互补的特性,那么正确融合多个DGA基分类器就可以得到一个更优的模型。基于此,在S103的基础上利用集成策略就可以融合多个DGA基分类器构建更优的模型即DGA智能检测模型。

作为一种可能的实现方式,如图4所示,利用集成学习技术构建DGA智能检测模型,以DGA智能检测模型提高检测精度。上述S104可以实现为如下步骤S1041至S1043:

S1041、根据预设集成策略对获取的多个DGA基分类器进行组合,基于组合后的DGA基分类器训练不同的高层DGA分类器。

具体的,可以根据DGA智能检测模型的业务需求情况,制定集成策略。根据集成策略,对DGA基分类器进行组合并训练不同的高层DGA分类器。

作为一种可能的实现方式,集成策略过程如下:

训练数据集X∈Rn×d,其中,R为预设的数据集,X中的数据可以从R中选取,X包括n个域名样本,每个域名样本有d维特征。基于上述训练数据集合,利用选取的DGA基分类器进行DGA基分类器融合集合,示例性的,DGA基分类器融合策略如下:

策略1:选用不同类型的DGA基分类器。比如逻辑回归、k近邻、SVM、随机森林、LSTM、CNN等,在整个训练数据集X上进行训练。此时DGA基分类器的多样性取决于DGA基分类器对于数据不同的表达能力,即逻辑回归、k近邻、支持向量机之间的不同,对于数据的假设、表示和提取能力均存在差异。

策略2:选用同类型的DGA基分类器,使用不同的参数。比如对k近邻使用不同的k值,在整个训练数据集X上进行训练。此时DGA基分类器的多样性取决于不同超参数在同一DGA基分类器上的差异。基于某个角度,也可以理解为不同类型的DGA基分类器。这种情况下,参数间的差异所带来的区别远小于DGA基分类器间的差异。例如,k=1可能和k=3的差别不大,因为同一DGA基分类器对于数据的假设是一样的。

策略3:选用相同的DGA基分类器,在不同的训练数据集上进行训练。比如先把X分成m份DGA域名样本(可能存在重复),其中,m为大于1的自然数,之后,在m个DGA域名样本上单独训练DGA基分类器。此时的差异性来源于数据的差异性。如果X为小样本利用采样sampling划分出m份子样本,那么子样本就会高度重复,降低多样性。但如果为降低重复率,增大m,则会造成每个子样本都很小,使得DGA基分类器无法学到数据,降低准确率。

策略4:选用相同的DGA基分类器,在不同类别特征向量上进行训练。训练数据集包含P类不同的特征向量,我们可以构造P个DGA基分类器进行训练。此时的多样性来源于数据的差异性,在不同的假设空间上,DGA基分类器有不同的泛化误差,最终融合可以得到互补的效果。

策略5:使用多个集成DGA基分类器,通过投票方式获得最优结果。在不同类别特征向量上进行DGA基分类器的训练,然后根据集成策略训练不同的高层集成分类器,最后选择投票策略完成多个高层集成分类器的融合。

进一步的还可以将上述DGA基分类器融合策略进行组合使用,比如:策略1和策略3组合、策略1和策略4组合、策略3和策略4组合等。DGA基分类器融合策略有多种组合方式,要尽量保持“准确性”和“多样性”间的平衡。此外,DGA基分类器融合策略不限于上述5种,本申请实施例对使用的DGA基分类器融合策略及组合方式不做具体限定。

作为另一种可能的实现方式,如图5所示,提出基于复合金字塔模型的集成策略。

在DGA域名检测领域,需要对大规模DNS流量进行实时检测,故对于DGA基分类器融合的效率会有较高的要求。因此,DGA基分类器融合需要兼顾检测效率和精度,故提出基于复合金字塔模型的集成策略。

如图5所示,从复合金字塔模型底层塔基到顶层塔尖包含4层,分别为数据层、特征提取层、模型融合层和决策层。其中,数据层主要功能为获取训练数据集合;特征提取层主要功能为特征工程,利用多种特征提取算法处理训练数据集,以获取特征向量集合;模型融合层,包含多个处理效率较高的监督学习模型(或集成学习模型),利用融合策略(集成策略)进行集成学习和检测;决策层,包含一个或多个处理效率较低的监督学习模型(或集成学习模型),利用融合策略进行集成学习和检测。在检测过程中,大量的合法域名样本被高效的模型融合层处理过滤,少量疑似的DGA域名样本将被送到效率相对较低的决策层进行最终判断。通过复合金字塔模型的策略设计,在一定程度上使得DGA基分类器融合兼顾检测效率和精度的要求。

S1042、对不同的高层DGA分类器进行交叉验证。

为了提升预测模型的实际应用中的准确度,可以对不同的高层DGA分类器分别进行交叉验证,以得到性能较优的高层DGA分类器。

S1043、基于交叉验证结果生成DGA智能检测模型。

不同的集成策略效果差异较大,需要根据高层DGA分类器的交叉验证结果和DGA模型泛化能力综合考虑,平衡交叉验证结果和泛化能力对模型的性能的影响,进而选择较优的高层DGA模型(即由DGA基分类器融合得到的模型),并将该高层DGA模型作为最终的DGA智能检测模型。

S105、构建并训练强化学习模型,利用强化学习模型强化上述DGA智能检测模型的检测能力。

现有技术中,恶意代码在进行C&C通信时,经常要面对的就是绕过问题。传统技术中,黑客会将IP或者域名内置到恶意代码中,内置的IP或者域名通常指向黑客的当前控制服务器,进而实现恶意代码和控制服务器之间的C&C通信。如果恶意代码被捕获并且被逆向,指定的IP和域名将会被封杀,也就是,无法通过被封杀的IP或域名连接到黑客的当前控制服务器,这可能导致黑客的整个控制网络失效。DGA技术的出现使得黑客通过不断变换的DGA域名绕过封杀,即变换后的域名仍能保证恶意代码访问到黑客的控制服务器,进而保证整个僵尸网络的稳定性。具体的,恶意代码定期使用DGA生成随机DGA域名,并利用随机DGA域名尝试连接C&C通信控制服务器。如果一个生成的DGA域名无法连接到控制服务器,便生成下一个随机DGA域名进行连接尝试。这种情况下,即使控制服务器的IP地址发生变化,或一个控制服务器域名被封杀,一定时间后恶意代码仍能连接到C&C控制服务器继续工作。

在本申请实施例中,利用强化学习技术,模拟黑客通过DGA技术绕过检测的流程,进而利用存在的DGA域名样本和合法域名样本自动持续生成能够绕过DGA智能检测模型的免杀DGA域名样本,构造免杀DGA域名样本训练数据集,并利用该数据集迭代训练新的DGA智能检测模型。从而,通过DGA智能检测模型的持续(迭代)构建,不断提升DGA智能检测模型的检测能力。

强化学习模型包括智体(Agent)、环境(Environment)、动作(Action)、状态(Status)和奖励(Reward)。

1)智体(Agent):智体是整个强化学习系统核心。它能够感知环境的状态,并且根据环境提供的奖励信号,通过学习选择一个合适的动作,来最大化长期的奖励值。简而言之,智体就是根据环境提供的奖励作为反馈,学习一系列的环境状态到动作的映射。动作选择的原则是最大化未来累积的奖励概率。选择的动作不仅影响当前时刻的奖励,还会影响下一时刻甚至未来的奖励。因此,智体在学习过程中的基本规则是:如果某个动作带来了环境的正回报,那么这一动作会被加强,反之则会逐渐削弱。本申请实施例中的智体是用来学习DGA智能检测模型,提取DGA域名样本的特征向量,并将该特征向量输入DGA智能检测模型,以获取DGA智能检测模型的检测结果,该检测结果用于表明检测到该特征向量对应的域名是否为DGA域名。

在强化学习算法的实现环节,强化学习算法可以包括单智体强化学习算法和多智体强化学习算法。示例性的,本申请实施例以多智体强化学习算法说明强化学习原理。可以理解的是,也可以使用其它强化学习算法实现强化学习过程,本申请实施例对使用何种强化学习算法不做具体限定。

2)环境(Environment):环境会接收智体执行的一系列的动作,并且对这一系列的动作的好坏进行评价,并转换成一种可量化的奖励反馈给智体。环境不会告诉智体应该如何去学习动作,所以智体只能靠自己的过去经历去学习。同时,环境还向智体提供它所处的状态信息。本申请实施例中的环境特指DGA智能检测环境,为快速实现DGA智能检测环境,可以使用OpenAI Gym,并定义加载训练样本函数、定义动作转换表函数、定义动作执行函数、环境重置函数等;

3)动作(Action):在强化学习领域,动作可以是连续的也可以是离散的。本申请实施例中的动作是指来自绕过DGA智能检测模型的动作的列表,例如基于随机域名生成算法、基于词典(英文、拼音等)的域名生成算法、合法域名变形算法等中的任一种或几种生成的动作列表。动作空间的大小与动作的个数有关,可根据实际情况进行扩展。此外,本申请实施例对使用的动作个数及其组合方式不做具体限定。

4)状态(State):强化学习状态是指智体所处的环境信息,包含了智体用于进行动作选择的所有信息。本申请实施例中的状态是一个2维度的向量,定义为[查杀,免杀],可以编码成“01”和“10”。本申请实施例中提出的方法能够从当前状态获取到当前样本是否免杀,即成功绕过DGA智能检测模型的检测。

5)奖励(Reward):强化学习奖励是指环境提供给智体的一个可量化的标量反馈信号,用于评价智体在某一个时间步(Time Step)所做动作的好坏。强化学习就是基于一种最大化累计奖励假设:强化学习中,智体进行一系列的动作过程中,选择动作的目标是能够达到最大化的未来累计奖励。

在一种可能的实施例场景中,DGA智能检测模型检测成功,即成功判定输入域名的类别是否为DGA域名,则正向奖励:10;DGA智能检测模型检测失败,则奖励:0;本申请实施例对奖励方式不做具体限定,也可以定义其他奖励函数。

可选的,在训练适用于与DGA智能检测模型对抗的强化学习模型,并进行效果验证的过程中,可以根据经验值设定训练步数。

可选的,将训练日志和训练的模型持久化保存。

可选的,由于训练花费时间较长,需要设置检查点(checkpoint),便于异常中断学习后可以继续学习。

作为一种可能的实现方式,如图6所示,S105中,利用强化学习模型强化上述DGA智能检测模型的检测能力,可以具体实现为如下步骤S1051至S1053:

S1051、基于黑白域名样本和强化学习模型生成免杀DGA域名样本。

其中,黑白域名样本的获取途径同S101,在此不再进行赘述。

最终获得的免杀DGA域名样本中的DGA域名均为能够不被上述DGA智能检测模型检测到的域名,即,免杀的含义为该DGA域名能够绕过DGA智能检测模型的检测不被查杀。

通过强化学习过程,强化学习模型具有了学习能力,如此,将黑白域名样本输入该强化学习模型后,可以输出免杀DGA域名。以持续更新免杀DGA域名样本。

S1052、利用免杀DGA域名样本生成对应的免杀训练数据集。

可以理解的,免杀训练数据集内容同样为持续更新的。

S1053、利用免杀训练数据集强化DGA智能检测模型的检测能力。

示例性的,可以利用持续更新的免杀训练数据集,迭代训练DGA智能检测模型,以应对黑客使用DGA技术对用户网络的攻击。也就是说,绕过DGA智能检测模型的免杀样本为检测效果不好或者误判的样本,本申请实施中,将这部分误判的样本迭代训练DGA智能检测模型,相当于增大了误判样本的权重,能够增强该模型对这部分样本的分类能力,进而实现强化DGA智能检测模型的检测能力。

为了便于理解,具体的,如图7所示,构建并训练强化学习模型,利用强化学习模型强化DGA智能检测模型的检测能力,还可以描述为如下步骤1至步骤8:

步骤1、智体获取动作,并向环境发送动作的信息。

其中,通过强化学习过程,智体可以具备学习能力。智体可以根据输入的黑白域名判断需执行的动作,并将动作的信息发送给环境。

步骤2、环境输出免杀动作的信息。

免杀动作的信息可以为免杀动作对应的免杀DGA域名。

环境可以基于从智体接收的动作的信息,判断针对哪一DGA域名执行了免杀,并可以输出该免杀的DGA域名。

步骤3、对免杀动作对应的免杀DGA域名样本进行变种操作。

其中,变种操作为强化学习算法根据已知的免杀DGA域名自动生成新的免杀DGA域名的过程。

步骤3具体可以实现为:将上述免杀的DGA域名输入强化学习模型,并获取强化学习模型的输出结果,该输出结果即为新的免杀DGA域名。

如此,通过强化学习,可以持续生成新的免杀域名。

步骤4、将新的DGA域名样本添加到上述训练数据集中。

步骤5、对新的DGA域名样本进行特征提取,并将特征向量输入到DGA智能检测模型中。

步骤6、DGA智能检测模型对提取的特征向量进行检测,并将检测结果输入到环境中。

其中,DGA智能检测模型可以根据域名的特征向量判断当前域名是否为DGA域名。

如此,可以使用新的免杀DGA域名样本作为DGA智能检测模型的新的训练数据,以对该DGA智能检测模型进行训练。由于DGA智能检测模型可能漏检一些DGA域名,即可能一些DGA域名输入DGA智能检测模型后,检测结果为合法域名。通过使用新的免杀DGA域名样本来迭代更新DGA智能检测模型,可以使得之前漏检的DGA域名被更新后模型识别出,从而增强DGA智能检测模型的检测精度。

步骤7、环境对检测结果进行评价,并形成奖励反馈给智体。

其中,环境可以对DGA智能检测模型的检测结果进行评价,并将评价结果转换成一种可量化的奖励反馈给智体。

可选的,环境将状态信息和新的免杀DGA域名的特征向量发送到智体。

步骤8、智体根据环境提供的奖励信号,通过学习选择下一个执行的动作,并将动作的信息输入到环境。

还可以继续循环上述步骤2-步骤8,每次循环,均可通过强化学习模型学习到一部分免杀DGA域名,并基于此更新训练数据集,从而迭代训练DGA智能检测模型。通过DGA智能检测模型的持续构建,进而不断提高DGA智能检测模型检测免杀DGA域名样本的能力。

如下介绍一种强化学习模型的构建方式:

作为一种可能的实施例,可以利用A3C算法构建多智体强化学习模型。具体的,如图8所示,把A3C算法封装成智体(Agent),定义关键属性包括状态空间大小(state_size)、动作空间大小(action_size)等。A3C算法完全实现了Actor-Critic框架,并且引入了异步训练策略,以打破数据相关性,在提升性能的同时加快了训练速度。

如下以采用神经网络进行强化学习为例进行说明。

首先,介绍神经网络的结构以及工作原理:神经网络包括多个层,每一层包括多个节点,其中,输入节点将接收到的当前状态作为的输入信号,隐藏层的每个节点可以对输入信号进行处理、传播。然后,处理后的信号传给输出节点,由输出节点得到输出信号。最后,输出信号可以与可以绕过DGA智能检测模型的动作列表相关联。同时,基于节点之间的权重w,能够确定输入信号被传送到哪一个输出节点。其中,每一个节点都存在阈值,当输入某一节点的信息总和与该节点相关的权重总和超出阈值,输入信号将被传送到该节点的下一个节点。因此,需要优化节点之间的权重,使得能够针对当前状态选择最优的绕过行为。

在A3C算法实现过程中,参见图8,智体可以用于进行相关学习过程。比如,学习上述免杀DGA域名,以迭代训练图8所示的DGA智能检测模型。在一些实施例中,智体也称为“工作线程”。在学习过程中,每个“工作线程”能够在内存中存储从学习中获得的经验,一旦经验数量超过一定阈值,便会计算自身的梯度参数⊿w=grad,更新神经网络的权重w,并将权重w推送到“参数服务器”。

在A3C算法实现过程中,参见图8,“参数服务器”能够共享众多“工作线程”的学习经验,并且“参数服务器”和“工作线程”可以具有相同的神经元网络结构。参数服务器可以从某一工作线程获取更新的梯度参数和权重。在学习过程中,每个“工作线程”能够在内存中存储从学习中获得的经验,一旦经验数量超过一定阈值,便会计算自身的梯度参数⊿w=grad,更新权重w,并将权重w推送到“参数服务器”。然后,“参数服务器”利用新的权重w更新其他“工作线程”上的权重w。以同步多智体之间的权重和梯度参数。参数服务器可以重复该接收权重、梯度参数,并更新智体的权重和梯度参数的过程,直到满足学习终止条件。

在A3C算法实现过程中,参见图8,“训练服务器”可以承载多个智体应用于上述的强化学习过程。其中,“参数服务器”和“训练服务器”均为由逻辑功能进行划分而形成的概念,并非硬件结构,实际实现时可以有另外的划分方式。

进一步的,参见图8所示,强化学习过程具体步骤如下:

(1)“参数服务器”初始化权重w,其中,w为随机值。

(2)“参数服务器”同步权重w到多个“工作线程”。

(3)在神经网络中,“工作线程”根据当前的输入状态(State)选择执行的动作(Action)。

示例性的,工作线程接收到来自环境的状态,该状态指示某一域名为免杀域名,则工作线程基于免杀状态,判断对该免杀域名所需执行的动作。

可选的,工作线程还可以基于来自环境的奖励等信息判断对不同域名分别所需执行的动作。

(4)“工作线程”获得所需执行的动作(Action)相对应的奖励(Reward)。

具体的,由于工作线程所执行了上述动作(Action),引起状态(State)变化为下一个状态(State),进而环境会基于状态的改变向工作线程反馈相应的奖励。

(5)“工作线程”存储获取到的学习经验到存储器。

学习经验包括当前状态(State)、动作(Action)、执行动作对应的奖励(Reward)和执行动作后的下一个状态(State)。

“工作线程”重复步骤(3)到步骤(5),直至当存储的学习经验数量超过一定阈值,执行如下步骤:

(6)工作线程利用存储的学习经验,包括当前状态(State)、动作(Action)、奖励(Reward)和下一个状态(State),计算网络梯度参数⊿w=grad。

(7)“工作线程”向“参数服务器”发送网络梯度参数⊿w=grad。

(8)“参数服务器”根据⊿w=grad更新网络权重w。

(9)返回步骤(2),循环上述步骤(2)至步骤(8)。

通过以上步骤,A3C算法可以异步利用多个智体(“工作线程”)进行学习,并且可以共享多个智体的学习经验,并基于这些学习经验更新权重,以实现更快的学习进度。

S106、利用所述DGA智能检测模型和关联分析算法,识别目标对象。

在本申请实施例中,利用关联分析算法,在指定的时间窗口范围内,关联DNS访问特征和DGA智能检测模型的检测结果,进而可以识别目标对象,以完成C&C通信检测过程。其中,目标对象指的是受控主机、控制服务器和僵尸网络家族。

作为一种可能的实现方式,如图9所示,S106可以实现为如下步骤S1061至S1064:

S1061、对于DGA智能检测模型判定为DGA域名的域名,提取该域名的DNS访问特征,并构造可疑DNS访问特征向量。

DNS访问特征的具体描述可参见下文。

S1062、利用关联分析算法,在指定的时间窗口范围内,以源主机为对象进行关联分析,进而识别受控主机以及僵尸网络家族。

具体的,若一个源主机不断的通过DNS协议请求解析不同的DGA域名,且这些DGA域名被DGA智能检测模型判定为属于同一个恶意代码家族,则据此判定该主机为受控主机,同时输出对应的恶意代码家族名称,此恶意代码家族名称即为僵尸网络家族。

S1063、利用关联分析算法,在指定的时间窗口范围内,以目标主机为对象进行关联分析,进而识别控制服务器。

具体的,若某一主机通过DNS协议请求返回DGA域名解析结果,该主机对应一个IP地址,若同时存在多个DGA域名返回的为相同的IP地址,则判定IP地址为目标IP地址,该目标IP地址对应的服务器则判定为控制服务器。

S1064、输出受控主机、控制服务器以及僵尸网络家族。

作为一种可能的实施例,如图10所示,利用DGA智能检测模型的检测流程可以实现为步骤S1001至S1007。

S1001、获取DNS会话元数据信息。

作为一种可能的实现方式,流量分析设备实时分析网络流量,并提取DNS会话元数据。具体的,从DNS会话元数据信息中提取五元组信息(源IP、目标IP、源端口、目标端口和协议)、查询域名(该域名名称)等信息中的一个或多个。

S1002、利用上述特征提取算法,获取DGA域名的特征向量。

S1003、利用DGA智能检测模型,对DGA域名的特征向量进行预测。

具体的,判断是否为DGA域名,若为DGA域名,进而判断进行C&C通信的恶意代码家族类型。

S1004、输出该域名的检测结果。

检测结果包括如下任一项或多项:该域名对应的五元组信息(源IP、目标IP、源端口、目标端口和协议)、查询域名和域名类型(包括合法域名、恶意代码家族类别)。检测结果还可以包括其他信息,本申请实施例不再一一列举。

S1005、对于判定为DGA域名的域名,可以根据DNS会话元数据提取该域名的DNS访问特征,构造可疑DNS访问特征向量。

可疑DNS访问特征向量包括一个或多个DNS访问特征。

作为一种可能的实现方式,从该域名的DNS会话元数据中提取该域名的DNS访问特征,即DNS访问特征包括如下任一项或多项:五元组信息(源IP、目标IP、源端口、目标端口和协议)、查询域名、查询类型、查询结果。当然,可以DNS访问特征还可以包括其他信息。

S1006、利用关联分析算法,识别受控主机、控制服务器以及僵尸网络家族。

具体的识别方式参见上述步骤S1062和S1063,在此不再进行赘述。

S1007、输出检测结果。

其中,检测结果包括受控主机、僵尸网络控制服务器以及受控主机感染的僵尸网络家族。

本申请实施例提供的C&C通信检测方法,构造黑白域名样本的训练数据集;根据训练数据集,利用多种特征提取算法构造不同类别的特征向量文件;利用不同类别的特征向量文件对DGA基分类器进行训练;利用训练后的DGA基分类器和集成策略构建DGA智能检测模型;构建并训练强化学习模型,利用强化学习模型强化DGA智能检测模型的检测能力;利用DGA智能检测模型识别受控主机、僵尸网络家族和僵尸网络控制服务器。相对于现有技术中,对C&C通信检测的研究较为薄弱,不能应对DGA技术造成的连续、复杂的网络状态。本申请实施例提供的通信检测方法,能够基于集成策略建立DGA智能检测模型,并利用构建的强化学习模型强化DGA智能检测模型的检测能力,在C&C通信检测领域提高DGA域名检测精度和检测效率,降低误报和漏报。

本申请实施例可以根据上述方法示例对系统进行功能模块或者功能单元的划分,例如,可以对应各个功能划分各个功能模块或者功能单元,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块或者功能单元的形式实现。其中,本申请实施例中对模块或者单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

图11示出了上述实施例中所涉及的C&C通信检测系统的一种可能的结构示意图。如图11所示,该系统可以包括:样本获取模块201、特征提取模块202、训练模块203、构建模块204、强化学习模块205和检测模块206。

样本获取模块201,用于获取DGA域名数据集和合法域名数据集,并对数据集进行预处理,进而构造黑白域名样本的训练数据集。

作为一种可能的实现方式,DGA域名数据集包含第一DGA域名数据集、第二DGA域名数据集和第三DGA域名数据集中的一个或多个域名数据集。其中,可以从开源社区获取第一DGA和第一DGA域名数据集;对恶意代码进行逆向分析,获取第二DGA;根据第一DGA和/或第二DGA生成第二DGA域名数据集;根据恶意代码运行产生的网络流量获取第三DGA域名数据集。合法域名数据集为从合法域名站点获取的域名集合。

特征提取模块202,用于根据训练数据集,利用多种特征提取算法构造不同类别的特征向量文件。

具体的,可以利用多种特征提取算法,获取黑白域名样本训练数据集中域名样本不同类别的特征向量数据,进而构造不同类别的特征向量文件。其中,每一类别特征向量数据对应一个特征向量文件。

作为一种可能的实现方式,特征提取模块获取黑白域名样本的训练数据集,并对训练数据集进行数据清洗。之后,利用多种特征提取算法分别提取清洗后的训练数据集的不同类型的特征,以构造不同类别的特征向量。对不同类别的特征向量分别进行量化处理,进而将量化处理后的不同类别的特征向量存储为对应的特征向量文件。

训练模块203,利用不同类别的特征向量文件对DGA基分类器进行训练。

作为一种可能的实现方式,针对不同类别的特征向量文件中的每一特征向量文件,执行如下操作:

步骤1、获取特征向量文件包括的一个或多个特征向量。

步骤2、使用一个或多个特征向量和不同的监督学习算法训练不同的DGA基分类器。

作为一种可能的实现方式,还可以获取并输出DGA基分类器的训练结果。具体的,获取并输出DGA基分类器的训练结果可实现为如下步骤3和4:

(可选的)步骤3、根据DGA基分类器选择策略,从不同的监督学习算法中选择M个最优的监督学习算法,其中M为正整数。

(可选的)步骤4、输出M个最优的监督学习算法对应的信息。

构建模块204,用于利用训练后的DGA基分类器和集成策略构建DGA智能检测模型,提高检测模型的检测精度和检测效率,降低漏报率。

作为一种可能的实现方式,根据预设集成策略对多个DGA基分类器进行组合。基于组合后的DGA基分类器训练不同的高层DGA分类器,并对不同的高层DGA分类器进行交叉验证。根据交叉验证后的不同的高层DGA分类器生成DGA智能检测模型。

强化学习模块205,用于构建强化学习模型,并利用强化学习模型强化DGA智能检测模型的检测能力,不断提高DGA智能检测模型检测免杀DGA域名样本的能力。

作为一种可能的实现方式,强化学习模型包括:智体、环境、动作、状态和奖励。可以基于黑白域名样本和强化学习模型生成免杀DGA域名样本,并构造免杀DGA域名样本对应的免杀训练数据集。其中,免杀DGA域名样本指的是能够绕过DGA智能检测模型检测的域名。最后,利用生成的免杀训练数据集迭代训练新的DGA智能检测模型,进而不断提高DGA智能检测模型检测免杀DGA域名样本的能力。

检测模块206,用于利用DGA智能检测模型和关联分析算法,识别目标对象。

作为一种可能的实现方式,利用DGA智能检测模型识别域名是否为DGA域名,如果域名为DGA域名,则提取DNS访问特征,构造可疑DNS访问特征向量。之后,利用关联分析算法,在指定的时间窗口范围内,以源主机为对象进行关联分析,进而识别受控主机以及僵尸网络家族;利用所述关联分析算法,在指定的时间窗口范围内,以目标主机为对象进行关联分析,进而识别控制服务器。输出受控主机、僵尸网络家族和僵尸网络控制服务器,完成C&C通信检测过程。

需要说明的是,上述各个模块可以集成在一个设备中,当然,上述各模块的功能还可分别由不同设备实现(参见图12),即其中某一个或几个模块的功能由某一设备实现,另一个或几个模块的功能由另一设备实现。

本申请实施例提供的C&C通信检测系统,构造黑白域名样本的训练数据集;根据训练数据集,利用多种特征提取算法构造不同类别的特征向量文件;利用不同类别的特征向量文件对DGA基分类器进行训练;利用训练后的DGA基分类器和集成策略构建DGA智能检测模型;构建并训练强化学习模型,利用强化学习模型强化DGA智能检测模型的检测能力;利用DGA智能检测模型识别受控主机、僵尸网络家族和僵尸网络控制服务器。相对于现有技术中,对C&C通信检测的研究较为薄弱,不能应对DGA技术造成的连续、复杂的网络状态。本申请实施例提供的通信检测系统,能够基于集成策略建立DGA智能检测模型,并利用构建的强化学习模型强化DGA智能检测模型的检测能力,在C&C通信检测领域提高DGA域名检测精度和检测效率,降低误报和漏报。

图12示出了上述C&C通信检测系统的一种可能的结构示意图。如图12所示,该系统可以包括:强化学习服务器301、样本服务器302、监督学习服务器303、DGA智能检测模型服务器304和流量分析服务器305。

强化学习服务器301,用于执行上述强化学习模块205执行的步骤,和/或用于执行本文所描述的技术的其它过程。利用强化学习技术,基于样本服务器提供的非免杀样本自动持续生成能够绕过DGA智能检测模型检测的免杀DGA域名样本,构造和输出免杀训练数据集,进而迭代训练DGA智能检测模型,强化DGA智能检测模型的检测能力。

样本服务器302,用于执行上述样本获取模块201执行的步骤,和/或用于执行本文所描述的技术的其它过程。用于构造黑白域名样本的训练数据集。

监督学习服务器303,用于执行上述训练模块203和构建模块204执行的步骤,和/或用于执行本文所描述的技术的其它过程。利用样本服务器获取的特征向量文件,训练DGA基分类器并进行选择。同时,基于选取的DGA基分类器,利用集成学习技术构建DGA智能检测模型。

DGA智能检测模型服务器304,用于执行上述检测模块206执行的步骤,和/或用于执行本文所描述的技术的其它过程。可以获取流量分析服务器输出的数据,并对DGA域名的特征向量进行预测,判断是否为DGA域名。若为DGA域名,利用DGA智能检测模型服务器中的关联引擎组件对域名的检测结果进行关联分析,进而识别受控主机、僵尸网络家族和僵尸网络控制服务器并输出检测结果,完成C&C通信检测过程。

流量分析服务器,用于执行上述检测模块206执行的步骤,和/或用于执行本文所描述的技术的其它过程。实时分析网络流量,提取DNS协议的7层会话元数据信息,并从中选择五元组信息、查询域名等信息,利用特征提取方法提取DGA域名特征向量。最后,输出待检测数据对应的五元组信息、DGA域名、查询结果、DGA域名特征向量等信息。

本申请实施例提供的C&C通信检测系统,构造黑白域名样本的训练数据集;根据训练数据集,利用多种特征提取算法构造不同类别的特征向量文件;利用不同类别的特征向量文件对DGA基分类器进行训练;利用训练后的DGA基分类器和集成策略构建DGA智能检测模型;构建并训练强化学习模型,利用强化学习模型强化DGA智能检测模型的检测能力;利用DGA智能检测模型识别受控主机、僵尸网络家族和僵尸网络控制服务器。相对于现有技术中,对C&C通信检测的研究较为薄弱,不能应对DGA技术造成的连续、复杂的网络状态。本申请实施例提供的通信检测系统,能够基于集成策略建立DGA智能检测模型,并利用构建的强化学习模型强化DGA智能检测模型的检测能力,在C&C通信检测领域提高DGA域名检测精度和检测效率,降低误报和漏报。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当该指令被执行时,上述C&C通信检测方法被实现。

其中,计算机可读存储介质,例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(Random Access Memory,RAM)、只读存储器(Read-Only Memory,ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、寄存器、硬盘、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合、或者本领域熟知的任何其它形式的计算机可读存储介质。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于特定用途集成电路(Application Specific Integrated Circuit,ASIC)中。在本申请实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1