论文部分内容阅读
域名系统(Domain Name System,DNS)是整个网络世界中相当重要的一个组成部分,所有基于域名的应用在向用户提供各种各样服务的时候都会通过DNS将其域名解析成它们服务器的IP。但是随着全球科技的进步,整个互联网行业技术也在不断的发生变革,很多黑客和恶意组织将技术用来对DNS进行恶意攻击,破坏其正常的运行状态,因此DNS相关的安全问题不断的显现出来,而且各类针对DNS的恶意攻击事件也是时有发生,这对整个Internet的稳定性产生了相当大的影响。因此,及时检测出网络中存在的各种攻击行为对于DNS服务整体运营状况和安全状况的监管和维护能起到非常重要的作用。本文旨在针对DNS服务的海量日志数据,采用大数据分析思想以及机器学习相关技术和处理方法,根据DNS数据特点设计并实现恶意攻击检测方法,将恶意攻击行为的数据从DNS数据集中提取出来。其中技术方面主要基于Flume数据采集框架,Hadoop分布式数据存储框架以及Spark分布式数据计算框架来实现的。本文首先结合DNS的体系结构和工作原理介绍了 DNS的协议、实现和操作方面的一些脆弱性;然后对DNS海量数据安全分析和攻击检测过程的总体方案进行设计,根据设计思路最后实现整个检测方案,该方案包括了数据的采集和清洗过程、数据预处理过程以及核心的攻击数据检测过程。在攻击检测的实现过程中分析了DNS相关攻击行为的攻击过程和攻击原理,其中包括针对DNS的DDoS(Distributed Denial of Service,分布式拒绝服务)攻击,利用仿冒及钓鱼域名的攻击,基于DGA(Domain Generation Algorithm,域名生成算法)生成C&C(Command and Control,命令与控制)域名并形成僵尸网络实施的DNS攻击,基于DNS协议本身特性的DNS Tunneling攻击和Fast-Flux域名攻击。根据各自的攻击原理进而分析并总结出每一种恶意攻击行为的特点以及这些特点在DNS数据集上的特征体现,同时设计相关的提取和转换过程,进一步得到隐藏在数据集中的深度特征,然后利用这些特征集针对不同的攻击行为设计并实现了各自的检测方法和检测模型,包括直接按规则检测的方法和利用Spark提供的机器学习分类算法的检测方法。最后通过在Spark计算平台上运行检测模型的计算任务,依托Spark快速计算的优势,将恶意攻击数据从原始数据集中及时的提取出来。这些检测结果数据可以给安全人员对当前DNS服务的安全状况提供很重要的数据参考,同时也能给DNS安全防御的建设提供很大的帮助。目前该检测方案已经应用在了一些银行数据中心的DNS恶意攻击数据检测里,并且能较为准确的将恶意数据从海量DNS数据集中检测出来,整体的运行及检测状况良好。