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 "x00x00x00x00x00x01x00x00statsrn" | 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 -