公司redis集群不断丢失数据,莫名进程不断涌起。
经过几天排查,锁定redis被攻击。
很多使用者都是把redis下载到服务器直接运行使用,无ACL,无密码,root运行,且绑定在0.0.0.0:6379,暴露在公网。攻击者在未授权访问 Redis 的情况下通过redis的机制,可以将自己的公钥或者其他恶意程序写入目标服务器中,从而可以直接控制目标服务器。
下面还原攻击情况:
寻找无验证的redis服务:
容易遭受攻击的环境是用户自建的运行了 Redis 服务的 Linux 主机,并在公网上开放了 6379 的 Redis 端口。目前云服务供应商青云已经提供相应解决方案:
1:以非 root 权限启动 Redis
2:增加 Redis 密码验证
3:禁止公网开放 Redis 端口, 如可在防火墙上禁用 6379 Redis 端口
4:检查 authorized_keys 是否非法
比较直接有效的修补加固建议是从环境安全角度进行无需外网访问的可以绑定本地回环,同时需要对外的增加ACL进行网络访问控制。另外还可以借用stunnel等工具完成数据加密传输。给redis设定密码、创建单独的nologin系统账号给redis服务使用、禁用特定命令等有效措施也可以亡羊补牢。