一切皆有可能
anywill ,anything will ....go better or worse ,go success or failure,go......一切皆有可能

Memcached被利用UDP反射攻击漏洞

anywill~2018-06-06 /网络安全

 

这几年,udp反射攻击的手段层出不穷。
下面来说说,udp反射攻击的原理和防范手段。

0x01 UDP反射DDoS攻击的原理

分布式拒绝服务(DDoS:DistributedDenial of Service) 攻击是指利用足够数量的傀儡计算机产生数量巨大的攻击数据包,对网络上的一台或多台目标实施DoS攻击,从而耗尽受害目标的资源,迫使目标失去提供正常服务的能力。

 基于UDP 报文的反射DDoS攻击是这类攻击的一种实现形式。攻击者不是直接发起对攻击目标的攻击,而是利用互联网的某些服务开放的服务器,通过伪造被攻击者的地址、向该服务器发送基于UDP服务的特殊请求报文,数倍于请求报文的回复的数据被发送到被攻击IP,从而对后者间接形成DDoS攻击。图1是这类攻击的一个攻击场景。

 简单来讲,这类攻击是基于无连接的UDP协议设计的网络服务的设计“缺陷”和目前IP网不做真实原地址检查这个条件设计的。攻击者通过扫描,确认服务的开放和漏洞的存在后,即可对这些服务器发送请求,通过伪造源地址的方式对特定目标发动反射攻击。

0x02 带宽放大因子BAF

2014年德国波鸿大学的一篇研究报告对14种UDP协议进行了系统的实验性研究,认为这些协议存在实施反射攻击的可能,并提出了协议的“带宽放大因子(BAF,Bandwidth Amplification Factor)”的概念,即回复报文的总字节数与请求报文字节数的比值。显然,服务协议的BAF、攻击脚本实现的便捷性是攻击者选择协议进行攻击是的主要考虑因素。

用Memcached来举例:

echo -en "\x00\x00\x00\x00\x00\x01\x00\x00stats\r\n" | nc  -u 127.0.0.1 11211

返回结果:

STAT pid 623
STAT uptime 73818
STAT time 1528257556
STAT version 1.5.0
STAT libevent 2.1.8-stable
STAT pointer_size 64
STAT rusage_user 1.572609
STAT rusage_system 0.757282
STAT curr_connections 9
STAT total_connections 10
STAT rejected_connections 0
STAT connection_structures 10
STAT reserved_fds 20
STAT cmd_get 0
STAT cmd_set 0
STAT cmd_flush 0
STAT cmd_touch 0
STAT get_hits 0
STAT get_misses 0
STAT get_expired 0
STAT get_flushed 0
STAT delete_misses 0
STAT delete_hits 0
STAT incr_misses 0
STAT incr_hits 0
STAT decr_misses 0
STAT decr_hits 0
STAT cas_misses 0
STAT cas_hits 0
STAT cas_badval 0
STAT touch_hits 0
STAT touch_misses 0
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 30
STAT bytes_written 1875
STAT limit_maxbytes 67108864
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT time_in_listen_disabled_us 0
STAT threads 4
STAT conn_yields 0
STAT hash_power_level 16
STAT hash_bytes 524288
STAT hash_is_expanding 0
STAT slab_reassign_rescues 0
ST_worker_written 0
STAT log_watcher_skipped 0
STAT log_watcher_sent 0
STAT bytes 0
STAT curr_items 0
STAT total_items 0
STAT slab_global_page_pool 0
STAT expired_unfetched 0
STAT evicted_unfetched 0
STAT evicted_active 0
STAT evictions 0
STAT reclaimed 0
STAT crawler_reclaimed 0
STAT crawler_items_checked 0
STAT lrutail_reflocked 0
STAT moves_to_cold 0
STAT moves_to_warm 0
STAT moves_within_lru 0
STAT direct_reclaims 0
STAT lru_bumps_dropped 0
END

各种协议BAF系数

Protocol Bandwidth Amplification Factor Vulnerable Command
DNS 28 to 54 see: TA13-088A [4]
NTP 556.9 see: TA14-013A [5]
SNMPv2 6.3 GetBulk request
NetBIOS 3.8 Name resolution
SSDP 30.8 SEARCH request
CharGEN 358.8 Character generation request
QOTD 140.3 Quote request
BitTorrent 3.8 File search
Kad 16.3 Peer list exchange
Quake Network Protocol 63.9 Server info exchange
Steam Protocol 5.5 Server info exchange
Multicast DNS (mDNS) 2 to 10 Unicast query
RIPv1 131.24 Malformed request
Portmap (RPCbind) 7 to 28 Malformed request
LDAP 46 to 55 Malformed request [6]
CLDAP [7] 56 to 70
TFTP [23] 60
Memcached [25] 10,000 to 51,000

0x03 防范手段

  1. 关闭不必要的UDP服务,DNS、NTP等。
  2. 像Memcached这种必要服务器,把服务开启在127.0.0.1,不要暴露在外网。还有,建议您添加“-U 0”参数重启memcached服务完全禁用UDP,可以参考Memcached服务安全加固

 


参考:

  1. 东南大学:UDP反射DDoS攻击原理和防范
  2. 【重要安全预警】Memcached被利用UDP反射攻击漏洞预警

发表评论

电子邮件地址不会被公开。 必填项已用*标注