DGA 域名字符生成模型
域名字符分析
问题:理论上 GAN 中的生成器和判别器部分采用任意可微函数都能表示,因此其主要用于连续数据的处理,如图像生成、视频检测等[13]。基于文本的离散数据处理一直是深度神经网络研究的难点之一。
本文基于字符串的文本域名来构建生成网络, 在构造训练 GAN 之前,需要对域名数据样本做变换处理。
域名在构造上可分为两部分:主机名和域名(包括顶级域 及可能的二级域、三级域等)。DGA 域名在构造上一般用随机 算法来生成主机名,域名部分相对固定或变化较少。如symmi 的 DGA 域名hakueshoubar.ddns.net,其域名是由元辅音字符生 成器和 ddns.net 组合而成;Conficker.C 的 DGA域名plrjgcjzf.net、 gkrobqo.info 等也是由同频率的字符生成器和一级域名组合而成。
因此本文中在生成域名时不考虑域名数据集中的一二级域 名部分,只对DGA算法生成器的主机名的字符特性进行分析。 本文基于 GAN 的 DGA 域名数据生成模型主要包括域名 编码器、生成网络、对抗网络和域名解码器四个部分。
域名编、解码器
这里主要讲的是域名字符串通过字符Ascall码值转换函数、归一化变为域名张量,以及域名张量还原成域名字符串。
生成网络
生成网络由四层神经网络组成,包括输入层、隐含层和输 出层。其中输入层数据来源于高斯分布模型并随机产生 n=100 维的数据,激活函数采用 ReLu 函数。网络包含两层隐含层,节点数分别为 n=150 和n =300,激活函数亦采用 ReLu 函数。输出层节点数为 n =15(即域名向量维度),考虑到域名向量元素区间为 [1,0],因此