《AmpPot: Monitoring and Defending Against Amplification DDoS Attacks》论文笔记

1 论文概况

  • 题目:监视和防御DDoS反射放大攻击
  • 会议:RAID(International Symposium on Recent Advances in Intrusion Detection) —— CCF 网络与信息安全 Rank B
  • 时间:2015
  • 简介:该论文设计了一种新型的可以捕获DDoS反射放大攻击流量的蜜罐,根据暗网流量和蜜罐流量从各个角度分析了反射放大攻击,最后提出了利用蜜罐辅助防御反射放大攻击的方法。

2 研究原因

  1. DDoS攻击多年来一直威胁着关键的互联网基础设施,近年来反射放大DDoS攻击越来越受欢迎。反射放大攻击能够用非常少的资源造成GB级别攻击流量,危害极大。
  2. 获得攻击的动机并制定有效对策的最好办法就是获取真实攻击流量并进行分析,而以往的研究中没有足够的实际反射放大流量攻击数据支撑。

3 研究贡献

  1. 设计了一种新型蜜罐AmpPot来捕获放大DDoS攻击, AmpPot是第一个跟踪放大DDoS攻击的蜜罐。本文评估了蜜罐的各种响应模式,设计部署此类蜜罐的最佳方案。
  2. 利用一个/16的暗网(dark net)和21个蜜罐实例收集的数据来展示实际放大攻击的当前状态,利用这些结果设计了蜜罐辅助防御机制。
  3. 以往的蜜罐部署时间太短,分析数据集只涉及8次DDoS攻击。本文通过对21个蜜罐的纵向、广泛部署发现大量攻击,表明蜜罐确实有助于获得攻击情报。
  4. 分析了最近基于linux的DDoS bots的威胁。证明这些Bots提供了放大DDoS功能,但是根据流量指纹分析表明它们在放大攻击中的总体份额是微不足道的。
  5. 以往的研究中没有实际攻击数据支撑。本文提供实际攻击的数据支撑。本文进一步说明了在实际放大攻击中协议是如何被利用的。

4 背景知识

4.1 反射放大攻击

4.1.1 发动DDoS反射放大攻击的必要条件

根据资料和自己的理解总结的,与本论文无关

反射放大攻击

  1. 基于UDP的有放大漏洞的协议
    基于UDP是因为无连接,可以实现假冒源IP;有放大漏洞是指这个协议某些request的response字节数或者包数是request的数倍。例如DNS (53), SNMP (161) , SSDP (1900), SSDP (1900), SIP (5060/5061);
  2. 公网上存在大量有这个协议漏洞的服务器:
    有放大漏洞的服务器称为反射器,被攻击者利用来反射放大DDoS攻击的流量。
    攻击者寻找反射器的方法一般是通过互联网扫描(Internet-wide scan),利用开源扫描器,如ZMap和Masscan。


Zmap,2013年的USENIX 《ZMap: Fast Internet- wide Scanning and Its Security Applications》


Masscan,Mass IP port scanner. https://github.com/robertdavidgraham/masscan (2014)

4.1.2 DDoS反射放大攻击相关工作

  1. 检查协议中的具体放大漏洞,提出防御机制和测量放大器
  • Amplification Hell: Revisiting Network Protocols for DDoS Abuse (2014, NDSS, CCF B)
    概述了14种容易受到放大攻击的协议。
  • Exit from Hell?Reducing the Impact of Amplification DDoS Attacks (2014, USENIX, CCF A)
    揭示了放大器的情况,测量了它们的指纹以及存活时间。
  1. 研究某个特定协议的反射放大攻击
  • Taming the 800 Pound Gorilla: The Rise and Decline of NTP DDoS Attacks (2014, IMC, CCF B)
    对NTP进行了非常详细的研究,基于NTP monlist特性中的artifacts研究了所有放大漏洞,并对攻击受害者进行了检查。
  • DNSSEC and its potential for DDoS attacks - a comprehensive measurement study (2014, IMC, CCF B)
    分析了DNS(特别是DNSSEC)如何被滥用于放大攻击。

4.2 扫描简介

