如何利用Fast flux技术提高基础设施的反检测能力,逃避安全监测(一)
2021-05-25
来源:关键基础设施安全应急响应中心
Fast flux技术利用DNS隐藏攻击的来源,至少自2007年开始就已有人使用它。DNS本来的工作方式是将域名转发给DNS解析器,获取对应的IP地址。使用Fast flux,攻击者可以将多个IP地址的集合链接到某个特定的域名,并将新的地址从DNS记录中换入换出,逃避检测。在早期的僵尸网络中,控制者通常会把C&C服务器的域名或者IP地址硬编码到恶意程序中,僵尸主机通过这些信息定时访问C&C主机获取命令。但同时安全人员也能够通过逆向恶意程序,得到C&C服务器的域名或者IP,利用这些信息定位C&C主机,安全人员就可以隔断C&C主机从而破坏僵尸网络。不少控制者为了保护C&C主机,使用Fast flux技术来提高C&C服务器的健壮性。在正常的DNS服务器中,用户对同一个域名做DNS查询,在较长的一段时间内,无论查询多少次返回的结果基本上是不会改变的。Fast flux技术是指不断改变域名和IP地址映射关系的一种技术,也就是说在短时间内查询使用Fast flux技术部署的域名,会得到不同的结果。对于攻击者而言,维持网络正常运行时间至关重要,以避免他们的收入来源遭受损失,包括网络钓鱼和诈骗活动、僵尸网络租赁和非法赌博活动。
攻击者构建Fast flux网络的动机与良性服务提供商类似,后者在系统中构建冗余以确保正常运行时间,例如,通过在域名系统(RRDNS)或内容传播网络(cdn)中使用轮询机制。主要区别在于,Fast flux网络被用来支持非法和恶意活动。因此,运营商需要依赖特殊的技术,如频繁更改IP地址,使用僵尸网络或防弹主机(主机提供商往往不响应删除请求)。防弹主机(Bulletproof hosting)是指对用户上传和发布的内容不加限制的一种网络或域名服务,这种服务被通常利用来发垃圾邮件,在线赌博或网络色情等。Fast flux网络之所以加了“Fast”字眼,是因为使用了DNS,它可以快速地在许多设备之间快速转化,每个设备只在很短的时间内使用,使得基于IP的屏蔽列表和删除工作变得困难。
在本文的讲解中,研究人员会提供了一个虚构的场景,即攻击者和执法部门之间的猫鼠游戏。研究人员说明了攻击者如何使用single Fast flux网络和更先进的技术,如double flux(当域名解析成为Fast flux网络的一部分时) 和域生成算法(DGA)来阻止域列表和删除工作。
Double-flux网络是一种更为复杂的Fast flux,因为DNS的A记录和NS记录都使用循环技术进行变化。DNS A记录返回一个32位的通常用来连接主机IP的IPv4 地址,而DNS NS记录建立一组特定的权威服务器,用于处理某段确定的DNS区域,这意味着,使用double flux技术进行攻击时,主机的IP地址转换,不仅是作为一个单一的DNS名称的一部分,而是整个DNS区域,也就是说想要定位攻击源几乎是不可能的。在传统的基于IRC服务器的僵尸网络中,找到中央IRC服务器就能够删除整个恶意系统,但在一个使用了Fast flux技术的僵尸网络中,你应该把成千上万个、位于世界各地的不同国家的主机全部打掉。
SingleFlux模式是指只有一层的变化的Fast flux。在SingleFlux中,一个域名拥有一个不断变化的IP地址列表,这个列表可能会有几百到上千条。为了实现频繁的变化IP地址,控制者提供最底层域名服务器,这个服务器会返回频繁变化的C&C服务器IP地址。如果在别人提供的域名服务器中频繁更改域名的IP地址列表,容易被管理者检测出来,导致僵尸网络暴露。
此外,研究人员介绍了三个案例,这些案例研究表明Fast flux技术可以应用于各种攻击场景中。研究人员观察到诈骗者使用Fast flux域来操作多种不同语言的社会工程页面,攻击者使用Smoke Loader恶意软件感染计算机,并使用Fast flux对其命令和控制(C2)域进行操作,最后,研究人员展示了如何使用Fast flux域来进行操作非法的成人和赌博网站。
Fast flux的攻击场景
Fast flux网络可以用于支持各种各样的犯罪活动,如网络钓鱼、诈骗、恶意软件传播和僵尸网络操作。为了解释Fast flux的工作原理并提供相关背景知识,研究人员将以一个虚构的钓鱼运营商Mallory为例。Mallory希望获得用户凭据,以便以后可以在各种黑市上出售他们。
以下是研究人员构建的一个虚拟的攻击场景,人物角色设置如下:
Mallory:发起网络钓鱼的运营商。
Bart:Mallory的朋友,负责攻击设备,建立僵尸网络。
Alice:rainbow银行的毫无戒心的顾客即受害者。
Emilia:rainbow银行安全负责人,负责防御和监测网络钓鱼攻击。
在Mallory尝试使用Fast flux攻击之前,Mallory了解到域名系统会将人类容易记住的域名(例如paloaltonetworks.com)转换为机器可以理解的IP地址(例如34.107.151.202)。这些IP地址是计算机在互联网上用来查找对方并能够进行通信的地址。
Mallory首先创建了一个模仿一家知名银行的网站rainbowbank[.]com,他建立了一个IP地址为10.123.34的虚假银行网站ralnbowbank。
可以看出Mallory创建了一个拼写错误的域名,将rainbowbank写成ralnbowbank,因为它看起来和银行的真实域名非常相似。一般来说,拼写错误的域名(ralnbowbank[.]com)是目标域名(rainbowbank[.]com)的拼写错误变体,其注册的目的是通过用户的输入错误或欺骗用户,让他们相信自己登录的是正确的目标域名,关于域名抢注的危险以及防御措施请点此详细查看。
接下来,Mallory付钱给他的朋友Bart,让他向rainbow银行的客户发送精心制作的垃圾邮件。这些电子邮件会伪装成银行通知,诱骗客户登录,理由就是他们的帐户凭证需要通过点击电子邮件链接进行验证。邮件中的链接将用户重定向到Mallory服务器上的钓鱼页面。因此,Mallory开始收集用户登录凭据。幸运的是,该假冒网站日前已经被报曝光了,执法人员Emilia迅速做出反应,关闭了Mallory网站的服务器。
但这只是下一波攻击的开始,Mallory已经看到了网络钓鱼是多么有利可图。因此他意识到下一次,他只需要确保Emilia不会那么轻易地发现他的钓鱼网站即可。这样在设置ralnbowbank[.]com时,Mallory就学会了如何为他的钓鱼域名设置多个域名记录,该记录包含他使用的服务器的IP地址。
Mallory还在他最喜欢的论坛hack-a-rainbow[.]com上发现了Fast flux 网络。于是他将该技术用于攻击中。他了解到,该技术最重要的部分是获取大量已经受到感染的计算机,这样他就可以快速切换DNS记录。
首先,Mallory编写了一个脚本,该脚本可以自动更新指向ralnbowbank[.]com的DNS记录的主机。下面是一个示例,该示例显示了Mallory在DNS服务器上配置的IP地址如何看待其网络钓鱼活动的开始。
如下面的示例所示,他的脚本经常更新DNS记录,以避免被检测到。请注意,Time- To- Live(TTL)值设置为一个较小的值,以确保早期的DNS响应不会被长时间缓存。Time- To- Live:IP数据包中生存时间是指容许这个数据包在到达其目的地之前通过多少个路由器。数据包每通过一个路由器,其生存时间都会由路由器减一。当生存时间降为零时, 路由器就会丢弃这个数据包。
图1描述了Mallory设计的Fast flux体系结构的外观。步骤1和2显示了由Mallory控制的DNS解析部分。此外,Mallory知道Bart使用僵尸网络发送垃圾邮件,所以Mallory问Bart是否可以提供几千个僵尸,并提出租用它们。Bart想,为什么不呢?他有时也会把这些设备租给他的其他朋友。这样Bart同意花几百美元让Mallory在这些设备上安装代理脚本。安装的代理脚本在设备和Mallory的主服务器之间转发请求,他喜欢将主服务器称为“Mothership”。图1中的步骤3-6显示了HTTP请求是如何通过僵尸网络代理的。基于DNS响应中返回的IP地址,用于代理的设备频繁更改。
Mallory的Fast flux结构
对Mallory来说,使用Fast flux网络是一个巨大的成功,而这一次,对Emilia和她的团队来说,清理Mallory设计的攻击活动要困难得多。接下来,研究人员将进一步讨论Mallory必须克服的其他障碍,以及他如何利用更高级的体系结构使其网络钓鱼活动对逃避和阻止列表更具攻击性。
先进的逃避技术
现在我们接着讨论Mallory和Bart可以利用的三种技术和策略来进一步改进其逃避功能的构建。
double flux
Emilia意识到无法关闭Mallory fast-flux网络中的所有托管服务器。幸运的是,Emilia想到了办法。如果Emilia团队无法追随主机,则他们应关闭为Mallory提供DNS解析的DNS服务器。在Emilia第二次成功地遏制了Mallory的攻击之后,Mallory更加坚信要应用一个快速修复,并将DNS解析本身移动到一个Fast flux网络。
为了理解Mallory的新体系结构是如何工作的,我们应首先使用图2来考虑DNS分级解析的外观。当Alice的计算机查询ralnbowbank[.]com时,它首先需要查询DNS根服务器以找到。com顶级域( TLD)名称服务器,它知道Mallory的名称服务器在哪里。其次,它查询TLD的名称服务器以到达Mallory的名称服务器,该服务器最终可以返回ralnbowbank[.]com的IP地址。
DNS解析如何工作的示例
Mallory了解了DNS的工作原理后,建立了一个Fast flux网络来取代他以前的名称服务器。这种设置称为double flux网络,如图3所示。他还能够迅速开始修改ns1.ralnbowbank[.]com 和 ns2.ralnbowbank[.]com的IP地址,ralnbowbank[.]com的名称服务器。
于是Emilia的团队再次陷入困境,似乎他们断掉所有主机的方法不再起作用。同样,IP黑名单对Mallory的double flux网络也变得无效。接下来Emilia该怎么做呢?