论文部分内容阅读
域名系统(Domain Name System,DNS,以下简称DNS)是最重要的互联网基础设施之一,许多互联网应用都依赖于DNS提供的正常解析服务才能有效运行。以往的研究表明,在无需考虑具体通信控制协议情况下,基于DNS协议流量数据,可对木马软件、僵尸网络、勒索程序等恶意软件所使用的恶意域名进行有效的检测识别。检出的恶意域名不仅可以作为跟踪恶意软件通信行为的线索,也可为采取进一步防御措施提供高效的参数。本文构建了一个恶意域名的检测模型。首先,基于离线DNS应答流量,本文利用解析程序提取离线包中的资源记录,并建立带有可视化查询接口的数据库。其次,通过搜集互联网安全厂商、安全研究机构等组织发布的域名与IP地址的黑、白名单,本文构造出实验所需样本数据集。依托于该数据库和样本集,本文先从概率模型角度,在实验中对支持向量机和随机森林算法的恶意域名检测效果开展对比研究。根据实验结果评估两者的综合效能,并将性能较优者作为识别手段应用于实际检测。然后从概率图模型的角度,本文在由样本集构建的概率图上,应用置信度传播算法,根据置信度阈值检测恶意域名。最后,本文将两种方法适当结合,对真实环境下的离线DNS数据开展恶意域名检测,以验证模型的实际工程效果。与以往的研究相比,本文在应用机器学习算法的过程中,对域名开展的特征工程加入了网络安全领域的经验知识,并对特征进行了适当的编码量化。相比于其他研究所使用的样本而言,本文采集的样本缺乏时间性的相关特征。但即使如此,实验对恶意域名的检测,仍然取得了相当良好的效果:平均精确率达91%,召回率不低于90%。实验结果在接受机操作特征曲线(receiver operating characteristic curve,以下简称ROC曲线)中,曲线下面积(Area Under Curve,以下简称AUC)达到0.97,证明泛化检测指标良好。同时,在真实的离线流量中,本文的模型利用两种检测方式进行迭代识别测试,恶意域名检出率可以从单一检测方式的27%提高到37%。该结果表明,本文提出的模型工程化后,可在大规模离线数据环境下,以恶意域名的检出作为线索,发现恶意软件通信活动的一种可行解决方案。