根据资料和自己的理解总结的,与本论文无关

  • 扫描器进行扫描能够暴露网络上潜在的威胁。扫描器除了能扫描端口,往往还能够发现系统存活情况,以及哪些服务在运行。
  • 扫描器整个扫描流程大致如下:
  1. 存活性扫描:判断主机是否存活。常用的是ICMP Echo扫描,如Ping。
  2. 端口扫描:判断是否开放。比如,存活Tcp syn扫描是向目标主机的特定端口发送一个SYN包,如果端口没开放就不会返回syn+ack,这时会给你一个rst,停止建立连接。
  3. 服务识别:通过端口扫描的结果,可以判断出主机提供的服务及其版本。
  4. 操作系统识别:利用服务的识别,可以判断出操作系统的类型及其版本。
  5. 反射放大攻击可利用服务扫描:向服务所利用的端口(比如DNS的53端口)发送请求包,查看返回包是否能够形成放大攻击。

4.3 蜜罐介绍

  • 什么是蜜罐?
    在主机上部署易受攻击的服务来吸引攻击者进行攻击,用以观察测量攻击。
  • 蜜罐的应用
    1. 收集恶意软件:The Nepenthes Platform: An Efficient Approach to Collect Malware. In: Recent Advances in Intrusion Detection, Springer (2006) 165–184
    2. 创建自动网络签名:Honeycomb: Creating Intrusion Detection Signatures Using Honeypots. ACM SIGCOMM Computer Communication Review 34 (2004) 51–56
    3. 发现恶意网站:A Virtual Client Honeypot. In: Proceedings of USENIX Workshop on Large-scale Exploits and Emergent Threats (LEET).
    4. 观察DDoS攻击:
      以往观察DDoS攻击的蜜罐的不足:
      1. 部署时间很短,因此分析数据集只涉及8次攻击。
      2. 没有专门跟踪反射放大DDoS攻击的蜜罐
  • 本文的蜜罐
    AmpPot是第一个跟踪放大DDoS攻击的蜜罐。通过21个蜜罐的部署证明蜜罐确实有助于获得攻击情报。

5 本论文如何识别扫描

分析发往暗网(论文原文是dark net,本文翻译为暗网,不是平时所指的dark web)的流量,在一天内至少访问了同一端口上的64个暗网地址的主机即为扫描者。本文分析了一个 /16的暗网,由NICTER运作。NICTER是一个拥有暗网地址块的日本安全机构(猜测网络中发往这个地址块的流量都发往了这个机构,这个机构保存这些流量做分析。)

暗网介绍

  • 暗网的定义:没有分配的ipv4的地址组成的网络。
  • 暗网地址块是没有人用的,如果这块暗网地址收到了一些包,这些包要么就是全网扫描的时候发过来的(scan),要么就是攻击者假冒暗网地址块里面的IP发送数据包,然后收到假冒源IP的服务器对源IP进行了回复(backscatter),这些回复的包就发送到了暗网。比如说SYN洪泛攻击中会利用很多假冒源IP进行攻击。
  • 暗网的一个用途是研究假冒源地址。

6 分析扫描者的属性

  • 扫描工具的指纹,比如ZMap、Masscan

    1. ZMap: IP头部的标志字段硬编码为54321
    2. Masscan: IP报头中的ID是通过异或目的地址、目的端口和应用程序报头的ID字段(例如DNS消息ID)生成的
      结论:Masscan并不常见,自2014年4月以来,Zmap的受欢迎程度不断提高,占所有扫描的60%。
  • 进行扫描的组织:
    测量方法:使用反向DNS和WHOIS信息检查扫描源
    结论:70%使用Zmap的扫描主机属于大学和安全组织。

  • 扫描者的特征
    测量了最常被利用的4大服务: CharGen、DNS、NTP和SSDP,在2013年1月至2015年3月的27个月时间内确定了5269个扫描器。
    三个发现:

    1. 扫描者利用多主机进行分布式扫描。64%的扫描器探测不到10%的暗网地址,研究了这些探测地址很少的扫描器,就发现他们属于同一子网。一家安全公司使用同一/24网络中的大约240台主机进行扫描。每台扫描仪只能扫描大约260台暗网主机,但总的来说扫描仪覆盖了97%的暗网主机。
    2. 94%的扫描器平均每个IP地址发送不到两个数据包,但是5.7%的扫描器发送多个同一服务的相同包,可能是为了减少包丢失。这一发现有助于删除潜在攻击流量的数据中的扫描流量。有可能有一些scan被当成了attack,所以知道有这样子特征的scan就可以把他们从attack中去除。
    3. 90%的扫描器只扫描一个协议(即一个端口),只有几个扫描器扫描多个端口。最受欢迎的服务是DNS(36%),其他三个的协议各占20%-22%。

