背景
话说,我开了一台腾讯云服务器跑redis-server,并将其配置为无须密码对外开放,方便我本地调试代码。
今天下午却意外发现云主机被关机了,上午我还用来调试代码呢,重新开机并登陆查看系统日志发现有个俄罗斯的IP地址登陆了系统并关闭了我的redis-server且关机。系统日志如下:
#/var/log/auth.log:
Dec 9 14:41:32 localhost sshd[25235]: Accepted publickey for root from 185.153.198.57 port 36148 ssh2: RSA SHA256:SdMM2Kh/nCGqWmXuFENkv7FV1ED4sXqlohMIfGmXLl8
#/var/log/syslog:
Dec 9 14:41:32 localhost systemd[1]: Started Session 58722 of user root.
Dec 9 14:41:35 localhost systemd[1]: session-33891.scope: Killing process 12706 (redis-server) with signal SIGTERM.
Dec 9 14:41:35 localhost systemd[1]: Stopping Session 33891 of user root.
Dec 9 14:41:35 localhost systemd[1]: Stopping User Manager for UID 0...
Dec 9 14:41:35 localhost systemd[1]: Stopped target Graphical Interface.
Dec 9 14:41:35 localhost systemd[1]: Stopped target Multi-User System.
提交工单
本着以玩一玩的状态搜索了一下,并以试一试的心态向腾讯云提交了安全工单,没想到腾讯云的工程师还是很敬业的。
您好, 服务器上部署的业务应用安全这边无法为您保证安全,建议您从如下方面排查:
1、排查redis是否存在“未授权访问”漏洞:
https://security.tencent.com/index.php/blog/msg/106
2、请您做好如下服务器上如下方面的防护,排查:
https://cloud.tencent.com/document/product/296/9604
攻击过程
首先是黑客通过reids未授权访问漏洞,将自己的公钥注入到/root/.ssh/authorized_keys
,然后以ssh方式登陆就实现了getShell(取得权限),之后想干啥就干啥了嘛。从系统日志里可以看到,从登陆到关机只用了3秒,应该是跑脚本。我还发现一个勒索文件/root/READ_ME.txt
,原文如下:
Hi, please view here: https://privatebin.net/?164d29ebef7cb0db#B0S90pWwdsGUS3H3+NAEjWfHVO9S2DmJq6BVPTasWTU= for information on how to obtain your files!
打开网址一看,说他已经转移了我的文件,只有交了0.1个比特币并发邮件告诉他其它详细信息才会归还我的资料。(心中一万个草泥马奔过,如果我公司的数据库因此丢失且没法恢复,我估计要跑路了,毕竟被偷走的东西给再多的钱不可能还回来的,时值比特币一个月内狂涨十倍价值十万元一枚……)我表面毫无波动,甚至在内心觉得可笑,这服务器什么重要的资料都没有。。。
教训
我一定会听话地学习安全排查,数据库的东西必须每天备份转移。