事件经过
今天早上7:00,收到腾讯云监控发来基础监控告警:某台服务器的CPU利用率为100%。SSH登录到服务器正常,说明root密码还没有被更改,我最初怀疑有可能是DDos攻击。
执行top命令:
发现有个名为qW3xT.2的程序CPU占用高达397.3%,服务器为4核8G,那就基本上把所有CPU资源占了,也就是腾讯云发来的CPU使用率大于99%。
Google搜索第一条显示这是一个矿机程序。
那就是说明云服务器被矿机程序破解了。
- 切换到/tmp目录:
有两个可执行程序ddgs.3013和qW3xT.2
- 查看定时任务:
解决方案
1,删掉/tmp下的ddgs.3013和qW3xT.2
2.,删掉cron任务
原因
云服务器上近期搭建了一个redis服务,没采用密码验证,挖矿程序就是通过Redis拿到了系统的控制权。
关于reidis 未授权登陆漏洞
漏洞概要
Redis 默认情况下,会绑定在 0.0.0.0:6379,这样将会将Redis服务暴露到公网上,如果在没有开启认证的情况下,可以导致任意用户在可以访问目标服务器的情况下未授权访问Redis以及读取Redis的数据。攻击者在未授权访问Redis的情况下可以利用Redis的相关方法,可以成功将自己的公钥写入目标服务器的 /root/.ssh 文件夹的authotrized_keys 文件中,进而可以直接登录目标服务器。
漏洞描述
Redis 安全模型的观念是: “请不要将Redis暴露在公开网络中, 因为让不受信任的客户接触到Redis是非常危险的” 。
Redis 作者之所以放弃解决未授权访问导致的不安全性是因为, 99.99%使用Redis的场景都是在沙盒化的环境中, 为了0.01%的可能性增加安全规则的同时也增加了复杂性, 虽然这个问题的并不是不能解决的, 但是这在他的设计哲学中仍是不划算的。
因为其他受信任用户需要使用Redis或者因为运维人员的疏忽等原因,部分Redis 绑定在0.0.0.0:6379,并且没有开启认证(这是Redis的默认配置),如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源 ip访问等,将会导致Redis服务直接暴露在公网上,导致其他用户可以直接在非授权情况下直接访问Redis服务并进行相关操作。
利用Redis自身的相关方法,可以进行写文件操作,攻击者可以成功将自己的公钥写入目标服务器的 /root/.ssh 文件夹的authotrized_keys文件中,进而可以直接登录目标服务器。 (导致可以执行任何操作)
参考