技术新讯 > 电子通信装置的制造及其应用技术 > 一种基于大语言模型的恶意域名检测方法与流程  >  正文

一种基于大语言模型的恶意域名检测方法与流程

  • 国知局
  • 2024-08-02 12:39:22

本发明涉及网络空间安全与人工智能,具体来说是一种基于大语言模型的恶意域名检测方法。

背景技术:

1、随着互联网的快速发展,网络安全遭受威胁,各类恶意网站和恶意软件泛滥成灾,许多用户和网站都容易受到安全威胁,其中,恶意域名是网络攻击的主要路径之一。每天涌现出数以万计的新域名,这些域名中除大量正常注册的良性域名(benign domain)外,还存在大量被恶意注册用于进行非法活动的恶意域名(malicious domain),恶意域名成为各种网络非法活动的主要攻击路径之一。

2、域名作为桥梁,将用户与恶意代理(如勒索软件、恶意软件和木马)连接起来,恶意域名通常用于实施非法窃取和存储个人敏感信息、非法控制和管理受感染的主机等恶意行为。几乎所有网络攻击都依赖恶意域名的使用,域名系统受到攻击者的滥用。因此,如何有效地检测恶意域名是网络安全领域的热点和难点问题。

3、现有的恶意域名检测方法主要分为基于规则、机器学习和深度学习三类。基于规则的方法通过黑白名单检测域名的合法性,这类方法简单直接;基于机器学习的方法从域名中提取特征(例如域名长度、不同ip地址的数量等),然后构建基于机器学习的分类器来区分良性域名和恶意域名;基于深度学习的方法通过深度神经网络对域名的文本进行编码建模。

4、现有的恶意域名检测方法在一定程度上都取得了很好的效果。但是基于规则的方法面对爆炸性增长的恶意域名时效果有限;基于机器学习的方法严重依赖于专家知识和受限于特征表达能力,且攻击者可以通过添加最小特征扰动(改变域的长度或修改网络参数,如ttl)轻松绕过模型检测;基于深度学习的方法具有忽视了位置嵌入对域名向量的重要性以及缺乏可解释性等缺陷。

5、域名通常由多个部分组成,如二级域名、顶级域名等,它们通过点(.)连接,如图2所示。去除域名中的“.”、“-”、等特殊字符,以“.”为分隔符对域名进行分词后得到域名的token,深度学习方法通常将域名视为纯文本数据,忽略了域名中token对于位置的敏感性,即相同的token位于domain/top level domain(tld)/path时应具有不同的含义和表示方法。

6、那么,如何基于域名的特殊文本信息,设计一种恶意域名检测方法已经成为急需解决的技术问题。

技术实现思路

1、本发明的目的是为了解决现有技术中难以针对恶意域名进行检测的缺陷,提供一种基于大语言模型的恶意域名检测方法来解决上述问题。

2、为了实现上述目的,本发明的技术方案如下:

3、一种基于大语言模型的恶意域名检测方法,包括以下步骤:

4、11)预训练数据集和微调训练数据集的构建:构建预训练数据集和微调训练数据集,并进行数据预处理;

5、12)设定url-bert模型;

6、13)url-bert模型的预训练:利用预训练数据集对url-bert模型进行预训练;

7、14)url-bert模型的微调:利用微调训练数据集对预训练后的url-bert模型进行微调;

8、15)待检测域名的获得:获得待检测的域名;

9、16)恶意域名检测结果的获得:将待检测的域名输入微调后的url-bert模型,获得恶意域名检测结果。

10、所述预训练数据集和微调训练数据集的构建包括以下步骤:

11、21)设定预训练数据集,预训练数据集为无标记域名数据,无标记的域名数据从公开的dns查询日志、whois数据库来源获取;

12、22)设定微调训练数据集,微调训练数据集为有标记域名数据,有标记域名数据从网络安全公司或公开的恶意域名数据库中获得,其中正样本和负样本数量均衡;

13、23)对预训练数据集和微调训练数据集进行去重、去除无关字符、转换为小写字母、标准化步骤的预处理;

