一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于TCN的恶意域名检测方法与流程

2021-12-15 00:57:00 来源:中国专利 TAG:

一种基于tcn的恶意域名检测方法
技术领域
1.本发明实施例涉及恶意域名检测方法领域,具体涉及一种基于tcn(temporal convolutional network)的恶意域名检测方法。


背景技术:

2.恶意域名情报是威胁情报的重要组成部分,包括恶意域名检测(malicious domains detection)、域名生成算法识别(dga recognition)等,相对于图像处理、自然语言处理等领域,基于人工智能研究安全领域的工作并不是很多。以往很多检测模型的构建严重依赖专家经验。例如,对于域名一般使用域名字符熵、域名长度、域名级别、域名数字数量、特征字符数量、字符类型变换次数、最长非顶级域名、数字子域名数量、成词子域名数量等等。基于专家经验对域名进行向量化后,再通过随机森林、cnn(卷积神经网络)、lstm等来构建有监督的检测模型。不过,不同的专家会有不同的分析经验,无法穷举,且该类模型没有真正发挥深度学习端到端的优势,由于依赖专家经验进行向量化,模型的性能收到一定的约束。
3.另外,由于近年来在人工智能自然语言处理(nlp)领域,transformer框架得到长足的发展,特别是gpt

3取得了很大的成果,同时该类模型的训练需要超大的语料库和多达上千显卡集群的强大的算力,非普通公司所能承受,另外从原理上,该类模型训练的语料库是正常的人类语言,而并非指向网络空间安全领域,在网络空间安全领域,一些恶意域名使用dga域名,这些域名产生的原理与正常的人类语言截然不同。
4.temporal convolutional network(tcn)是近年来人工智能领域取得一大进展,因为在此之前,领域内绝大多数人认为对于时序数据建模,rnn(包含lstm、gru等)是首选,相对cnn(卷积神经网络)具有明显的优势。但由于tcn的出现,这一“常识”得以打破,在一些任务中tcn表现出比rnn更优异的性能,同时继承了cnn并行计算的优点,为研究人员针对时序数据的建模提供了更多选择。
5.tcn主要由一维卷积网络、扩张卷积和因果卷积组成,为了尽量减小梯度消失的影响同时引入了残差模块,虽然各个子模块都是之前其它研究人员提出,但tcn将这些组合为一体。其中一维卷积网络即是cnn中常规的卷积网络。因果卷积与常规卷积的一大区别就是,对于0~(inputlength

1)中的每一个i,输出序列的第i个元素可能只依赖于索引为0~i的输入序列中的元素。所以输出序列的每个元素只依赖于输入序列中在它之前的元素,这样从根本上避免了bi

lstm出现的数据泄漏的问题。同时,为了确保输入张量与输出张量维度一致(有相同的长度),需要对输入张量进行填0操作。
6.另外,tcn还引入了扩张卷积,这样在保持层数相对较小的情况下,可以大大增强感受野,保持层数相对较小,便使得模型参数相对较少,不仅更易于训练,也尽量避免了层数较多时易出现的梯度消失的现象。
7.域名的向量化严重依赖专家经验,不仅一些专家经验不会公开,同时专家经验依赖于个人,也无法穷举域名的统计特征,因为束缚了后期模型的性能,使得该类模型无法真
正实现端到端的自动学习。
8.基于transformer框架构建检测模型,一来模型较重,不易部署,二来从原理上,该类模型训练的语料库是正常的人类语言,而并非指向网络空间安全领域,在网络空间安全领域,一些恶意域名使用dga域名,这些域名产生的原理与正常的人类语言截然不同


技术实现要素:

9.为此,本发明实施例提供一种基于tcn(temporal convolutional network)的恶意域名检测方法,包括以下步骤:
10.s1.读取正常域名和恶意域名数据;
11.s2.对数据进行shuffle、划分训练集、测试集等预处理;
12.s3.编写字符向量化模块,并对域名和标签进行向量化;
13.s4.编写tcn检测模型;
14.s5.设定模型相关参数,进行训练和测试;
15.s6.保存模型。
16.进一步地,所述s1中分别读取正常域名数据和恶意域名共165366条样本数据,其中恶意域名数据中包含钓鱼网站域名和恶意软件域名。
17.进一步地,所述s2中对原始数据进行shuffle操作,打乱排列顺序,并划分训练集和测试集。
18.进一步地,所述s3中编写字符向量化模块,使用python enumerate和set函数建立域名每一种字符与整数的映射词典,共159个,在对域名进行向量化时,如果有未出现的字符,统一填充为160,而后,使用standardscaler函数对向量化后的特征数据进行归一化处理,对标签数据进行labelencoder处理。
19.进一步地,所述s4中基于tensorflow编写tcn检测模块,包含残差模块构建、tcn层构建两大组成部分,数据进行步骤s3向量化后输入给embedding层,其中max_features设为200,接着传至tcn层,其中kernel_size设为6,dilations列表为[1,2,4,8,16],最后一层dense层使用sigmoid激活函数。
[0020]
进一步地,所述s5中设定模型相关参数,其中batch_size设为100,损失函数使用binary_crossentropy,优化器使用adam,而后进行训练,在测试集模型精确率达到99.75%,召回率达到99.19%。
[0021]
进一步地,所述s6中保存训练的模型至h5文件,以后后期使用时直接加载。
[0022]
本发明实施例具有如下优点:
[0023]
基于tcn建立恶意域名检测的有监督学习模型,在域名向量化时直接基于字符进行映射,避免以往模型依赖专家经验提取域名统计特征的问题,同时该模型相对基于lstm、gru的检测模型具有防止数据泄漏、提高模型训练并行计算性能、减弱梯度消失和提高模型泛化能力等方面的优点,相对基于transformer框架预训练语言模型的恶意域名检测模型具有域名向量化时不受限于人类正常语言语料库和实际落地时易部署等方面的优点。
附图说明
[0024]
为了更清楚地说明本发明的实施方式或现有技术中的技术方案,下面将对实施方
式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引伸获得其它的实施附图。
[0025]
本说明书所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容得能涵盖的范围内。
[0026]
图1为本发明提供的步骤的流程图。
具体实施方式
[0027]
以下由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本发明的其他优点及功效,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0028]
实施例1:
[0029]
该实施例的一种基于tcn(temporal convolutional network)的恶意域名检测方法,包括以下步骤:
[0030]
s1.读取正常域名和恶意域名数据;
[0031]
s2.对数据进行shuffle、划分训练集、测试集等预处理;
[0032]
s3.编写字符向量化模块,并对域名和标签进行向量化;
[0033]
s4.编写tcn检测模型;
[0034]
s5.设定模型相关参数,进行训练和测试;
[0035]
s6.保存模型。
[0036]
进一步地,所述s1中分别读取正常域名数据和恶意域名共165366条样本数据,其中恶意域名数据中包含钓鱼网站域名和恶意软件域名。
[0037]
进一步地,所述s2中对原始数据进行shuffle操作,打乱排列顺序,并划分训练集和测试集。
[0038]
进一步地,所述s3中编写字符向量化模块,使用python enumerate和set函数建立域名每一种字符与整数的映射词典,共159个,在对域名进行向量化时,如果有未出现的字符,统一填充为160,而后,使用standardscaler函数对向量化后的特征数据进行归一化处理,对标签数据进行labelencoder处理。
[0039]
进一步地,所述s4中基于tensorflow编写tcn检测模块,包含残差模块构建、tcn层构建两大组成部分,数据进行步骤s3向量化后输入给embedding层,其中max_features设为200,接着传至tcn层,其中kernel_size设为6,dilations列表为[1,2,4,8,16],最后一层dense层使用sigmoid激活函数。
[0040]
进一步地,所述s5中设定模型相关参数,其中batch_size设为100,损失函数使用binary_crossentropy,优化器使用adam,而后进行训练,在测试集模型精确率达到99.75%,召回率达到99.19%。
[0041]
进一步地,所述s6中保存训练的模型至h5文件,以后后期使用时直接加载。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献