话说前面一篇刚把单机多实例搞定了,还没有来得及做安全方面的措施,我再次访问 redis-cli -h 127.0.0.1 -p 6379 发现不能连接了,再一看进程,发现redis进程连毛都没有找到一根儿,顿时心里一凉,不好。

于是赶紧重启,失败了,同时发现手机短信通知,6379端口已被云服务商禁用。好吧,事情又多起来了。

经过一番排查,发现所有redis数据全被清除,所有history操作记录都清空,还有什么操作不得而知,不过最终锁定–中毒了!

「矿机蠕虫病毒」namunil来袭,其使用不知名的矿池,当下基于区块链所发行都币种实在太多了,这些渣渣币需要通过流氓手段才能炒起来也是费心了。

大概解释下为什么会中这个病毒:因为我一开始使用的是redis 6379默认端口、绑定所有IP(便于远程开发)、没有加密、使用root启动redis,总上所诉,被扫描到那是自然的事。同时,攻击者借助于redis的持久化功能将病毒脚本写入到系统的各个角落并执行,比如定时任务crontab(20分钟执行一次病毒脚本),比如写入~/.ssh/authorized_keys,加入redisX公钥认证以便完全控制机器,总之,其他能想到的开机启动脚本都有该病毒鸡贼的身影。截个图纪念下:

其中最后一行,“pnscan”我差点漏掉,这个是蠕虫病毒,而且了解到,攻击者可能会随时换个名字,当你看到这篇小文时,说不定已经换名字了,所以万全之策就是“ps -ef”查看所有进程,特别注意奇怪的进程,同时看启动时间,比如我这里就是0点后又启动的(之前一次没有清理干净),通过这个时间就可以怀疑是否病毒。

具体清理过程如下:

  • crontab  -r  # 删掉定任务,并检查其他用户,20分钟执行一次,必须先干掉
  • 删除 /var/spool/cron/crontabs/下对应的病毒内容
  • rm -R ~/.ssh/authorized_keys # 删除公钥认证,同时查看其他用户是否存在异常公钥
  • killall pnscan # 删除所有pnscan进程,可能换名字了,需留心分辨
  • kill -9 # 所有带namunil.com的进程,特别要留心
  • vim /etc/rc.d/rc.local # 删除其中带有“namunil”内容并保存
  • 检查/etc/init.d/是否有病毒脚本,有则删之
  • find / -name pnscan # 查找并删除对应目录

经过以上步骤基本能搞定这次的病毒,如果不行,请继续排查,病毒无处不在。

清除结束后,以其他端口再次启动服务,设置redis密码,至少30位以上,而eddy说要设置40-50位密码,不得不说他是对的。

至于6379端口,又要去麻烦那些客服大爷了。时间、时间、时间!

更多安全设置请查看官网https://redis.io/topics/security

欢迎留言!

22 “眼睛就是身上的灯。你的眼睛若了亮,全身就光明;
23 你的眼睛若昏花,全身就黑暗。你里头的光若黑暗了,那黑暗是何等大呢!”
–马太福音6:22-23

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.