14、24)对预处理后的预训练数据集和微调训练数据集进行分词处理。

15、所述设定url-bert模型包括以下步骤:

16、31)设定url-bert模型包括输入层、url-bert预训练层、字符级嵌入特征提取层、标记级别嵌入特征提取层、特征融合层和全连接分类层;

17、设定输入层:输入层接收分词处理后的文本作为模型的输入;

18、32)设定url-bert预训练层:预训练阶段通过设定mlm任务,对大量的无标记域名数据进行训练,学习捕获域名文本中的丰富语义信息和结构特征;

19、33)设定字符级嵌入特征提取层:字符级嵌入提取层提取域名文本的字符级别嵌入,利用bigru生成双向的向量表示,其中包含了域名内部字符间的复杂关联信息;对微调训练数据集,利用双向门控单元bigru对有标记域名数据进行字符级别的嵌入提取,bigru通过利用两个不同方向的gru,在前向和后向方向上结合隐藏层状态,从而实现双向信息的整合,得到域名字符级别的嵌入向量;

20、34)设定标记级别嵌入特征提取层,进行标记级别嵌入;

21、35)设定特征融合层:

22、特征融合层将提取的字符级别嵌入特征向量和标记级别嵌入特征向量进行拼接,然后引入多个 transformer 层来捕获特征之间的复杂关系;

23、在transformer层之间的异构交互模块,用于将字符级嵌入和标记级嵌入在每个transformer层之后进行组合和分离,组合操作丰富了不同表示之间的关联性,分离操作保留了字符级和标记级特征的独立性,促进了模型在双通道区分方面的表现;

24、36)设定全连接分类层:全连接分类层用于微调整个url-bert模型以适应特定的恶意域名检测任务,通过将特征融合层输出的特征向量输入到全连接层中,通过反向传播算法最小化损失函数。

25、所述url-bert模型的预训练包括以下步骤:

26、41)将预训练数据集分词处理后的文本输入url-bert模型;

27、42)url-bert预训练层进行masked language model预训练,即mlm预训练:

28、设是随机用[mask]替换中的一小部分token的分词序列, 中有15%的token被随机进行[mask],其中表示第i个token被随机替换,mlm预训练过程的目标是根据上下文来预测被[mask]的token的内容;

29、将输入到url-bert模型中,所对应的隐层向量, 由经过bert的编码器编码得到;

30、421)编码器处理过程:编码输入层的输入数据是嵌入向量;

31、422)自注意力机制:

32、输入通过线性变换得到查询矩阵、键矩阵k和值矩阵,其中, , 是编码器的超参数:

33、,

34、,

35、,

36、然后计算注意力权重,使用缩放点积注意力,这一步产生的输出包含对输入序列内部的全局依赖关系的表示,

37、其中是键向量的维度,用于缩放点积,防止出现梯度消失问题,是注意力权重矩阵,是一个注意力头的输出,

38、,

39、多头注意力的输出:

40、将多个头的输出拼接起来,然后通过另一个线性变换,公式如下,

41、,

42、其中,是第个头的输出,是一个超参数矩阵;

43、423)前馈神经网络:

44、对于多头注意力的输出用一个前馈神经网络进一步处理特征表示,前馈网络由两个线性层和一个激活函数组成,

45、,

46、其中、、、是可学习的参数;

47、接着进行残差连接和层归一化,用于增强模型的训练稳定性和收敛速度:

48、,

49、这里表示层归一化操作;

50、编码器输出层:最终输出编码器的编码序列;

51、接着,经过sigmoid操作得到对应的token分布;

52、mlm过程的公式如下,

53、,

54、其中表示目标概率分布,即整个序列的概率分布,表示给定序列所有token的情况下,第i个token的预测概率,表示模型参数,表示第i个token是否被[mask],如果第i个token被[mask],则, 否则,目的是对被[mask]的token进行加权,被[mask]的token对整个序列的概率产生影响;

55、在mlm预训练中,目标是最大化模型对整个序列的预测准确率,基于这一预测,计算交叉熵损失函数,并通过反向传播算法更新模型参数,最终得到预训练好的模型,

