论文部分内容阅读
网络安全是我们永远无法回避的话题,不法分子在互联网上常常会使用域名作为传播网络攻击的手段,比如连接木马、僵尸网络通信等。速变域名和域名生成算法等技术的应用使得网络攻击更加隐蔽、恶意域名更难被识别,域名黑名单在这种情况下作用有限,而通过分析域名的DNS数据来识别检测恶意域名成为一种更有效的方法。本文首先调研了恶意域名检测的相关技术,分析了当前恶意域名检测面临的困难,总结了目前已有的技术方案以及相关研究成果,同时研究了机器学习分类模型和大数据技术,利用HadooP、Spark、Kafka等搭建了大数据分析的基础架构。在此基础上,本文从大量DNS数据入手,利用机器学习方法构建了基于DNS行为特征的恶意域名检测模型。通过分析DNS数据的统计分布,从4个维度提取了 22个特征,通过交叉验证比较随机森林和梯度提升决策树两种分类模型,测试证明随机森林在准确率、召回率等指标上具有优势。最后,基于大数据平台设计和实现了恶意域名检测系统,并将构建的检测模型应用到系统中。系统架构的设计考虑了输入来源、数据存储、执行效率、可扩展性等一系列问题,最终划分成4个功能模块。为了保证系统能够在高速网络中保持稳定可用,采取了许多性能优化方案,主要包括:使用网络流量的分流模型来提升高速网络流量的抓取能力;通过优化Kafka配置来应对网络流量的短时激增,提高系统的吞吐能力和稳定性;通过白名单过滤将在DNS数据中占据较大比例的流行合法域名的数据过滤掉,从而减少后续模块的数据处理压力;数据处理模块通过定时将域名聚合信息写入MongoDB,来减少对HDFS数据的反复读取和处理,等等。本文构建的模型和实现的系统均在实际网络中实际部署应用,进行恶意域名的在线检测。经测试,系统达到了良好的检测准确率和效率。