Amplification Hell: Revisiting Network Protocols for DDoS Abuse.
Rossow C. Amplification Hell: Revisiting Network Protocols for DDoS Abuse[C]//NDSS. 2014.
本文重审各种基于UDP的协议,并分析哪些易用于RDOS,总结目前已被用作的RDOS和应对措施分析。本文主要有三总分组成:threat model,vulnerable protocols,realword attacks countmeasure。
Threat model
A要利用反射攻击V。 A:可发包的网络攻击者 V:网络实体。 ${M_p}$:所有可能的潜在放大器,如图1所示:
攻击者发包给$M_p$,$M_p$响应给V,其中响应包要多得多,使V的网络过载。$M_p$为运行了可能会被用于放大器的协议的实体。
Amplification Vulnerablity
表1列举了可能被用于DRDOS的协议,没有列举不能放大的协议。
使用scanning,crawling,querying来枚举这14个协议。
- 对网络服务,通过扫描抽样估计网络中可能的放大器个数。
- 对于P2P协议,通过迭代爬取所有peer列表,爬取所需信息可通过读源码,逆向来获取。爬取1小时结速,结果作为lower bounds。实现过程见[26]
- 对于游戏服务协议,通过查询的方式获得可用的游戏服务器列表。 这里对于DNS考虑两类:open resolver记为:$DNS_{OR}$,authoritative name servers,记为:$DNS_{NS}$ 表2这列举结果,记录了发现1k和发现100k的时间。该结攻击者可轻易获得放大器。
Amplification Factors
这里分析每个协议的放大因子。使用BAF表示字节放大效果, $B A F=\frac{\operatorname{len}(U D P \text { payload }) \text { amplifier to victim}}{\operatorname{len}(U D P \text { payload }) \text { attacker to amplifier}}$ 它的意思为:$\frac{返回字节}{发送字节}$,当然这里去掉了一些无关的头。对于包讨大效果,使用PAF,表示为: $P A F=\frac{\text {number of packets amplifier to victim}}{\text {number of packets attacker to amplifier}}$ 它的意思是$\frac{返回包数}{发送包数}$ 表3为对每个协议的BAF和PAF的测量结果。
下面对每个协议作分析:
- SNMP:它的GetBuld会有放大功能,最大BAF为:11.3
- NTP:它的monlist请求会被用于放大攻击。
- DNS:对于ANY请求,OR会导致放大,BAF为:28.7-64.1,布署了DNSSEC后对NS发ANY请求放大因子为:54.6-98.3
- NetBios:使用name lookup,BAF为3.8-4.9
- SSDP: discovery请求,BAF为:30.8-75.9
- CharGen:对UDP报返回随机大小的字符,数量太少未统计BAF
- QOTD:如6,BAF平均为:140.3
- BitTorrent:Hash搜索,BAF为:3.8-10.3
- Kad:可利用peer列表交换来攻击,同6未统计BAF
- Quade 3:请求服务器当前状态。BAF:63.9-82.8
- Steam:同10,BAF:5.5-14.7
- ZeroAccess:peer list和comamand exchange,BAF:36.0-41.1
- Sality:换文件的URL list,BAF:L37.3-38.4
- Gameover:peer list和proxy list交换机制,BAF:46
Real-world observations
- 找victim和amplifier
- 找暗网的port scan 流量
- 放置amplification bait
##数据集
- Netflow data:使用Netflow采集的数据集,2013-6-14~2013-6-25这12天的数据。
- Darknet traffic:不知道从哪弄的暗网流量数据集,D1为/17网络,D2为/27网络,收集4周的暗网流量
- 诱饵:放置可用于放大器的服务器诱饵(大手笔)诱饵可能会被用于真实攻击,这无法避免,就当他们为科学献身了。
Realword amplificationscans
利用手头上的暗网数据集D1,D2,检测哪可能被扫描,表4列出了前10的UDP扫描端口,该表可见DNS,CharGen,NetBios,SNMP易受攻击(我也没看出来他怎么得出这个结论的。)
在D2中手动检测这些协议发现攻击者钟意Open Resolver。对其他协议的扫描:
- CharGen:发送one byte UDP payload
- NetBios:equal name queries
- SNMP:mixture of bulk,nonbulk requests
- NTP和SSDP黑客们不大喜欢 这次分析也发现一些不在本文列举范围内的协议:MSSQL,SIP,Teredo tunnels
Realword DRDoS Victims
图2列出了受攻击的情形,在V看来可通过in和out流量不均来检测。
Netflow利用这个特征监控流量,为了简化,只观察固定UDP端口,通过(IP,UDP PORT)识别server,client只用IP来识别,以此创建pairflow: pair $f l o w :=<C_{I P}, S_{I P}, S_{p o r t}, B_{2 s}, B_{2 c}, t>$ 这里的$B_{2s}$为to server的通信负载字节数。$B_{2c}$同理。 每小时计算一次pariflow,并找victim,条件为:1.流量超过一定阈值,$T_B=100000$B。2.接收流量远大于发送流量$rf=\frac{f.B_{2s}}{f.B_{2c}} \gt T_r=1000$。另外,丢弃所有pairflows,server are within the network of the ISP。 结果: 表5列出victim的相关情况,IP使用A-I标签代替。
Realworld amplifier Abuse
检测Amplifier比victim更难,因为攻击者的行为合法用户也会做。,如图3所示。
这里通过设定不同的阈值只进行,$T_r=5,T_B=10000000$ 结果:检测到143个可疑pariflows,6个DNS OR 被用于55个攻击,4个CharGen被用于57个攻击,5个SNMP和3个Steam可疑。被用于攻击的诱饵中CharGen和Quade3 game server被用于攻击。 总体看来,现实中很多amplifier都被用于attack。
countermeasures
- 禁止IP欺骗的方法:不行,世界各地都有支持IP欺骗。
- 强化协议设计:
- 会话握手:只有通过一定的验证才给予响应。延迟,额外开销,需要要协议布置前进行这种设计。
- 请求向应对称:降低有效性
- 限制请求发送率:不行,amplifier太多,攻击者可控制一个网络,不好的设计还会被attacker利用。
- 更安全的服务配置:如SNMP无密码在网络中暴露,那就设个密吗;当前网络设备大多是缺省配置,所以一个好的配置是管用的。
- 基于包的过滤:
- IP过滤:DRDOS是分布式的,不行
- PORT:测量放大器对响应端口的频率
- 包大小:
- 负载字符串的匹配:搜索响就中的静态子串。 表7为统计结果
该方法只能用于预选候选攻击流量,并且有些服务没有任何这些检测特征。 本文的一些参考文献不错
- DDoS attack type:[4][7][12][20][29][32][33][34][35]
- DDoS Detection and Mitigation:[10][28][39][13][9][41][25][11][23][31]
- DDoS Attack Analysis:[3][17]
如果这篇文章帮到了你, 那就赞助我一瓶水吧, 这可以让我有动力去写更多的文章
Sponsor