首页 / 安全公告 / 正文
Memcached攻击防护加固建议
2018-03-09 11:56  

Memcached是一套常用的key-value缓存系统,由于它本身没有权限控制模块,所以对公网开放的Memcached服务很容易被攻击者扫描发现,攻击者通过命令交互可直接读取Memcached中的敏感信息。

检测自查:

1)检测目的端口为11211TCPUDP报文(确保是Memcached服务器);

2)检测报文是否为set命令

3)检测set命令后面的bytes字段值是否超过设定的阈值,如果是,则可以怀疑该报文存在异常;

通常情况下,多数value的大小都在64K以内,而最后一条的达到了将近1M,与其他记录有很明显的差别,基本上可以判断该记录存在问题,该服务器可能已经被利用。

修复方案:(升级前先做好备份)

 

1.    定期升级,使用官方最新版本Memcached

2.    配置访问控制
建议用户不要将服务发布到互联网上而被黑客利用,可以通过ECS安全组规则iptables配置访问控制规则。
例如,在Linux环境中运行命令iptables -A INPUT -p tcp -s 192.168.0.2 —dport 11211 -jACCEPT,在iptables中添加此规则只允许192.168.0.2这个IP11211端口进行访问。

3.    绑定监听IP
如果Memcached没有在公网开放的必要,可在Memcached启动时指定绑定的IP地址为 127.0.0.1。例如,在Linux环境中运行以下命令:
memcached -d -m 1024 -u memcached -l 127.0.0.1 -p 11211-c 1024 -P /tmp/memcached.pid

4.    使用最小化权限账号运行Memcached服务
使用普通权限账号运行,指定Memcached用户。例如,在Linux环境中运行以下命令来运行Memcached
memcached -d -m 1024 -u memcached -l 127.0.0.1 -p 11211-c 1024 -P /tmp/memcached.pid

5.    修改默认端口
修改默认11211监听端口为11222端口。在Linux环境中运行以下命令:
memcached -d -m 1024 -u memcached -l 127.0.0.1 -p 11222-c 1024 -P /tmp/memcached.pid

6.    Memcached服务不需要监听UDP,可在做好数据备份的前提下,对Memcached服务添加“-U 0”重启禁用UDP

7.    在边界网络设备上配置URPF策略,过滤外发的虚假源IP报文;

8.    Memcached系统前进行深度检测,直接过滤报文特征中set key 0 900 64000的第三个字段过大的数据包,这样做可以在Memcached系统被修改利用成为攻击源前进行拦截;

关闭窗口