来源:《Detecting APT Malware Infections Based on Malicious DNS and Traffic Analysis》,SPECIAL SECTION ON BIG DATA FOR GREEN COMMUNICATIONS AND COMPUTING。清华大学
摘要:高级持久威胁(APT)是对互联网的严重威胁。借助APT恶意软件,攻击者可以远程控制受感染的机器并窃取敏感信息。DNS是流行的恶意软件用于定位命令和控制(C&C)服务器的常用方式。在本文中,我们提出了一种新的系统,该系统放置在网络出口点上,旨在有效地检测基于恶意DNS和流量分析的APT恶意软件感染。该系统使用恶意的DNS分析技术检测可疑的APT恶意软件C&C域,然后利用基于签名的基于异常的检测技术对相应可疑IP的流量进行分析。我们提取了14个基于大数据的特性,以描述与恶意软件相关的DNS的不同属性,以及它们被查询的方式,我们还定义了网络流量特性,可以识别远程控制的受损害客户的流量。我们建立了一个声誉引擎来计算一个IP地址的声誉分数使用这些特征向量在一起。我们的实验在一个大型的地方机构网络上进行了两个月,所有的功能都是用大数据进行研究的,其中包括了4亿个DNS查询。我们的安全措施不仅可以大大减少需要记录和分析的网络流量的数量,而且还可以提高系统的可持续性。
一、引言
目前,互联网上的高级持续威胁(APT)攻击正在增加;不幸的是,它们很难被发现。它是一套秘密的、持续不断的黑客过程,目标是具有高价值信息的特定实体,如政府、军队和金融行业。APT攻击的意图是窃取数据,而不是对网络或组织造成损害。一旦侵入网络,攻击者就会在被感染的机器上安装APT恶意软件。例如,恶意软件,例如特洛伊木马或后门,是为反病毒软件和目标网络的防火墙而量身定做的。它不仅用于在APT攻击中远程控制被攻击的机器,还用于在较长时间内从受感染的主机窃取敏感信息。APT恶意软件可以使用多态代码来规避反病毒软件,并使用允许端口上的协议绕过防火墙。
DNS是Internet的重要组成部分,它是负责将域名解析为相应IP地址的协议。不幸的是,除了用于帮助定位web服务器和邮件主机的良性使用之外,域名也容易受到恶意使用。为了远程控制被感染的机器,攻击者需要建立一个命令和控制通道。受感染机器与攻击者之间的命令和控制通道负责发送命令和传输数据。大多数恶意软件,例如木马、后门和其他远程访问工具,利用域名来定位他们的命令和控制(C&C)服务器,并与攻击者进行通信。例如,著名的恶意软件如Gh0st、PCShare和毒葛,都指示攻击者首先创建域和端口来定位命令和控制服务器。
在APT攻击中,恶意软件需要保持与C&C服务器的持久连接。攻击者广泛使用DNS来定位恶意软件的命令和控制服务器。因为如果攻击者将C&C服务器的IP硬编码到恶意软件二进制文件中,就会导致无法恢复的某种故障。一旦C&C服务器宕机或IP地址被检测到,被入侵的机器就会脱离攻击者的控制。另一个原因是,为了隐藏真正的攻击源,攻击者经常使用他们在不同国家和地区控制或管理的服务器作为代理。由于使用域名称可以灵活地更改恶意软件C&C服务器的IP地址,并迁移C&C服务器,因此它可以帮助攻击者更容易地隐藏代理服务器背后的真实攻击源。
通过分析虚拟机中的大量恶意软件样本,我们发现木马等远程访问工具(RAT)等恶意软件经常使用DNS特别是动态DNS来定位命令和控制服务器。动态DNS是一种可以实时更新名称服务器的方法。动态DNS提供者拥有许多现有的2LD域。用户只需注册一个新的3LD子域,并将IP地址映射到注册的新动态域名。一个未注册的新的3LD子域名可以很容易注册。对于像特洛伊木马这样的恶意软件,DDNS是一种天生的适合。动态DNS的主要便利是,用户可以随时更改域以指向新的IP地址。有大量的动态DNS提供商,例如,no - ip和DynDNS,且大多数都是免费的。
在本文中,我们的目标是检测APT恶意软件,它依赖于DNS来定位命令和控制服务器。以往的研究通过对DNS流量的分析来研究如何检测僵尸网络(见[1]-[3])。这些研究集中于检测恶意流量服务或利用域生成算法(DGA)的机器人。恶意流量服务与内容传输网络(CDN)服务类似。它利用了与CDN相同的理论。CDN是加速网站内容交付和减少web服务器滞后的常用方法。它是一个由许多不同国家和地区的机器组成的网络。每当用户向CDN网络的一部分web服务器发送请求时,最近的服务器将响应网站访问者。CDN是加速web服务器内容传递的有效方法。恶意流量服务是僵尸网络使用的一种DNS技术。内容传递网络与恶意流量网络的区别在于,CDN由大量合法服务器组成,而恶意流量网络由大量受感染的机器组成。Conficker[4]和Kraken是最近利用恶意流量的僵尸网络,因为它对探测和发现更有抵抗力。通过使用恶意流量服务( malicious flux service),可以减少发现和删除僵尸网络的机会。
域生成算法(DGA)可用于生成大量的域名[5]。它被许多恶意软件和僵尸网络所推广,比如Srizbi bots[6]和Conficker蠕虫[4]。受感染的机器每天都会产生大量的域名。例如,Conficker蠕虫每天生成5万个域名用于与C&C服务器通信。C&C服务器的域名是从域名列表中随机选择的。
APT的恶意软件与上面提到的僵尸和蠕虫非常不同。APT恶意软件的主要目的是远程控制机器和窃取机密数据,而不是发起拒绝服务攻击,发送垃圾邮件或造成损害。它需要在长时间的操作过程中保持高度的潜行性。例如,在那些机器人和蠕虫的例子中,攻击者需要使用命令和控制服务器来远程控制数千个受感染的主机。但是APT攻击者不使用相同的C&C服务器远程控制这么多受感染的终端用户机器,因为这样会增加暴露的风险。精心制作的恶意软件仅用于对其有价值的最终用户机器。
APT恶意软件的DNS行为特征与恶意流量服务和DGA非常不同。Flux service和DGA域有一些明显的特性。例如,从由域生成算法生成的域中提取“短生命”特性。因为DGA域仅在短时间内使用[7]。“字母数字分布”也是从DGA域中提取的特征,因为DGA域不包含“有意义”的单词[7], [8]。例如,恶意流量DNS流量也有一个明显的共同特征,即解析到域名的IP地址变化迅速。识别与APT恶意软件活动相关的恶意域名是一个挑战。APT攻击中精心制作的恶意软件不使用恶意流量服务或DGA域。APT恶意软件的域名是由攻击者注册的。与这些机器人和蠕虫相比,精心制作的恶意软件需要高度的隐身。因此,APT恶意软件的DNS行为特征不明显。很难分析大型网络中大量的入站和出站流量,比如大型企业和ISP。在一个大的网络中发现APT的恶意软件感染是另一个具有挑战性的问题。
在本文中,我们提出了一种新的系统“IDnS”,它被放置在网络出口点上,以检测APT恶意软件的感染,它依赖于DNS来定位命令和控制服务器。本文的主要贡献如下:
•利用恶意DNS检测技术和入侵检测技术的结合,将一个新的系统置于网络边缘,检测网络内的恶意软件感染。这种方法不仅可以大大减少需要记录和分析的网络流量,而且还可以提高系统的可持续性。
•我们通过研究大量的DNS流量(可以称为大数据)来定义14个APT恶意软件C&C服务器领域特性,包括动态DNS特性。其中7个在之前的作品中没有提出过。此外,还定义了异常的网络流量特性,以帮助识别被远程控制的受损客户的流量。
•我们使用使用这些特征向量建立一个声誉引擎来决定一个IP地址是否被感染。
二、相关工作
1、DNS恶意软件研究
研究人员最近提出了通过DNS流量分析识别恶意域名的方法。Notos[9]建立一个声誉引擎,为一个新的未知领域动态分配声誉评分,以判断它是否具有恶意。EXPOSURE[7]研究了DNS解析器下的一个本地域内的DNS查找行为,以检测恶意使用的域,如用于恶意流量的域、成人网站、垃圾邮件、网络钓鱼和恶意软件。在文献[10]中,它给出了系统EXPOSURE的摘要[7],它使用被动的DNS分析来自动检测恶意域名。相对于以往的研究,Notos[9]和[7],基于从本地递归DNS服务器上的DNS流量,Kopis[11]提供了一个新的有利位置,并引入了新的流量特性,通过在上面的DNS层次结构中监控上DNS的网络流量来获取流量的全局可见度。通过分析全局DNS查询,它可以准确地检测到恶意软件域。[12], [13]在DNS根服务器上分析DNS查找行为。Castro等人[14]和Brownlee等人[13]试图表征在DNS根服务器上有多少DNS流量是非法的。Gao等人[15]提出了一种新颖的方法来看待域名的共现和序列。它利用DNS查询中的时间相关性将恶意的域组隔离开来,但它需要已知的恶意域名作为锚。
还研究了通过监测和分析DNS流量来检测恶意软件活动的方法。一些方法侧重于检测利用恶意流量服务(malicious flux service)的僵尸网络。Perdisci等[16]旨在通过分析来自多个大型网络的递归DNS (rdn)流量来检测恶意流量服务。[8]开发了一种在网络边缘放置的系统,通过检测DNS流量中的恶意流量域来检测和减轻网络上的僵尸网络感染。不幸的是,APT攻击中精心制作的恶意软件不会使用恶意的流量服务或DGA域。[17]提出一种基于异常的机制,通过监测和分析DNS流量来检测僵尸网络。该机制依赖于分布式机器人同时发送的DNS查询中的组活动。作者提出了一些特征来区分僵尸网络和良性客户端产生的DNS流量。但他们只关注僵尸网络的群体活动属性,他们识别的功能不适合检测APT恶意软件。
以前的工作都没有试图识别APT恶意软件活动中涉及的恶意域名。本文重点研究了APT活动中精心制作的恶意软件的C&C服务器域名。我们提取了14个APT恶意软件C&C域特征,包括恶意DDNS的特征,其中7个特征在以前从未被提出。我们将被称为“IDns”的系统置于网络的边缘,并进行网络流量分析,以检测网络内受感染的机器。
2、入侵检测的研究
一般来说,网络入侵检测的主要研究包括基于签名的检测和基于异常的检测。基于签名的检测技术依赖于现有的签名数据库来检测已知的恶意软件感染。通过基于签名的检测技术,可以通过基于签名的模式匹配识别恶意软件C&C通信流量。因此,对于恶意软件感染检测来说,这是一种典型的方法。但是基于签名的检测技术有一个致命的缺点,如果新的恶意软件的签名不在现有的签名数据库中,它就无法检测到新的恶意软件感染。
Snort[18]是一个著名的基于签名的网络入侵检测系统。Snort在VRT中有许多用于检测恶意代码和可疑网络活动的规则。这些都是很好的消息来源,有许多优秀的规则来检测各种各样的威胁,包括恶意软件。在本文中,Snort由于其受欢迎程度和熟悉程度而被选中。以往的研究都集中在Snort的优点和缺点[19], [20]。只要攻击是预先明确定义的,就有低的误报,但是很难发现新的或未知的攻击。
基于异常的入侵检测[21], [22]是一种检测偏离“正常”行为的异常行为的技术。网络的“正常”行为首先需要研究和识别。基于异常的入侵检测的主要优点是能够检测新的或未知的攻击。因为新的或未知的恶意软件的签名不可用,也会产生异常行为。基于异常的入侵检测的主要缺点是,它更容易产生误报。由于不同网络和应用的行为是如此复杂,“正常”的行为很难准确识别。与基于签名的检测不同,基于异常的入侵检测是一种基于检测异常行为的更广泛的匹配。许多合法的应用程序执行与恶意程序相同的异常行为。
Mcafee[23]向我们展示了识别APT恶意软件命令和控制(C&C)通信流量的高级检测技术。它还分析了APT恶意软件与C&C服务器通信时产生的流量,并提取了一些服务器APT恶意软件的网络特性,其中包括变种Gh0st和毒葛。卡巴斯基实验室[24]介绍了许多APT的恶意软件和网络运动,包括方程”、“面具”、“BlackEnergy”和其他著名的APT活动。他们的报告包括C&C域名和APT恶意软件的C&C服务器IP地址。
三、方法的概述
1、提取用于检测的特性
IDns的设计目的是检测在APT攻击中用于制作恶意软件的恶意域名,并检测被感染的机器。出于这个目的,我们对大量的DNS流量进行了分析,这些流量可以称为大数据。我们还分析了大量可疑的恶意软件C&C服务器的网络流量。
我们从大数据中提取的特征包括恶意DNS特征和网络流量特征。通过对DNS流量的研究,我们获得了能够定义APT恶意C&C域的可识别DNS特性。通过研究恶意软件和良性应用程序的行为,我们获得了能够定义APT恶意软件C&C流量的可识别的网络流量特性。网络流量特性,包括基于签名的检测特性和基于异常的检测特性,可以帮助识别被精心设计的恶意软件远程控制的受感染客户的流量。
2、系统的架构
图1显示了系统“IDnS”的体系结构。它由四个主要单位组成:
数据收集器:将其放置在网络边缘,以记录由网络生成的入站和出站流量。
恶意DNS检测器:负责分析网络生成的入站和出站DNS流量,检测可疑的APT恶意软件C&C域。它将检测可疑的APT恶意软件相关领域,并为系统的“网络流量分析器”提供相应的可疑的C&C服务器IP地址。
网络流量分析器:它由基于签名的检测器和基于异常的检测器组成,用于分析可疑的C&C服务器IP地址的网络流量。基于签名的检测器已经定义了C&C通信流量签名,用于检测系统已知的恶意软件。基于异常的检测器检测异常行为,包括协议异常、统计异常、应用异常等。当未知或新的恶意软件被基于异常的检测器识别时,将定义新的签名。所有已识别的C&C通信流量签名将被收集到我们的TM(目标恶意软件)族。
声誉引擎:它的目标是通过使用恶意的DNS和网络流量特征向量,来计算IP地址的信誉评分来判断主机或服务器是否感染了IP地址。
3、恶意的DNS特征
在本文中,我们根据大数据识别出14个特征来检测APT恶意软件的命令和控制域(见表1)。其中7个特征之前没有提出过。我们还对以前提出的一些旧的特征给出了新的解释。在本节中,我们将详细介绍本文中提出的14个特性,并解释它们可以用来检测APT恶意软件命令和控制域的原因。
3.1基于域名的特性
每一个域名都是按句点分开的。最后一部分称为顶级域(TLD)。二级域(2LD)是最后两个部分。第三级域(3LD)是最后三个部分,等等。例如,给定域名“a.b.c.com”,域名的TLD为“com”,域名的2LD为“c.com”,域名的3LD为“b.c.com”。对于动态DNS, 2LD“c.com”是DDNS提供商现有的部分。“b.c.com”中的第三级子域名“b”是由用户创建的。我们提取了三个基于域名的特征,第三级子域名是DDNS(动态域名),其中包含了著名的名称、特定的名称或网络名称。在以往的研究中,这3个针对恶意软件C&C动态域名的功能从未被提出过。
包含著名的名称:我们发现有趣的是,许多注册于C&C服务器的动态域名可以告诉我们他们自己高度怀疑。我们可以用名字来告诉他们。就像我们能说的,一个穿警服的长发男人是一个假警察。许多注册的可疑动态域名包含著名的域名,如windows,yahoo 和 taobao。我们知道,这些动态域名几乎不可能用于微软、雅虎或阿里巴巴。
包含特定的名称:我们还发现为C&C服务器注册的许多动态域名包含一些特定的名称,如“web”、“mail”、“news”和“update”。这些特定的名称不仅使这些域名容易记住,而且使这些域更像普通的域名。正如所观察到的,这个特定的名字和著名的域名通常是一起使用的,比如“yahoomail.xxx.com”、“yahoonews.xxx.com”和“windowsupdate.xxx.com”。
包含钓鱼名称:网络钓鱼是一种通常用于社会工程攻击的技术。攻击者欺骗受害者访问一个恶意网站。当受害者进入钓鱼网站时,会试图在受害者身上安装恶意软件。为了欺骗用户,我们都知道phishing域与合法域名有类似的名称。比如“youtuhe.com”,“youtube.com”,“yah00.com”和“yahoo.com”等。我们注意到,许多恶意的动态域名被用于RAT工具的命令和控制服务器,而不是欺骗服务器,也有一个类似于合法域名的网络钓鱼域名。
3.2 DNS问答功能
Silent IP:隐藏C&C服务器和C&C网络流量,当攻击者不需要向受害者机器发送命令时,他们不希望域名指向C&C服务器。在那一刻,攻击者通常会更改域以指向某些特定的ip。具体的IP地址通常为:127.0.0.1(回行地址),192.168.x.x,172.16.x.x,x 10. x.x(私有地址);. x.x.x.255(广播地址)。
预先定义的IP:在APT攻击中一些高级的恶意软件改进了这个方法。当攻击者在开发和编码高级恶意软件时,一个预定义的IP被硬编码到恶意软件二进制文件中。静默机制的工作原理是这样的,当域被解析为预定义的IP时,恶意软件就会转向silent模式,并且在域被解析到另一个IP地址之前不会启动连接。预定义的IP地址通常是一些具有明显特征的无效IP地址,比如5.5.5.5、2.3.3.2。在本文中,这个特定的IP地址和预定义的IP地址都被称为Silent IP。在之前的研究中没有提出预定义IP的特性。
不同的IP地址和不同国家的数量,为了隐藏真正的攻击源,攻击者通常使用服务器位于不同的国家或地区他们控制或管理着C&C服务器。对于攻击者,C&C服务器最好不要驻留在攻击者或受害者的同一个国家。因为如果C&C服务器位于受害者的同一个国家,受害国就更容易分析这次攻击。如果C&C服务器驻留在攻击者的同一个国家,那么跟踪真实的源就更容易了。之前的工作中使用了这两个特性来检测僵尸网络[12], [16]。
共享相同IP的域数量:这也是EXPOSURE以前提出的一个特性[7]。我们研究并训练这个特性来检测恶意的动态DNS,它也同样有效。在APT攻击场景中,单个攻击者在同一时间内很少拥有超过30个动态名称来定位命令和控制服务器,因为这不是必需的,而且很难维护它们。因此,恶意动态域的数量共享相同的IP,定义小于30。
已知的C&C服务器的B类范围内的IP:我们对已经检测到的C&C服务器的数量进行了统计分析。结果显示,在相同的B类IP地址范围内,甚至在同一类范围内,有许多C&C服务器。这可能有两个原因。第一个是越来越多的攻击者租用VPS服务器作为C&C服务器。因为VPS服务器是稳定的,很难追溯和管理。从同一服务提供者租用的VPS服务器大部分在相同的B类IP地址范围内,甚至在同一类范围内。第二个原因是,一些高级攻击者为C&C服务器构建了特殊的网络。
3.3基于时间价值的特征
每日相似度:此特征是在EXPOSURE提出的[7]。他们检查是否有一些域显示他们的请求计数随时间变化的相似性,每天相同间隔的请求计数的增加或减少。在我们的检测中,我们检查这些域是否每天在相同的时间间隔内改变IP地址。例如,有组织的APT攻击者通常会在一天工作时间的开始时更改域指向C&C服务器,并在一天工作时间结束时更改域以指向静默IP。一些恶意软件通常在每天相同的时间间隔连接到C&C服务器,监控DNS请求的一致间隔将会有所帮助。
同一时间窗口中相同的查询数量:此特性意味着在同一时间窗口中,域查询的数量大致相同。当被感染的主机联机时,但由于某种原因存在连接失败。受感染的主机将会错误地发送DNS错误并发送大量的重复DNS查询。
非常低的频率:这是在以前的工作中从未提出过的一个新特性。我们发现,一些高级的APT恶意软件查询域以非常低的频率定位命令和控制服务器,在一个时间内,甚至是几个星期。我们认为这些域的行为是为避免被高级APT攻击者发现而设计的。正如所观察到的,这些域还有其他共同的特性。大多数域都是web服务器,这些web服务器在网站内容和设计中也有共同的特性。域名的解析IP地址和时间(TTL)都是稳定的。
3.3TTL价值特性
Time To Live (TTL)是由权威的名称服务器为DNS记录设置的。TTL是指解析器可能缓存域的响应结果的时间。如果存根解析器在TTL过期之前查询缓存名称服务器,那么缓存服务器将简单地使用已缓存的资源记录进行应答,而不是从权威的名称服务器中检索它。
平均TTL:将主机名的TTL值设置为较低的值可以帮助攻击者快速更改C&C服务器。此外,基于我们的测量,动态域名服务的TTL值,如dyndn、NO-IP和ChangeIP,通常设置为30、31、60,300秒。但并不是所有的恶意软件C&C域都将TTL值设置为更低的值。正如我们在“非常低频率”中提到的,有高级的恶意软件域设置更高的TTL值,如观察到的86400秒。因为他们几个星期都不改变解析IP地址。
3.4探索功能
上面列出的恶意DNS特性都是基于被动分析的。在此部分,我们提出了主动探测方法来帮助检测恶意域名。
Web服务器与否:我们建议使用这一新方法探测域的80端口,并检查它是否是真实的Web服务器。如果一个域保持TCP端口80打开而不是一个web服务器,它是高度可疑的。我们可以检查它是否是一个命令和控制服务器保持TCP端口80开放监听被感染的主机通过分析响应数据包连接。但是如果它是一个web服务器,我们不能确认它是一个命令和控制服务器。因为攻击者可以使用web服务器作为命令和控制服务器。
Whois信息:通过查询Whois,我们可以获得更多的域名信息,如注册日期、注册商、注册人姓名、注册电子邮件和注册国家。将这些信息与之前已知的恶意软件C&C域的信息进行比较是一种有效的方法。例如,著名的APT恶意软件“等式”的所有C&C域似乎都是通过相同的两个主要注册商注册的,使用“代理域”来屏蔽注册者信息。
4、网络流量特性
我们的系统IDnS使用基于签名的检测和基于异常的检测一起为监控网络提供最大的防御。
4.1基于签名的检测功能
规则集在基于签名的id中起着至关重要的作用,规则的数量和准确性决定了可以检测到多少感染。为了应用众所周知的基于签名的IDS的公共开放规则集,我们使用来自snort的VRT规则集[18]的规则。我们的系统侧重于检测恶意软件感染,所以适用于该系统的规则主要来自恶意后门规则、恶意数控规则、恶意程序和黑名单规则。经过长时间的检测,系统检测并确认了大量恶意DNS检测和基于异常检测的恶意软件感染。
我们在本文中提到的基于签名的检测功能是指当恶意软件与C&C服务器通信时产生的C&C网络流量的特征。通过分析恶意软件与指挥和控制服务器通信时产生的网络流量,我们提取了21个未知恶意软件或木马的网络通信特征。我们将未知的恶意软件归到我们的TM(目标恶意软件)家族,因此我们的TM(目标恶意软件)家族中的所有恶意软件都可以被习惯性地检测到。我们将在未来继续做这项工作,因为它是检测恶意软件感染的有效方法。
当恶意软件与命令和控制服务器通信时产生的网络流量更倾向于具有一致的特性。这是因为攻击者在受感染机器和控制服务器之间建立的命令和控制通道是稳定的。恶意软件用于与C&C服务器通信的C&C协议通常具有一致或常规的内容[23]。
例如,在我们的TM(目标恶意软件)家庭中,恶意软件TM1通过HTTP协议启动了一个连接到命令和控制服务器的连接,URL参数始终是一致的。TM1有一致的URL参数“GET/1/login.php?u=YmFsY2s=&p=cGFzc3dvcmQyMDE1 HTTP1.1”。我们TM家庭的另一个有针对性的恶意软件TM2有常规的URL参数“GET/{6characters}.php? id={12 characters} HTTP1.1”这12个字符是受感染机器的加密MAC地址。当恶意软件通过HTTP协议与命令和控制服务器通信时,分析HTTP报头是一种用于检测恶意软件通信的通用方法。我们可以在HTTP POST/GET请求中从URL参数、内容类型、内容长度和用户代理中提取网络流量特性。
一些APT恶意软件通过HTTPS协议与命令和控制服务器通信。在这种情况下,检测一致或常规的URL参数不起作用,因为URL内容是加密的。还有一种方法可以检测HTTPS C&C流量。因为通过HTTPS协议与命令和控制服务器通信的恶意软件具有一致的安全套接字层(SSL)证书。在SSL证书中检测一致的默认值也是检测恶意软件感染的有效方法[23]。
4.2基于异常的检测特性
基于异常的入侵检测是基于对网络中异常行为的检测。基于签名的方法需要一个已知签名的数据库。基于异常的入侵检测需要定义异常或正常的行为。我们定义了APT恶意行为,包括协议异常、统计异常、应用异常:
协议和端口(协议异常)的错配:为了通过目标网络的防火墙,恶意软件通常使用防火墙允许C&C通信的协议和端口。正如所观察到的,恶意软件与C&C服务器通信的最流行的端口是80、8080、443、8000、1863等等。恶意软件与C&C服务器通信的最流行的协议是HTTP和HTTPs。C&C通信协议是在编码阶段由恶意软件开发人员设计和实现的,而当攻击者在使用C&C服务器的时候对其进行配置时,就会创建域和端口。由于任何端口都可以由远程访问工具用户配置,所以有时会发生协议和端口的不匹配。例如,HTTP协议通信不发生在端口80或8080上,或者在端口80上发生非HTTP协议通信。它们都很可能是恶意的流量。
加密数据在不常用的端口(协议异常)上传输:不是所有的恶意软件都在常用的协议端口上与C&C服务器通信。一些恶意软件有时会与一些端口上的C&C服务器通信,而这些服务器很少被合法的应用程序使用。而大部分的APT的恶意软件C&C的流量数据被加密以躲避检测。因此,在不常用的协议端口上的加密数据也可能是恶意的流量。
上行链路和下行链路的不匹配(统计异常):正常情况下,下行数据流量到主机的流量比上行流量到服务器的流量要大。但是C&C通信流量是截然相反的。被感染的主机上传到控制服务器的数据流量总是大于从控制服务器接收到的数据流量。例如,HTTP请求的流量远远超过HTTP响应,这很可能是恶意的流量。
许多小数据包长TCP连接(统计异常):当攻击者发送的命令集受感染的机器,命令,如文件资源搜索命令,文件下载命令需要很多等待时间,加上人类的思考时间,使连接会话持续时间更长。由C&C服务器发送给受感染主机的命令集是所有小数据包。
心跳包流量(应用程序异常):在被感染的主机客户端连接了命令和控制服务器后,服务器将发送数据包给客户端,确保另一端在线。这种包称为心跳包。由于心跳包的大小类似,我们将所有数据包按数据包大小分组,并检查同一集群中的数据包是否定期发送。
恶意软件领域的流量:正如我们在实验中所观察到的,C&C服务器的流量在大多数情况下都是平滑的,但是当攻击者从受感染的主机上传数据到C&C服务器时,其流量就会达到峰值。
图2显示了一天24小时内3个恶意软件域(C&C服务器)的流量。domain3的C&C服务器控制了2个受感染的主机,攻击者在10:00-11:00时从第一个主机窃取了18.2MB的数据,从另一个被感染的主机窃取了14.1MB的数据,时间是15:00-16:00PM。由于没有上传数据,其他2个域名的流量一直保持平稳,大约每小时4KB和16KB。
根据流量分析,监控网络中的大多数主机不知道恶意软件域,并与C&C服务器通信,除了受感染的主机。另一个原因是,感染宿主的心跳包很小,而且感染宿主并不总是在网上。大多数恶意软件都是为了特定目的而窃取信息。在受感染的计算机中有许多文件,我们对恶意网络流量的研究表明,攻击者更喜欢从受感染的计算机窃取办公文档,比如doc、xls和pdf。攻击者还喜欢上传诸如WinRAR之类的压缩工具来打包一些文档文件。
5、建立检测模型
5.1构建训练数据集
训练数据集在机器学习算法中起着重要的作用[25]。我们的目标是训练一个分类器,它可以识别用于制作恶意软件C&C服务器的域,并训练一个声誉函数,它可以判断一个IP地址是否被恶意软件感染。
为此,我们收集了大约1000个用于制作恶意软件C&C服务器的域,并收集了1000个良性域来构建训练数据集。我们正在讨论的训练集中的这些恶意域是用于制作恶意软件的C&C服务器域,不包括恶意流量或DGA(域生成算法)域。我们从malwaredomains.com [26], VRT规则集[18],apt.securelist.com[24]等收集恶意软件C&C服务器域。不同于Notos[9]和EXPOSURE[7],我们充分利用了在网络中部署的“病毒邮件检测系统”,并从数百个恶意软件样本中提取了数百个恶意域名。将病毒邮件发送到特定的目标,并附带带有漏洞的文档和特洛伊木马程序,已经成为APT攻击中最重要的攻击载体之一[27]。
我们系统的训练期是前四个星期。在这四个星期的时间里,恶意软件C&C领域的“基于时间的行为”可以被更好的观察。在最初的4个星期里,我们在一个具有不同价值的大型地方研究机构网络进行试验,我们还在网络中标记了大约500个恶意域名和超过200个受感染的机器,通过人工分析网络连接到每个可疑的C&C服务器域,并对网络中每个受感染的主机进行人工验证。我们在构建恶意域名列表和感染主机列表时是保守的。我们在给域名贴上恶意的标签之前,先进行初步检查,IP地址是被感染的,然后用在我们的训练设备上,每一种感染都通过现场检查和人工验证通过研究机构的网络管理员的合作来确认。我们的训练数据集里的1000个良性域是从Alexa top 1000域收集的[28]。
5.2恶意DNS检测器分类器。
恶意DNS检测器的分类器采用J48决策树算法。J48决策树是基于C4.5算法的,它已经被证明有效地分类了EXPOSURE的良性域和恶意域[7]。J48决策树分类器是在训练期间建立的。每个节点都在检查某个属性的状态。这棵树的每一根树枝都代表了这项研究的结果。
5.3信誉引擎
我们系统的信誉引擎(参见图3)负责检测具有IP地址i的网络内部的主机是否具有类似于受感染的主机的行为。它计算一个IP地址的信誉评分。声誉评分在0和1之间。得分0代表低信誉(意味着恶意软件感染),得分1代表高声誉(它意味着没有被感染)。我们将这个声誉函数作为统计分类器来实现。
我们使用了三个模块,分别是恶意DNS检测器模块、基于签名的检测器模块和基于异常的检测器模块,分别计算三个输出向量MD(ip i)、SD(ip i)和AD(ip i)。在计算了向量MD(ip i)、SD(ip i)和AD(ip i)之后,这三个特征向量将被串联成一个特征向量V(ip i)。V(ip i)将被输入到训练有素的声誉函数中。信誉函数负责计算分数S = f(ip i)。S在0和1之间变化。结果0代表低信誉,这意味着恶意软件被感染。结果1代表较高的声誉,意味着没有感染。较低的价值代表较低的声誉。声誉函数使用数据集 L = {(V(ip i )), y i } i=1..n。如果ip i是被确认的感染宿主,y i = 0,否则y i = 1。
6、评价
我们的实验是在一个大型的当地研究所的网络上进行的,持续了8个星期。注意,在两个月的实验期间,试验的前四个星期是训练期,最后四周是测试。这个大型的地方机构网络是一种具有高价值信息的网络,它往往受到高级持续威胁攻击者的攻击。该网络在边缘有一个专业的流量监控设备,可以监控大量的入站和出站流量,包括DNS流量和C&C服务器流量。在两个月的实验期间,大型的本地研究所网络拥有超过3万名用户,我们监测了大约4亿个DNS查询。
如果不部署任何过滤器,记录和分析大量的流量是不可行的。因此,使用两个过滤器减少了DNS流量。第一个过滤器是白色列表中最流行的域。Alexa的前1000个站点[28]和所有的都有相同的著名的2LD或3LD域被收集到白名单中。通过部署第一个过滤器,可以减少20%的监控流量。第二个部署过滤器是在我们观察的网络中被超过1000个主机查询的域。在实验的前3天,我们记录并通过网络中查询主机的数量对域进行统计。与恶意的flux域和DGA域不同,在APT攻击中精心设计的恶意软件的C&C服务器域很少被用于太多的受感染的机器。通过部署两个过滤器,可以减少85%的流量。第二个部署过滤器使记录和分析流量变得可行。
专业的流量监控设备可以通过“源IP地址”、“目的地IP地址”、“源端口”或“目的端口”等规则为我们提供监控流量。在实验期间,我们可以将可疑的C&C服务器IP作为“源IP地址”和“目标IP地址”的规则提交给监控设备。因此,我们的系统应该记录和分析的C&C服务器流量很小。
6.1评价分类器和信誉函数。
为了评估我们的“恶意DNS分类器”和“信誉函数”的真实阳性率和假阳性率,我们用10倍交叉验证和66%的分割率进行了训练数据集的评估实验。66%比例分割意味着66%的训练数据集用于训练,其余34%是用于检查。表2展示了这个评估实验的结果。10倍交叉验证和66%的分割评价实验表明,我们的恶意DNS分类器和信誉函数的真实阳性率约为96%,假阳性率约为1.5%。
我们的系统的最终目的是检测未知的恶意软件C&C域和精心制作的恶意软件感染。评估必须显示它能检测到未知的恶意软件C&C域以及在训练数据中不存在的恶意软件感染,为了达到这个目的,我们使用了过去四周的实验数据。
因为这个实验是在一个大型的地方机构网络上进行的,所以要用真实的数据集来确定真实的正确率是很有挑战性的。为了建立一个基本的事实,在过去的四个星期里,我们从VRT规则集[18]中收集了900个域名[0],在这个网络中部署“病毒邮件检测器”中电子邮件附件的恶意软件样本[26]。所有收集的域在之前的训练数据集中都没有使用过。在过去四个星期内,在网络中被感染的机器请求了900个收集的区域中的426个。其余的474个域没有被查询。在实验中,在426个域名中,有408个域名被IDnS检测为恶意软件C&C域名。实际阳性率为95.8%。通过对已知恶意域名的C&C服务器网络流量的人工分析,以及对可疑感染主机的现场检查,发现197台机器被感染。在这些设备中,有188台机器被检测到被IDnS感染。声誉函数的真实阳性率约为95.4%。
在过去4周的实验期间,459个域和227个机器被检测到被IDnS的恶意和感染。如上所述,我们通过人工网络流量分析、现场检查和验证确认了所有的恶意领域和感染。结果显示,被识别的恶意软件C&C域的假阳性率约为2.9%,而被识别的受感染机器的假阳性率约为3.4%。
6.2对系统可持续性的评价
我们对已经识别的200c&c服务器的流量进行了统计,并在表3中示出一天的结果。我们还发现,单个C&C服务器的流量每天可能会发生很大的变化,但是对于大量的C&C服务器来说,总的流量和流量的比例并没有太大的变化。它说明了C&C服务器IP在正常情况下每天的流量较小,而该系统的网络流量分析仪只需要分析较少的流量。
如果不知道哪个IP地址是可疑的C&C服务器,大多数当前基于网络的入侵检测系统都需要监视和分析所有的流量。对于基于签名的IDS,很难实时处理大型企业和ISP网络的大量流量。对于基于异常的IDS,记录和分析大量的流量是不可行的。本文的安全方法可以大大减少需要记录和分析的网络流量。它可以提高系统的可持续性。
7、与以前的工作相比较
7.1EXPOSURE:使用被动DNS分析发现恶意域名
EXPOSURE[7]是一种使用被动的DNS分析来检测涉及到恶意行为的域的系统。作者还提出了15个行为特征,用于识别恶意域名。对于检测僵尸网络,对其特征的解释。提取的结果表明,EXPOSURE的重点是利用恶意通量和域生成算法(DGA)检测僵尸网络。
在“基于时间的特性集”中,提出了“每日相似性”的特征,以检测“每天同一时间间隔内请求计数的增加或减少”。这个特性是基于僵尸网络经常使用的恶意流量服务而确定的[16]。从域中提取特征“短生命”,因为他们认为每个bot都可以使用域生成算法(DGA)。DGA域仅在短时间内使用[7]。
在“TTL价值的特征集”中,基于Conficker蠕虫追踪一周,提出了“不同TTL值”和“TTL变化数”的特征。Conficker是一个使用DGA的恶意软件。他们提出的功能不能用于在APT攻击中探测精心设计的远程访问工具(RAT),因为APT攻击者很少使用域通量技术或DGA。
在“基于域名的特性集”中,“数字字符%”,“LMS(最长的有意义的子字符串)长度的百分比”显示的EXPOSURE并不适合于检测APT恶意软件。APT攻击中使用的域,无论动态域名(DDNS)还是没有,都是由攻击者手动注册的,它们没有定义的暴露的特性。
7.2在DNS流量中通过监视组活动来检测僵尸网络
[17]提出了一种通过监测群活动DNS流量来检测僵尸网络的新机制。他们专注于检测一组bot,被称为僵尸网络,由C&C服务器远程控制,可用于发送垃圾邮件、发起DDoS攻击等。作者定义了“群体活动”以检测僵尸网络。根据判断僵尸网络域的机器人数量是固定的,该特征被识别出来。组活动是由多个分布式机器人发送的同步DNS查询形成的。大多数合法域名都是连续查询,但不是同时查询。
这种基于异常的检测机制可以检测到未知或未知的僵尸网络。但是这种方法有内在的局限性,它只能检测到僵尸网络由大量的bot组成。为了减少被检测到的风险,高级攻击者很少使用相同的C&C服务器和域来远程控制大量受损害的终端用户机器。
8、讨论
本节讨论了IDnS的优点和局限性。首先执行恶意的DNS分析,以找出在我们的方法中命令和控制服务器的可疑IP地址。只通过网络流量特性分析,IDS有时无法准确判断主机是否被感染。但结合恶意DNS流量分析,IDS可以显著提高检测精度。恶意的流量特性发生在流量到可疑的恶意IP确实有很低的声誉的正常流量。这种方法的另一个优点是它可以提高系统的可持续性。对于一个大而高速的网络来说,记录和处理所有入站和出站的流量是非常困难的。这种方法可以大大减少需要记录和分析的网络流量。主要的限制是,IDnS不擅长检测不依赖于域的恶意软件感染,比如木马直接使用IP地址来定位命令和控制服务器。经过长时间的检测,我们收集了许多命令和控制服务器的IP地址。通过分析C&C服务器的流量,这也可以帮助检测不依赖于域的恶意软件感染的部分。此外,该系统的管理员还可以提供他们想要集中于系统的流量分析器的IP地址。