7 本文的AMPPOT蜜罐设计和实现

本文的蜜罐是什么?

  • 本文的蜜罐是假装成放大器的服务器,称为AMPPOT。
  • 蜜罐实现了DDoS反射放大攻击可以利用的服务:QOTD (17), CharGen (19), DNS (53), NTP (123), Net- BIOS (137), SNMP (161) and SSDP (1900), plus MSSQL (1434) and SIP (5060/5061)。
  • 监听相应端口,回复相应数据包。

蜜罐用处

  1. 监视潜在攻击者的扫描(这个暗网地址也在做)
  2. 攻击者寻找放大器会对全网地址进行扫描。
  3. 监视攻击者的攻击行为
    在被攻击者把这些蜜罐放入可用放大器列表之后,攻击者会利用这些蜜罐发动攻击。

AMPPOT三种模式

  1. 仿真模式:在蜜罐上实现特定协议的解析器。蜜罐收到一个特定协议的有效request,就回复一个该协议的响应,这个响应是从预先生成的一组特定协议的响应集合中随机选择的,一般这些响应都有很大的负载。
  2. 代理模式:蜜罐把收到的request转发给真正运行有漏洞协议的服务器,收到response后再转发给客户端。这个模式需要配置有漏洞协议的服务器。
  3. 随机模式:蜜罐收到request后,不管这个request是什么样子的,都使用包含随机字节的大响应进行响应(请求大小的100倍/最大MTU)。这种模式假定攻击者并不真正关心响应的有效性,而是只寻找返回负载很大的响应的主机。

AMPPOT实现的一些细节
1. Response的实现(仿真模式):需要实现特定协议负载很大的回复。
如何设计回复?1)检查已知的漏洞报告,2)被动地观察针对暗网的请求,3)扫描Internet以发现典型的大型响应。
2. 速率限制:避免参与真实的DDoS攻击,但是能够使攻击者认为是可被利用的放大器。
区分是扫描请求还是攻击请求:将疑似被攻击目标(被伪造的源IP)放入黑名单,一小时后删除,放入黑名单的IP则不再返回其请求。如果客户端IP每分钟发送超过10个请求,将这个客户端IP地址以及相对应的/24网段认为是受害者。
3. 数据存储:每个蜜罐记录每个源IP地址的前100个请求,并将它们存储在Sqlite数据库中。

各个模式具体支持的协议:

  1. 代理模式:CharGen, QOTD, DNS, NTP, SNMP, SSDP。
  2. 仿真模式:代理模式实现的+NetBIOS, MSSQL, SIP。
  3. 随机模式:所有的,F蜜罐总是以1472字节UDP负载响应,M将请求负载的长度乘以100,以创建相对于请求长度的响应。内容都是随机的字符。


8 根据蜜罐捕获的流量分析反射放大攻击

  • 一次放大攻击的定义
    针对发往蜜罐的流量,一般有三种情况:攻击/backscatter/扫描。什么情况下是一次攻击呢?即:连续向蜜罐发送至少100个请求的源IP,连续是指该源IP发送的两个包的间隔在一小时以内。根据源IP和目的端口将发往21个蜜罐的流量进行汇总。

8.1 攻击总体情况

  • 共1535322次放大攻击。攻击分布相对稳定。
  • NTP(37.0%)、DNS(28.5%)、SSDP(27.3%)和CharGen(7.0%),合计占比超过99%。
  • QOTD、MSSQL、NetBIOS和SNMP攻击加起来不到所有攻击的0.3%

