关于Memcached UDP拒绝服务放大攻击漏洞的修复方案

互联网  2018-03-02 20:34:19  1,439 人阅读  19 条评论

近日,互联网上存在大量利用 Memcached UDP 端口实施 DDoS 放大攻击的案例,攻击者可利用该存在风险的 Memcached 服务器实施大规模的流量攻击,从而导致网站无法正常提供服务。为避免我们的业务受影响,boke112 导航建议大家及时开展安全自查,如在受影响范围,请及时进行更新修复,避免被外部攻击者入侵。

关于Memcached UDP拒绝服务放大攻击漏洞的修复方案 最新资讯 第1张

Memcached 漏洞描述

Memcached 是一套常用的 key-value 缓存系统,由于它本身没有权限控制模块,所以对公网开放的 Memcached 服务很容易被攻击者扫描发现。该类攻击主要使用 Memcached 协议的 UDP 端口开展攻击,攻击者通过向开启了 UDP 协议支持的 Memcached 服务器上发送伪造的 IP 欺骗请求,Memcached 服务器会将大量的响应报文发往目标攻击主机,从而占用目标攻击机器的大量带宽资源,导致拒绝服务。

关于Memcached UDP拒绝服务放大攻击漏洞的修复方案 最新资讯 第2张

阿里云关于 Memcached的安全加固方案

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

2、配置访问控制

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

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、启用认证功能

Memcached 本身没有做验证访问模块,Memcached 从 1.4.3 版本开始,能支持 SASL 认证。

6、修改默认端口

修改默认 11211 监听端口为 11222 端口。在 Linux 环境中运行以下命令:

memcached -d -m 1024 -u memcached -l 127.0.0.1 -p 11222 -c 1024 -P /tmp/memcached.pid

Memcached 命令参数说明

  • -d 是指启动一个守护进程。
  • -m 是指分配给 Memcached 使用的内存数量,单位是 MB,以上为 1024MB。
  • -u 是指运行 Memcached 的用户,推荐使用单独普通权限用户 Memcached,而不要使用 root 权限账户。
  • -l 是指监听的服务器 IP 地址,例如指定服务器的 IP 地址为 127.0.0.1。
  • -p 是用来设置 Memcached 的监听端口,默认端口为 11211。建议设置 1024 以上的端口。
  • -c 是指最大运行的并发连接数,默认是 1024。可按照您服务器的负载量来设定。
  • -P 是指设置保存 Memcached 的 pid 文件,例如保存在 /tmp/memcached.pid 位置。

7、备份数据。

为避免数丢失,升级前请做好备份,或者建立 ECS 硬盘快照。

8、云盾检测及防护。

使用云盾安骑士自动检测不安全的配置项。

腾讯云关于 Memcached的安全加固方案

1、如果您使用到了 Memcached 服务,请务必禁用 UDP 支持,Memcached 启动时,建议添加“-U 0”参数可完全禁用 UDP(默认情况下,Memcached 会侦听 INADDR_ANY,并默认启用 UDP)细节可参考官方说明文档

2、腾讯云用户建议开启安全组防火墙,确保 Memcached 服务器与互联网之间无法通过 UDP 来访问,配置可参考如下:

2.1 进入腾讯云控制台,打开安全组配置界面,操作如下:

关于Memcached UDP拒绝服务放大攻击漏洞的修复方案 最新资讯 第3张

2.2 修改或添加安全组策略,策略配置参考如下(规则作用:禁止外部入向的 11211 端口 UDP 流量):

关于Memcached UDP拒绝服务放大攻击漏洞的修复方案 最新资讯 第4张

3、若您的 Memcached 服务必须使用到 UDP,建议始终以较小的数据包来响应,否则可能导致协议会被滥用进行放大攻击;

4、验证方法

修复完毕后,您可以在服务器上运行下面的命令来测试服务器是否易受攻击或修复措施是否生效:

  1. echo -en "\x00\x00\x00\x00\x00\x01\x00\x00stats\r\n" | nc -u 127.0.0.1 11211
  2. STAT pid 21357
  3. STAT uptime 41557034
  4. STAT time 1519734962
  5. ...

查看返回内容,若返回内容非空(如上图所示),则表明你的服务器可能在受影响之列。

备注:腾讯云云缓存 Memcached 产品采用自研架构,未使用 UDP 协议,默认不受该问题影响,您可以放心使用!

拓展阅读

您可能感兴趣的文章

文章标签: ,   ,  
温馨提示:文章内容仅代表作者个人观点,不代表boke112导航赞同其观点和对其真实性负责!
版权声明:本文内容来源于互联网资源,由  整理汇总,如有侵权请留言告知!
©boke112导航,本站推荐使用:阿里云 ECS服务器等云产品服务,国外免备案主机建议使用:老薛主机
整理砖家

 发表评论

中国赞表情摊手表情吃瓜表情笑哭表情偷笑表情衰表情汗表情思考表情费解表情抓狂表情晕表情流泪表情疑问表情嘻嘻表情吃惊表情鼓掌表情

  1. 靠谱学生兼职网
    靠谱学生兼职网 @回复

    恩,我是用腾讯云的,学习一下

  2. 狂放
    狂放 @回复

    这种东西,我都是放本地跑的直接不开放好了哈哈

  3. 沈唁志
    沈唁志 @回复

    还没用到memcached

  4. 梁兴健
    梁兴健 @回复

    最近更新好快,一天更新两三篇了,之前都是一天一篇 [嘻嘻]

  5. 薅羊毛
    薅羊毛 @回复

    文章有一地方有错误 先上来在 iptables 中添加此规则只允许 192.168.0.2 这个 IP 对 11211 端口进行访问。
    然后后面都是又对192.168.0.1 这个限制
    到底是.1还是.2

    • 懿古今
      懿古今2018-03-03 09:09  回复

      @薅羊毛[疑问] 本文没有出现192.168.0.1的内容哦,第一个运行 192.168.0.2的意思是你对公网开发,可以指定开发给某个IP,这个只是举例。后面说的是不对公开发,可以直接绑定127.0.0.1。意思是不一样的。

  6. 钟水洲博客
    钟水洲博客 @回复

    方案收下啦,可是不想以后用得上

  7. 靠谱学生兼职网
    靠谱学生兼职网 @回复

    确实是有用的知识

  8. 煮只鸡
    煮只鸡 @回复

    [囧] 很久以前我一直觉得,这些安全问题与我无关,自从去年遇到问题后,才对安全问题重视起来。

  9. 老费网赚
    老费网赚 @回复

    好久没有来了

  10. 银色月航
    银色月航 @回复

    阿里云的默认11211没打开,应该问题不大吧

  11. 西枫里博客
    西枫里博客 @回复

    一直没用到Memcached,有类似常见使用redis代替。不过redis也有个安全问题

  12. 薅羊毛
    薅羊毛 @回复

    不懂 这个本来就是走内网吧 如果感觉不安全直接把这个端口禁用就是了

  13. 明月登楼学习笔记
    明月登楼学习笔记 @回复

    还好,我昨天就停用 Memcached 了!哈哈!