56、,

57、其中,是模型参数,是交叉熵损失函数,是第i个token的真实标签,如果该token被[mask]即该token的真实值,是第i个token的预测概率,即通过反向传播算法最小化损失函数更新模型参数,最终得到预训练好的url-bert模型。

58、所述url-bert模型的微调包括以下步骤:

59、51)字符级嵌入特征提取层和标记级别嵌入特征提取层的训练,进行字符级别嵌入;

60、微调数据集经过分词后形成了分词序列一方面,经过字符级别嵌入特征提取层嵌入,得到了嵌入向量;另一方面经过标记级别嵌入特征提取层嵌入,即经过预训练好的模型的嵌入,再加上注意力掩码向量,进行位置嵌入处理,得到带位置嵌入的标记级别嵌入向量;

61、最后,将标记级别嵌入向量与字符级别嵌入向量连接在一起,即在向量末尾连接向量,形成一个更长的嵌入向量,

62、;

63、52)设定特征融合层:设定特征融合层为模型,模型包含一个被冻结参数的模型层、多个transformer层、多个异构交互层、一个全连接层和一个sigmoid层;通过模块间的交互,特征融合层能够捕获url字符级别和标记级别间的复杂关系;

64、进行特征融合层的训练:

65、521)设定被冻结参数的模型层为预训练好的url-bert模型,

66、522)设定transformer模块:

67、transformer由编码器和解码器组成,编码器用于处理输入数据,解码器负责生成输出,

68、编码器包括编码输入层、自注意力机制、多头注意力、前馈神经网络、残差连接和层归一化、编码器输出层;

69、解码器包括解码输入层、自注意力机制、编码器-解码器注意力机制、前馈神经网络、残差连接和层归一化、解码器输出层;

70、5221)编码器处理过程:编码输入层的输入数据是嵌入向量;

71、自注意力机制:

72、对于每个头,将输入通过线性变换得到查询矩阵、键矩阵和值矩阵,其中, , ,是编码器的超参数:

73、,

74、,

75、,

76、接下来,对每个头计算注意力权重,使用缩放点积注意力,这一步产生的输出包含对输入序列内部的全局依赖关系的表示,

77、其中是键向量的维度,用于缩放点积,防止出现梯度消失问题,是注意力权重矩阵,是一个头的注意力机制的输出,

78、,

79、多头注意力的输出:

80、将多个头的输出拼接起来,然后通过另一个线性变换,公式如下,

81、,

82、其中,是每个注意力头的输出,是一个超参数矩阵;

83、前馈神经网络:

84、对于多头注意力的输出用一个前馈神经网络进一步处理特征表示,前馈网络由两个线性层和一个激活函数组成,

85、,

86、其中、、、是可学习的参数;

87、残差连接和层归一化:用于增强模型的训练稳定性和收敛速度,

88、,

89、这里表示层归一化操作;

90、编码器输出层:最终输出编码器的编码序列;

91、5222)解码器处理过程:

92、解码输入层的输入数据为嵌入向量

93、自注意力机制:通过线性变换得到查询矩阵、键矩阵和值矩阵,其中, , ,是解码器的超参数,

94、,

95、,

96、,

97、对每个头计算注意力权重,使用缩放点积注意力;

98、将多个头的输出拼接起来,经过残差连接和层归一化得到解码器的自注意力输出;

99、编码器-解码器注意力机制:解码器对编码器的输出进行注意力计算,以捕捉输入序列和输出序列之间的关系,允许解码器根据编码器的信息调整自身的注意力以生成目标序列;

100、对于解码器的每个位置,使用解码器的输出作为查询,编码器的输出、作为键和值,计算注意力权重:

101、,

102、,

103、多头注意力的输出:将解码器的自注意力输出和编码器-解码器注意力输出进行结合,得到最终的注意力输出;

104、将它们按元素加权相加,其表达式如下:

105、,

106、其中,最终的注意力输出为,是一个可学习的权重参数:

107、前馈神经网络:对最终的注意力输出为进行一次前馈神经网络处理,以进一步提取和转换特征表示:

108、;