8.2 蜜罐收敛性

  • 什么是蜜罐收敛性?
    蜜罐的收敛性是用来反应部署的蜜罐数量是否可以覆盖英特网的大部分放大攻击的。如果蜜罐发现的新型攻击收敛,即发现的新型攻击越来越少,最终低于一定值,那么确定蜜罐部署数量足够覆盖大部分放大攻击。

  • 下图是以仿真模式的蜜罐作为基准的新型攻击发现数量收敛图,每一个模式下发现新型攻击的数量都收敛了,表明每个模式的蜜罐数量都是充足的。


    每个蜜罐发现的新攻击(深灰色)与已知攻击(浅灰色)的比率
  • 比较三个蜜罐模式的交界处的数据的一些发现

    1. 代理模式的蜜罐(P01-P07)发现了许多新的攻击,表明仿真模式虽然好,但并不完整。
    2. 随机模式的蜜罐发现了前面两种蜜罐没有发现的新攻击,其中大多数都是利用了其他前两种蜜罐都不支持的协议。比如说TeamSpeak(5倍放大能力), Quake, Sun RPC, ASF-RMCP, UT等,但是这些协议被利用的频率不高。
  • 蜜罐的三种模式哪一种最好?
    比较方法:分别把三种模式作为基准画收敛图并比较收敛图,上图是根据代理模式作为基准画的收敛图。
    比较发现:

    1. 随机蜜罐错过的攻击所占的比例非常大,表明不是所有攻击者都盲目接受随机的大型响应。但是有助于检测新的攻击,包括一些利用没有发现被利用过的协议的攻击和一些倾向于较大放大倍数而不在意内容的攻击。可以作为模拟模式和代理模式的补充。
    2. 代理蜜罐错过的攻击占比也很大,包括不支持和支持的协议,猜测因为静态IP的蜜罐太少。

8.3 蜜罐从部署到被利用的时间间隔

  • 现象:所有的蜜罐在部署后24小时内被利用,五天后蜜罐的攻击数量稳定。
  • 原因:放大器存在时间是短暂的,攻击者需要不断刷新他们的放大器集。42%-53%的放大器在一周后由于IP地址的变化而消失。所以一旦出现新的放大器,攻击者能马上发现。

8.4 攻击来源是单台主机(eg: booter服务)还是多台主机(eg: 僵尸网络)

  • 事实基础:如果攻击来源是单台主机,攻击包头部的TTL值只有一个;如果是多台主机,会有很多不同的TTL值。前提是TTL初始值不随机并且路由不常变化。
  • 方法:同一个攻击大部分蜜罐观察到最多两个TTL值,则是单台主机发起的攻击。
  • 现象:96.3%的攻击来自单台主机, 另外3.7%不能确定。
  • 结论:大部分攻击是由booter服务发动的,而非DDoS僵尸网络,也就是大部分反射放大攻击并非分布式的。

8.5 攻击持续时间和次数

  • 基于源IP(受害者IP)聚合攻击流量,不论攻击利用的协议。
    实线的受害者是单IP,虚线的受害者是/16的网段。先看实线:
  • 图(a)是攻击持续时间——攻击受害者IP流量的第一个和最后一个数据包之间的时间——的累积分布图。62%的攻击持续不到15分钟,90%最多持续一小时。只有1.4%持续时间超过4小时。表明攻击者迅速转向攻击其他受害者。


  • 图(b)是受害者受到攻击频率的累积分布图。79%的受害者只遭受过一次攻击,11%遭到两次攻击,0.81%超过10次。表明大部分攻击并不是持续性攻击。



    为什么以/16网段划分受害者?
    因为作者猜想以单IP作为受害者的粒度可能太小了。所以论文对/16网段的IP进行了聚合分析。实线的受害者是单IP,虚线的受害者是/16的网段。如果是针对一个网段发动的攻击,一次攻击内一个网段的所有IP的包都会被聚合到一起,那么每个受害者的攻击频率不应该上涨。攻击持续时间或许会上涨也可以不上涨。但是从图中可以看到虽然每个网络的攻击数量显著增加,攻击持续时间并没有增加,并且同一网段两次攻击之间的间隔平均为9.6天。表明受害者并非网段。

8.6 受害者分析

  • 目的:了解攻击的动机。

  • 方法:对所有受到攻击的IP地址解析了地理IP数据,查询了它们的反向DNS记录,并将IP地址映射到自治域(ASes)。

  • 统计攻击流量的目标端口以显示受攻击者欢迎的服务类型。35%的攻击目标UDP端口80,2.6%的攻击目标是Xbox Live, 2.0% DNS服务器,0.9% Minecraft游戏服务器,0.6% Steam游戏服务器和TeamSpeak VoIP服务器。大多数攻击分散在其他港口的长尾分布中。不太流行的服务包括MSSQL服务器、NTP服务器、MMORPG服务器和其他VoIP系统。所有剩余的请求似乎随机化了源端口。

  • 图7b和图7a分别显示了受害国家和区域互联网登记中心(Regional Internet Registry,RIR)的分布情况。属于ARIN和RIPE的受害者各吸引37%的攻击,APNIC吸引21%的攻击。中美洲和南美洲(LACNIC)或非洲(AfriNIC)的供应商面临的攻击相对较少。



  • 从各国的情况看,美国最为突出,拥有三分之一的受害者。在中国(14%)和法国(8.6%)也有很多受害者,而其他所有的受害者形成了192个受影响国家的长尾分布。其中,28个国家受到1000多起袭击,显示出地域分布的广泛性和放大攻击的全球性威胁。

