Memcached反射放大DDoS攻击威胁分析

2018年2月27日,多国CERT和多家网络和云运营商报告称,恶意攻击者正在使用不安全配置的Memcached服务器来借力放大DDoS攻击。

根据报告,Memcached的带宽放大因子(Bandwidth Amplification Factor)能达到10000-51000,远超过之前广泛使用的NTP协议的556.9,刷新了UDP协议反射放大DDoS攻击的新记录,测试显示15byte的请求能触发750KB的响应,即51200的放大倍数,Memcached对互联网开放的无需验证的UDP 11211端口为成为了主要利用的DDoS反射器, Memcached默认同时开放UDP和TCP 11211端口,很多服务商并未限制外部访问该UDP端口。

网络上Memcached端口开放情况

全球分布

通过国外Shodan平台查询,全球Memcache服务主要分布情况如下,包含TCP和UDP端口。可以看到美国和中国最多。

国内分布

通过安恒研究院sumap平台针对国内memcached服务udp端口受影响情况统计,国内“udp端口 11211 memcached”的分布情况如下:

可以看到实际数量并不多。

端口开放自查

可通过Nmap网络安全扫描工具扫描端口开放情况,验证运行Memcached服务的IP资产是否开放UDP 11211端口,示例(Windows/Linux):

nmap 127.0.0.1 -p 11211 -sU -sS --script memcached-info

可通过Netcat网络实用工具连接端口测试,验证UDP 11211端口响应服务运行状态,示例(Linux下):

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

STAT pid 21357

STAT uptime 41557034

STAT time 1519734962

...

如果看到非空有内容输出的响应(如上所示),表示Memcached服务器容易受到攻击,特别是暴露在互联网上的主机。

Memcached安全配置建议

>>运行Memcached服务安全配置<<

建议端口不要监听在0.0.0.0上,而是本地(localhost或127.0.0.1)或指定IP,并禁止UDP协议(参数-U设为0),示例:

memcached -p 11211 -l 127.0.0.1 -U 0

当然也可以更改监听端口,具体配置参考:

https://github.com/memcached/memcached/wiki/ConfiguringServer#udp

也可以启用SASL,1.4.3以上版本通过--enable-sasl编译支持SASL,实现在连接上发出命令之前,要求先身份验证。

SASL配置参考(建议启用):

https://github.com/memcached/memcached/wiki/SASLHowto

>>运行Memcached的操作系统安全策略配置<<

建议利用系统安全策略禁止外部访问本机UDP 11211端口,Linux下可使用netfilter/iptables,Windows下可使用IP安全策略禁止,或是通过外围安全设备阻止对该端口访问。

同时建议网络运营商实施源地址验证(BCP38/BCP84)标准,以防止其网络和最终用户的网络受到反射/放大DDoS攻击的影响。

相关信息来源:

https://www.us-cert.gov/ncas/alerts/TA14-017A

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

- END -

本文分享自微信公众号 - 安恒信息(DBAPP2013)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-03-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏IT笔记

Linux下安装memcached之Tomcat7集群

这两天,在捣鼓负载均衡的问题,使用的是memcached做session存储。但是你造吗?居然没有成功,都硕失败是成功之母,我想我快成功了。 ? 安装环境 ce...

40690
来自专栏逸鹏说道

memcached未作IP限制导致缓存数据可被攻击者控制

漏洞证明: C:\>nc -vv 61.135.178.118 11211 61.135.178.118: inverse host lookup faile...

33480
来自专栏性能与架构

Mysql 8.0 新增特性

1. 数据字典 新增了事务型的数据字典,用来存储数据库对象信息 之前,字典数据是存储在元数据文件和非事务型表中的 2. 账号权限管理 添加了对 “角色” 的支持...

408110
来自专栏码神联盟

缓存 | redis和memecache的异同以及应用场景

缓存就是数据交换的缓冲区Cache。当某一硬件要读取数据时,会首先从缓存中查找需要的数据,如果找到了则直接执行,找不到的话则从内存中找。由于缓存的运行速度比内存...

36890
来自专栏逸鹏说道

圆通wap分站memcache没做ip限制

漏洞证明: 获取memcache的信息,敏感的是version而已 获取item 获取key 然后其实是可以查询到数据的,用get <key>就行,可是我这里木...

27090
来自专栏安恒信息

Memcached反射放大DDoS漏洞怎么办?

30340
来自专栏猿天地

用aop加redis实现通用接口缓存

系统在高并发场景下,最有用的三个方法是缓存,限流,降级。 缓存就是其中之一,目前缓存基本上是用redis或者memcached。 redis和memcached...

39870
来自专栏逸鹏说道

memcached安装及.NET中的Memcached.ClientLibrary使用详解

序言 吹吹牛逼先,借我你的20分钟,保证你在.net中使用memcached缓存数据,畅通无阻,提升数据读取效率,分担数据库压力,便不在话下。 本篇主要说下:m...

31370
来自专栏zhisheng

Windows 64位下安装Redis超详细教程

Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(...

459120

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励