redis千万不要暴露公网,一定要加固!! Redis 没有设置过期时间,为什么一晚上过去数据没有

情况:

设置了key,默认永久,但第二天再看,缓存消失了。很奇怪。
看了网上的分析,极有可以被黑了。

感染原因如下:

 

Redis 默认情况下,会绑定在 0.0.0.0:6379,在没有利用防火墙进行屏蔽的情况下,将会将 Redis 服务暴露到公网上,如果在没有开启认证的情况下,可以导致任意用户在可以访问目标服务器的情况下未授权访问 Redis 以及读取 Redis 的数据。攻击者在未授权访问 Redis 的情况下利用 Redis 的相关方法,可以成功将自己的公钥写入目标服务器的 ~/.ssh 文件夹的 authotrized_keys 文件中,进而可以直接登录目标服务器;如果 Redis 服务是以 root 权限启动,可以利用该问题直接获得服务器 root 权限。

经过对捕获的事件进行分析,整个入侵流程大概是包含以下几个环节:

  • 扫描开放 6379 端口的 Linux 服务器(后续感染扫描网段为 1.0.0.0/16 到 224.255.0.0/16 )
  • 通过 redis-cli 尝试连接 Redis 并执行预置在.dat 文件里的利用命令将 Redis 的数据文件修改为 /var/spool/cron/root,然后通过在 Redis 中插入数据,将下载执行脚本的动作写入 crontab 任务
  • 通过脚本实现以上的相关行为,完成植入并启动挖矿程序

Redis 服务加固

  • 导致入侵的主要原因是 Redis 未授权访问问题,所以如果要扼制入侵的入口,需要针对 Redis 服务进行加固,避免黑客通过该途径进行入侵植入挖矿蠕虫。
  • 如无必要,修改 bind 项,不要将 Redis 绑定在 0.0.0.0 上,避免 Redis 服务开放在外网,可以通过 iptables 或者腾讯云用户可以通过安全组限制访问来源
  • 在不影响业务的情况,不要以 root 启动 Redis 服务,同时建议修改默认的 6379 端口,大部分针对 Redis 未授权问题的入侵都是针对默认端口进行的
  • 配置 AUTH,增加密码校验,这样即使开放在公网上,如果非弱口令的情况,黑客也无法访问 Redis 服务进行相关操作
  • 使用 rename-command CONFIG "RENAME_CONFIG"重命名相关命令,这样黑客即使在连接上未授权问题的 Redis 服务,在不知道命令的情况下只能获取相关数据,而无法进一步利用

以上来源:https://www.v2ex.com/t/584369#reply52

 

posted @ 2021-02-03 10:55  嘉美祥瑞  阅读(1217)  评论(0编辑  收藏  举报