论文部分内容阅读
僵尸网络已经成为当今Internet面临的最严重威胁之一,它们被作为高度受控的平台用于进行大规模合作的网络攻击,如:分布式拒绝服务,垃圾邮件,信息窃取等。因此,僵尸网络检测至关重要,安全研究人员已经提出了诸多有效的僵尸网络检测方法。 然而,僵尸网络制作者仍不断开发新的技术来改进僵尸程序,以逃避安全研究人员提出的检测方法。近年来,基于HTTP的僵尸网络愈加泛滥,已对众多政府组织和工业机构造成巨大破坏。新一代的HTTP僵尸网络多采取fast-flux,domain-flux或DGA(Domain Generation Algorithmically)技术来逃避检测,其中一些使用domain-flux技术来规避黑名单检测,而一些使用fast-flux技术来隐藏真实的命令控制服务器位置。 因此,本文主要研究目标是对使用DGA,domain-flux或fast-flux技术来逃避检测的HTTP僵尸网络构建检测方案。为此,本文解决如下三个问题:(1)研究在被管网或企业网中识别与检测感染DGA僵持程序的主机;(2)检测与识别使用domain-flux或DGA技术的C&C服务器;(3)检测恶意的fast-flux服务网络。此3项的主要研究内容概括如下: 第一个问题是如何在被管网或企业网中识别出感染DGA僵持程序的主机。为此,本文收集了多个知名的domain-flux或DGA-bot僵尸程序样本,如Kraken,Zeus,Conficker,Bobax和Murofet。然后在虚拟机环境中执行这些样本并获取相应的网络流量数据。通过检查和分析这些网络流量数据,本文发现这些僵尸程序样本在请求域名时呈现出相似的周期行为。另外,感染domain-flux或DGA-bot僵尸程序的主机在查找C&C服务器时经常会请求大量的非存在域名,且请求行为的周期时间间隔序列具有相似性。而一般的合法主机是不会以相似的周期时间间隔序列来访问许多不同域名,并且产生大量的非存在域名应答。这些相似行为仅发生在感染DGA僵持程序的主机上。因此,基于上述特征,本文提出一种通过分析DNS请求时间间隔序列对的关联性来聚类相似域名的方法,即同一僵尸网络或DGA算法所产生的域名相似性的方法。实验结果表明,相同DGA僵尸代码产生的域名会被划为同一类别中。请求某类域名的主机则被标记为感染相应domain-flux或DGA-bot僵尸程序的主机。该方法并不能适用于所有感染僵尸程序主机的检测。它只有效检测被管网内感染domain-flux或DGA类型僵尸程序主机。此项研究结果将有助于寻找新的C&C服务器检测方法,这也是本文今后的研究工作之一(第4章)。 第二个问题是如何检测出domain-flux或DGA僵尸网络的C&C服务器。已有一些研究工作关注此问题[1-4],而且这些方法也取得了一定效果。Yadav等[1]给出了一种基于所有域名一元和二元语法分布的DGA僵尸网络C&C域名检测方法。然而,该方法特别是检测Kraken,Bobax或Murofet僵尸网络产生的域名时效果欠佳,因为这些僵尸网络产生的域名与正常域名在一元和二元语法分布上没有较大差别。为克服此缺陷,本文工作目标是改进和扩展Yadav等[1]等人的工作。本文计算了正常域名的n-grams(n=3,4,5)的发生频率,并分别给每个n-gram评分。为区分一个域名是合法域名还是僵尸网络产生的域名,本文提出了一种方法来测量域名期望分值,并且结合其他两个特征来输入进事先训练好的分类器中。该分类器可用来从用户产生的域名中分类出僵持程序域名。本文使用5种不同机器学习算法的分类器,并评测了每种算法检测的有效性。实验结果表明,与其它算法相比,决策树算法(J48)效果最好,对domain-flux僵尸网络的检测更为有效。实验结果页证明本文所提方法可在被管网络中有效检测僵尸网络。该方法的具体细节可参考本文第4章。 最后一个问题是如何使用基于特征机器学习的分类方法来检测恶意fast-flux服务网络(FFSN)。关于FFSN的检测,已经存在一些方法[5-8]。由于FFSN的特点是一个或多个域名可被解析为许多(数百个或者数千个)不同的具有较短TTL,DNS应答快速变化的IP地址。因此,分类过程需要依赖所收集的各种用户所发送请求的完全非预测性时序数据。文献[5-8]所提出的方法使用少量的主动DNS流量记录,所以并不能完全获得恶意fast-flux网络的所有可能的解析IP地址。这个不足会造成假阳率与假阴率的增大。但是,此不足可通过使用被动DNS复制方法来解决。本文开发了用于从网络接口或pcap文件嗅探DNS请求的工具PassiveTool,并将DNS服务器应答输出到日志文件中(DNSlog)。此技术实际就是重建域名解析系统中心数据库中部分可见数据,并且能被查询和请求,如某个域名过去是指向什么地方,给定名字服务器的是什么域名?指向给定IP网络的域名是什么?某个域名下的子域名是什么?等等。本文也定义了DNSlog文件来方便跟踪和管理与每个域名相关的请求/应答信息。此外,Holz等人[7]关注从主动DNS请求中得出的三个特征(即,DNSA记录的个数,DNS NS记录的个数和自治系统的数量)。Passerini等人[8]使用9个不同特征,而本文使用16个特征来训练分类器。在此16个特征中12个特征是本文首次提出来。此方法的优点是能够对大范围的包括恶意域名在内的fast-flux域名进行检测进行非常有效的检测。实验结果表明本文方法能产生较低的的FPR(0.13%),相比之下文献[7]和[8]的FPR为6.17%和4.08%。该方法的具体细节可参见本文第5章。