Redis 默认情况下,会绑定在 0.0.0.0:6379,这样将会将 Redis 服务暴露到公网上,
如果在没有开启认证的情况下,可以导致任意用户在可以访问目标服务器的情况下未授权访问Redis 以及读取 Redis 的数据。
攻击者在未授权访问 Redis 的情况下可以利用 Redis 的相关方法,可以成功在 Redis 服务器上写入公钥,进而可以使用对应私钥直接登录目标服务器。
入侵特征:
Redis 可能遭受入侵者执行FLUSHALL命令,整个 Redis 数据库被清空。
入侵者会在 Redis 数据库中新建了一个名为 crackit(网上流传的命令指令) 的键值对,内容为一个 SSH 公钥。
在 /root/.ssh 文件夹下新建或者修改了 authorized_keys 文件,内容为 Redis 生成的 db 文件,包含上述公钥。
加固建议:
1、限制侦听地址,禁止外网访问Redis:
修改redis.conf文件,添加或修改
bind 127.0.0.1 只侦听本机,适用于只在本机使用的redis服务
如果redis并不是只用在本机,而是用于给内网的其它服务器使用的话,那就指定具体本机的内网IP地址,如:
bind 172.16.0.2 之类
2、修改默认端口6379为其它端口
3、设置密码验证:
修改redis.conf,添加或修改:
requirepass mypassword (mypassword替换成你要设置的密码)
4、以低权限运行Redis服务
为Redis服务创建单独的用户和家目录,并且配置禁止登录。
5、将高危命令修改成自定义的别名或直接禁用(可选)
例如禁止高危命令:
在配置文件中加入以下:
rename-command FLUSHALL “”
rename-command CONFIG “”
rename-command EVAL “”
来禁用远程修改DB文件地址