前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >利用Memcached的反射型DDOS攻击技术分析

利用Memcached的反射型DDOS攻击技术分析

作者头像
Spark学习技巧
发布2018-04-17 15:58:48
1.2K0
发布2018-04-17 15:58:48
举报
文章被收录于专栏:Spark学习技巧Spark学习技巧

背景

最近几天,我们看到利用Memcached服务的基于UDP协议进行放大反射的DDoS攻击数量大增,攻击者发送大量带有被害者IP地址的UDP数据包给Memcached服务,从而导致Memcached主机对伪造的IP地址源做出大量回应,形成分布式拒绝服务攻击。

360网络安全研究院通过全网DDOS实时攻击的采样数据可以很清楚的看到,这种利用Memcached服务进行DDOS的攻击事件在最近几天突然大量增加:

360网络研究院对目前此类反射型攻击状况做了深入分析,更详情请参考链接:

http://blog.netlab.360.com/what-we-know-about-memcache-udp-reflection-ddos/

Memcached

Memcached是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。

Memcached通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性:

基于UDP协议的反射型DDOS攻击

分布式拒绝服务(DDoS:Distributed Denial of Service)攻击指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动拒绝服务攻击,从而成倍地提高拒绝服务攻击的威力。

而本次事件中基于UDP协议的DDOS反射攻击靠的是发送大量带有被害者IP地址的UDP数据包给放大器主机(Memcached),最后放大器主机对伪造的IP地址源做出大量回应,形成分布式拒绝服务攻击。这样就巧妙的利用了无需交互认证的服务(UDP)将DDOS攻击数据“放大”并“反射”到受害者主机IP上。而黑客往往会选择那些响应包远大于请求包的UDP服务,这样只需要极小的攻击流量就可以造成上百Gbps的攻击效果。

下图引用了CLOUDFLARE对UDP协议的DDOS反射攻击图例来说明攻击过程:

基于Memcached的反射型攻击技术分析

利用Memcache的反射型攻击最初由360信息安全部0kee Team在2017年6月发现,并于当年11月在 PoC 2017 会议上做了公开报告,详细报告可参见参考链接[6]。

要完成一次UDP反射放大攻击,需要满足以下几个基本条件:

  • 作为攻击者,需要能伪造IP,并发送海量伪造来源的请求。
  • 作为反射服务器,上面需要运行着容易放大反射攻击的服务,而运行了设计不当的UDP协议的服务是最佳的选择。
  • 反射服务器的响应包最好远远大于请求包,这样才能使用较小的攻击流量进行高流量的DDOS攻击。
  • 反射服务器对应的协议或服务在互联网上有一定的使用量,比如本次攻击中的Memcached。

而Memcached提供的基于UDP协议的服务正好满足上诉的UDP反射放大攻击的各种条件:

  • 从协议看,Memcached支持UDP。
  • Memcached大部分是作为企业应用的组件,往往具有很高的上传带宽。
  • Memcached不需要认证就可以随意交互。
  • 很多用户编译安装时,错误的监听了0.0.0.0,且未设置iptables或云安全组,这使得攻击者可以自由访问这些服务,从而进行UDP反射攻击。

攻击流程

完成一次针对Memcached的UDP反射放大攻击,基本攻击流程如下:

  • 扫描端口和服务,抓取协议指纹,获取未认证的Memcached。
  • 过滤出可以反射的UDP Memcached,再获取可以成功放大的Memcached主机IP地址。
  • 向可以放大UDP返回数据的Memcached主机IP发送伪造成被攻击主机IP的UDP包。
  • Memcached主机IP将放大了上万倍的UDP数据发送给被攻击主机IP,造成DDOS攻击。

放大倍数

测试了多个Memcached Server,反射放大系数是有上限的,放大倍数最高可以在6W倍左右,使用tcpdump分析请求响应的报文:

攻击机器A:

测试指令:

python -c "print 'gets a b c d e '" |nc -nvvu 94.**.251.*** 11211 |less

被攻击机器B:

测试指令:

tcpdump -ni eth0 port 11211 -t

可以看到,一个15字节的UDP请求触发了分片后总量达到近百个,单个1400字节长度的响应,重复数百次,DDOS攻击的放大倍数达到了近万倍。

利用条件

  1. Memcached服务必须开了UDP 11211端口。
  2. 可被利用的Memcached存在Authentication Disable缺陷,即无需认证。
  3. Memcached服务存在的节点有比较充足的带宽资源。

以上3个条件必须同时满足时,才可以打出放大倍数比较大的反射流量。

影响面

国内影响面统计,国内受影响Memcached服务器数量在20000+

全球影响面统计,全球受影响Memcached服务器数量在10万左右

可行缓解措施

非常时期,建议采取快速有效防御措施:

针对于国内存在风险的机器:

云厂商、运营商、IDC限流UDP 11211双向流量;若有强业务需求最好单独申请点对点白名单,然后启用放行机制。

针对于国外存在风险的机器:

在国际出口限制UDP源端口为11211的回包流量,封堵利用国外机器打国内的情况。

参考

[1] https://blog.cloudflare.com/memcrashed-major-amplification-attacks-from-port-11211/

[2] http://blog.netlab.360.com/what-we-know-about-memcache-udp-reflection-ddos/

[3] https://www.anquanke.com/post/id/87233

[4] https://ddosmon.net/insight/

[5] https://github.com/Memcached/Memcached/blob/master/doc/protocol.txt

[6] http://powerofcommunity.net/poc2017/shengbao.pdf

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-04-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 浪尖聊大数据 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档