漏洞概要
Redis 默认情况下,会绑定在0.0.0.0:6379,这样将会将Redis服务暴露到公网上,如果在没有开启认证的情况下,可以导致任意用户在可以访问目标服务器的情况下未授权访问Redis以及读取Redis的数据。攻击者在未授权访问Redis的情况下可以利用Redis的相关方法,可以成功将自己的公钥写入目标服务器的 /root/.ssh 文件夹的authotrized_keys 文件中,进而可以直接登录目标服务器。
容易遭受入侵的环境
用户自建的运行了 Redis 服务的 Linux 主机,依root身份运行Redis服务,并在公网上开放了6379 的 Redis 端口。
入侵现象
1. Redis 可能被执行过flushall 命令
2. Redis 内建了名为 crackit的 key
3. Redis 的 dir 参数指向了/root/.ssh
4. /root/.ssh/authorized_keys 被覆盖或者包含 Redis相关的内容
修复办法
1. 以非 root 权限启动 Redis
2. 增加 Redis 密码验证
3. 禁止公网开放 Redis 端口, 例如可以在青云防火墙上禁用6379 Redis 的端口
4. 检查authorized_keys 是否非法