109、残差连接和层归一化:在前馈神经网络的输出上应用残差连接和层归一化,以增强模型的训练稳定性和收敛速度:

110、,

111、解码器输出:解码器的输出序列为;

112、523)设定异构交互模块:异构交互层中将标记级和字符级表示视为两种不同类型的特征表示,在每个transformer转换层后,将这两种表示进行组合和分离操作;

113、全连接网络负责将标记和字符表示映射到相同的特征空间中,以确保它们具有一致的维度和语义表示,然后通过cnn层进行连接和集成,最后经过残差连接和层归一化操作;

114、5231)分离与组合处理:

115、将解码器输出的向量按长度分离成标记级表示和字符级表示, 表示第i个位置的标记/字符表示,分别对和应用专用的全连接网络进行转换:

116、,

117、,

118、接着将转换后的标记和字符表示连接起来形成融合后的表示:

119、<msub><mi>w</mi><mi>i</mi></msub><mi>x</mi></mfenced><mi>=[</mi><msubsup><mi>h</mi><mi>i</mi><mi>'</mi></msubsup><mi>x</mi></mfenced><mi>;</mi><msubsup><mi>t</mi><mi>i</mi><mi>'</mi></msubsup><mi>x</mi></mfenced><mi>]</mi>;

120、5232)cnn卷积:对融合后的表示应用cnn操作,用于集成特征,

121、,

122、其中,表示从到的嵌入的拼接,表示第j个滤波器的窗口大小;

123、5233)分离:将经过卷积后的组合表示分离为两个不同通道的特征表示,

124、,

125、,

126、其中,gelu是激活函数,用于分离融合后的特征表示;

127、5234)残差连接和层归一化:将分离后的特征表示与初始标记和字符表示进行相加,以重组两个通道的表示:

128、,

129、,

130、最后对重组后的表示进行层归一化操作,以确保稳定性:

131、,

132、,

133、分离后的特征将连接后将得到下一层transformer的输入;

134、524)设定全连接和sigmoid 分类模块:

135、进行全连接层的训练:

136、将最后一层transformer的输出传递给具有个隐藏单元的全连接层,其数学表达如下:

137、,

138、其中,是输入向量,和是层的权重和偏置,是激活函数;

139、sigmoid 用于将全连接层的输出映射到类别概率分布,sigmoid层将全连接层的输出结果传递给sigmoiod函数,sigmoid函数将输入的实数值映射到0到1之间的概率值,全连接层的输出为,经过sigmoid函数后的输出表示为:

140、;

141、53)url-bert模型微调过程:

142、将微调数据集的标记级别嵌入向量与字符级别嵌入向量进行处理后的嵌入向量,使用预训练好的url-bert模型构建出的微调模型通过将数据输入模型,将输出结果与真实标签进行比较,然后计算损失函数,通过反向传播算法更新模型参数,迭代训练模型直至收敛,使得微调后的url-bert模型进行恶意域名分类。

143、所述对预处理后的预训练数据集和微调训练数据集进行分词处理包括以下步骤:

144、61)针对预训练数据集和微调训练数据集中的域名数据,分词操作将整个域名字符串按照其结构特性进行拆分,去除域名中的特殊字符,以“/”、“.”、“-”为分隔符对域名进行分词:

145、输入一个经过预处理后的域名,定义一个分词函数f来表示这一过程:

146、,

147、分词函数f()输入是一个经过预处理的字符串形式的域名,输出是一个由该域名分词后的片段组成的分词列表,其中, 为中单词内容的数量;其表达式如下:

148、<mi>t=f</mi><mi>url</mi></mfenced><mi>=[</mi><msub><mi>t</mi><mn>1</mn></msub><mi>,</mi><msub><mi>t</mi><mn>2</mn></msub><mi>,…,</mi><msub><mi>t</mi><mi>i</mi></msub><mi>,…,</mi><msub><mi>t</mi><mi>len(t)</mi></msub><mi>]</mi>,

149、经过初步分词后,利用bert分词器对进行嵌入处理;