8.7 攻击请求的熵

攻击请求的熵,即被攻击利用的每个协议的请求有效负载(不包括UDP和IP报头) 的多样性。

  • 目的:攻击更改请求的次数越少,越容易过滤。
  • 协议中最流行的两个请求有效负载构成了98%以上的攻击:CharGen, QOTD, NTP, MSSQL , SSDP。
  • 请求变化很大:DNS(DNS message ID, query中询问的域名), SNMP(Object Identifiers, transaction IDs, request type), NetBIOS(transaction ID),SIP (session ID)。


单个攻击请求的熵
1. DNS:45.3%的攻击所有请求负载相同,80%以上的攻击最多使用3种请求负载。
2. NetBIOS、SNMP、SIP仍然具有较高的请求熵(只有一种请求负载的攻击不到30%)。
结论:不能断定在单个攻击中请求负载的种类很少。

9 用蜜罐辅助进行反射放大攻击防御

  • 方法概述
    使用web portal与注册的服务提供者和受信任的个人共享攻击事件的信息,信息包括攻击开始和结束时间等,是基于蜜罐获得的数据的实时攻击反馈。提供商可以使用攻击信息通知客户,或者根据IP和端口信息过滤攻击流量。

  • 有效性证明——与一个日本ISP合作

    1. 将基于蜜罐的DDoS检测与ISP已经部署的基于流量的检测系统进行了比较。
    2. 蜜罐检测机制:检测到一个IP地址(潜在受害者)在10秒内发送超过10个数据包就发警告。
    3. ISP检测机制:对每个目的地址和DDoS相关端口给定一个流量阈值,超过发出预警。
    4. 比较了2014年8月1日到2014年10月30日这段时间内的两个系统。蜜罐检测到75个对ISP网络的潜在攻击,ISP检测到56个。在56个警报中,有43个(77%)首先由蜜罐检测到,然后由ISP检测到,平均延迟为39秒。蜜罐检测到的攻击比ISP晚的有13次,这表明攻击者换了放大器组。猜测部署更多的蜜罐将进一步改善反应时间。
  • 除了DNS以外大多数其他协议都可以过滤,它们在Internet上几乎没有什么良性的用途(例如CharGen、QOTD,还有典型的LAN协议,如NetBIOS和SSDP),而DNS不能根据协议直接过滤,这样会导致互联网用户上网故障,如果知道被利用的域名,就可以利用查询域名进行过滤。所以本文对DNS被利用的域名列表进行了研究。下面是一些发现和结论。

    1. 许多良性域名(isc.org/dhs.gov)也在表中,表明并不能直接使用查询域名进行过滤,可以考虑(请求类型(例如ANY),所请求的域)结合进行过滤。isc.org配置了DNSSEC签名,一个ANY请求会导致大约1500字节的响应,包含两个DNSKEY和四个RRSIG记录,这两个记录都是DNSSEC所必需的。
    2. 有些域名存在就是为了进行DDoS攻击,应该是攻击者注册的。例如,mg1.pw这个域名没有真实内容,并且在该域名被利用之前该域名注册仅30小时(使用dnsdb.info)。
    3. 每个域名被利用的时间都很长:所有域名被利用的平均时间是7.5周,猜测攻击者是为了节约注册新域和设置权威名称服务器的开销。


      自2015年2月以来被利用来进行攻击的最流行的10个域名

10 论文总结

  • 精读意义
    虽然论文是2015年的,但他的测量方法,包括蜜罐部署的三种类型以及分析角度和论证方法可行性的方式仍然具有参考价值。它提供了发现新型DDoS反射放大攻击的一种方法,即使用随机蜜罐发现新的被利用来做反射放大攻击的协议。
  • 总结全文
    这篇论文设计了一种新型的可以捕获DDoS反射放大攻击流量的蜜罐,根据暗网流量分析了扫描的特征,提升识别攻击流量的精度;根据发往蜜罐的攻击流量从各个角度分析了反射放大攻击,最后提出了利用蜜罐辅助防御反射放大攻击的方法。

你可能感兴趣的:(《AmpPot: Monitoring and Defending Against Amplification DDoS Attacks》论文笔记)