memcached是一套分布式的高速缓存系统。它以Key-Value(键值对)形式将数据存储在内存中,这些数据通常是应用读取频繁的。正因为内存中数据的读取远远大于硬盘,因此可以用来加速应用的访问。
漏洞成因:
由于memcached安全设计缺陷,客户端连接memcached服务器后无需认证就可读取、修改服务器缓存内容。
漏洞影响:
除memcached中数据可被直接读取泄漏和恶意修改外,由于memcached中的数据像正常网站用户访问提交变量一样会被后端代码处理,当处理代码存在缺陷时会再次导致不同类型的安全问题。
不同的是,在处理前端用户直接输入的数据时一般会接受更多的安全校验,而从memcached中读取的数据则更容易被开发者认为是可信的,或者是已经通过安全校验的,因此更容易导致安全问题。
漏洞修复:
1、先查看11211端口占用情况
命令:netstat -an|more
显示 0 0.0.0.0:11211 即没有做IP限制
配置memcached监听本地回环地址127.0.0.1。
[root@local ~]# vim /etc/sysconfig/memcached
OPTIONS="-l 127.0.0.1" #设置本地为监听,只能本机访问,不对公网开放,保存退出
[root@local ~]# /etc/init.d/memcached restart #重启服务
2、当memcached配置为监听内网IP或公网IP时,使用主机防火墙(iptalbes、firewalld等)和网络防火墙对memcached服务端口进行过滤。
1、先查看11211端口占用情况
命令:netstat -an|more
显示 0 0.0.0.0:11211 即没有做IP限制
2、执行命令:nc -vv x.x.x.x 11211 提示连接成功
3、执行命令