论文部分内容阅读
域名系统DNS(Domain Name System)作为互联网中实现网络域名与IP地址相互转换的一种基础服务,得到了广泛应用。同时,DNS由于自身缺少对恶意行为的检测能力,经常受到攻击,如分布式拒绝服务攻击、垃圾邮件、点击欺诈和域名劫持等。因此,如何快速、准确地检测出恶意域名,防范恶意域名攻击,对于保障互联网正常运行具有重要的意义。本文综合考虑检测时间开销、精度和检测范围等问题,利用自然语言处理和深度学习的相关理论与技术,结合合法域名与恶意域名在词法构成上的差异,对待测域名进行分阶段检测。首先,利用域名黑名单封堵技术,在待测域名集中将具有与域名黑名单上恶意域名高度相似的域名进行快速过滤,减少待测域名的数量,形成新的待测域名集。其次,利用域名白名单词法构成分析技术,将新的待测域名集中不符合合法域名词法构成特征的待测域名进行过滤,再次减少待测域名的数量,形成最终待测域名集。最后,利用深度自编码网络提取多种家族恶意域名的多维字符特征,并结合机器学习中的随机森林分类算法,对最终待测域名集进行检测,识别并过滤掉其中的恶意域名,分阶段实现恶意域名的检测。本文主要研究内容如下:(1)利用基于词法特征的恶意域名快速检测算法实现待测域名的第一阶段检测。首先,根据域名的词法组成与结构,将所有待测域名按照长度属性进行正则化后赋予权值。然后,利用聚类算法将待测域名聚类分组,并利用改进的堆排序算法按照组内权值总和计算各域名小组优先级,根据优先级降序依次计算各域名小组中每一域名与恶意域名黑名单上域名之间的差异度值。最后,依据差异度值快速给出恶意域名的判定,并根据检测结果构造新的待测域名集。(2)利用基于词法分析与特征量化的恶意域名检测算法实现待测域名的第二阶段检测。首先,选择高频次正常访问的域名为域名白名单,在去除域名中的顶级域名后,利用N-gram方法对域名白名单中的域名进行分割,获取到包含语言要素的多个域名子串,并按照域名子串重复出现的频次给域名子串赋予权值。然后,通过分割新的待测域名集中的域名,并对照所得域名子串与合法域名样本子串,计算新的待测域名集中待测域名的信誉值。最后,根据信誉值大小给出恶意域名的判定,并根据检测结果构造最终的待测域名集。(3)利用基于多维字符特征的恶意域名检测算法实现待测域名的最后阶段检测。首先,将域名的分布式表征作为输入,构造单层自编码网络,并在网络的输入数据中加入噪声,通过学习原始输入数据与网络输出数据之间的重构误差,去除噪声,形成单层降噪自编码网络,增强网络的鲁棒性。其次,通过叠加多个单层降噪自编码网络,构造深度自编码网络,对域名的分布式表征进行逐层压缩,使网络能够提取域名的多维字符特征。最后,根据提取的多维域名字符特征并结合机器学习中的随机森林分类算法对最终待测域名集进行检测。通过在DGA Domain List、Conficker、Zeus、Phishing和Kraken等经典数据集上的测试,结果表明,将多维字符特征结合在一起,能够较好地实现新变种和新出现家族恶意域名的检测。