150、62)进行词嵌入处理:为了标识输入序列的开始和结束,在开头添加[cls]标记,在结尾添加[sep]标记,并将token序列长度限制为128,对于长度未达到128个标记的输入序列,使用特定的填充标记[pad]来扩展序列长度,直至其达到128个标记的限制,得<mi>[</mi><mi>cls</mi></mfenced><mi>,</mi><mi>t,</mi><mi>sep</mi></mfenced><mi>,</mi><mi>pad</mi></mfenced><mi>,…,[pad]]</mi>;

151、63)进行段嵌入处理:将段嵌入全部设置为0,即:

152、<mi>[</mi><mi>cls</mi></mfenced><mi>,</mi><mi>t,</mi><mi>sep</mi></mfenced><mi>,</mi><mi>pad</mi></mfenced><mi>,…,[pad]]</mi>与相同长度的[0,0,0,…,0,0]相加;

153、64)进行位置嵌入处理:位置嵌入根据中token的不同位置信息编码位置向量,向url-bert模型引入token的位置关系,位置嵌入全部设置为0,即:

154、经过段嵌入处理的序列,与相同长度全为0的序列相加;

155、65)生成注意力掩码向量:使用注意力掩码向量区分输入序列中的实际标记与填充标记,

156、对于序列中的每个真实标记,其对应的注意力设定为1;对于每个填充标记[pad],其对应的注意力设定为0;生成注意力掩码向,其中1的个数为即:

157、经过位置嵌入处理的序列,与序列[1,1,1,…,0,0]相加。

158、所述进行字符级别嵌入包括以下步骤:

159、71)输入序列表示:首先,对于输入序列其中每个是子词分词的标记,是序列中子词的总数,每个标记由字符组成,其中表示子词的长度,

160、字符输入的总长度表示为;

161、72)字符向量生成:对于每个字符,都生成一个字符嵌入向量,

162、这通过将字符与字符嵌入矩阵相乘来完成,即,该过程将每个字符映射到一个高维空间中的向量表示;

163、73)bigru处理:生成的字符嵌入向量被送入bigru中进行处理,bigru操作的结果是生成每个字符的隐藏状态向量,

164、,隐藏状态向量包含了字符的上下文信息;

165、74)构建字符级嵌入:对于每个标记,其字符级嵌入向量组成了一个序列,这个序列被处理成一个标记级别的嵌入向量;

166、对于每个标记,将其第一个和最后一个字符的隐藏状态向量进行连接,得到标记级嵌入向量,通过对整个输入序列的字符进行处理,获得了每个标记的上下文字符嵌入向量,即域名字符级别的嵌入向量,其表达式如下:

167、。

168、有益效果

169、本发明的一种基于大语言模型的恶意域名检测方法,与现有技术相比采用了大语言模型bert来处理恶意域名,利用大语言模型强大的语义理解能力,可以更好地捕捉域名中的隐含信息和语境,提高恶意域名的识别准确性。同时,在预训练时引入了位置嵌入技术,充分考虑了域名中token的位置信息对于表示的重要性。通过将位置信息与token的语义向量相结合,能够更准确地表达不同位置上的token含义,从而提高了模型对于恶意域名的检测性能。

170、本发明还利用bigru提取字符级别嵌入,充分利用双向信息,更好地捕捉更细粒度的上下文信息,从而更全面地理解url数据,提高嵌入的准确性和表达能力。

171、在与传统的基于机器学习的特征提取方法相比,本发明可以避免手动设计特征,并且可以自动学习更高级别的特征表示。这种端到端的训练方式可以更好地适应数据的变化和复杂性,从而提高模型的泛化性能和可迁移性,提高应对对抗攻击的能力。与深度学习方法相比,本发明引入了位置嵌入,改善模型对序列数据的处理能力。同时还通过预训练任务以最大限度地提高模型的泛化能力和迁移能力,即使面对新的恶意域名分类任务,模型也能够快速适应并取得良好的效果。

172、综上所述,基于大语言模型的恶意域名检测方法在准确性和普适性方面具有明显优势。

本文地址:https://www.jishuxx.com/zhuanli/20240802/237151.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。