Memcached UDP放大攻击漏洞安全预警

近日,攻击者利用对外开放的Memcache 服务弱点,对外发动 DDoS 攻击。攻击者通过向Memcache 服务器发送请求报文,由于 UDP 协议并未正确执行,因此 Memcache 服务器并未以类似或更小的包予以响应,而是以比原始请求大数千倍的包予以响应。攻击者通过伪造原始IP地址,诱骗 Memcache 服务器将过大规模的响应包发送给另外一个 IP 地址即 DDoS 攻击的受害者的 IP 地址,从而实现反射型 DDoS。
影响范围
开放在公网且开启UDP协议的Memcache 服务
验证方法
运行以下命令可以测试服务器是否易受攻击:

$ 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
...

如果的响应非空,则表示服务器易受到攻击
修复方案
1、若Memcache 服务无需使用UDP协议,需要禁用UDP支持:

memcached -U 0

2、若Memcache 服务无需对外开放,配置监听地址仅限本地回环地址:
在 Memcache 服务的配置文件,或者启动参数中,使用 “ -l 127.0.0.1” 指定监听的 ip 地址
3、使用 iptables 等手段控制 Memcache 服务的端口ACL策略:
#仅限来自指定 IP 段的访问

iptables -t filter -A INPUT -p tcp -s IP --dport 11211 -j ACCEPT

#屏蔽任何其他 IP 对 Memcached 端口的访问

iptables -t filter -A INPUT -p tcp --dport 11211 -j DROP

如果返回非空内容则你的版本会受影响,请检查是否将其暴露在公网

memcached 2 月 27 日进行了更新,默认禁用掉了 UDP

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

参考链接
https://blog.cloudflare.com/memcrashed-major-amplification-attacks-from-port-11211/