记录一次数据库被攻击
事发经过
最近在做一个项目,数据放在云服务器的docker上跑的mysql
下午还在写代码测数据,晚上回来连接的时候报错
“null, message from server: “Host ‘xxxx‘ is not allowed to connect to this MySQL server“
第一时间想的是是不是远程容器停了,上去后发现在运行
然后查了这个错误,是登录用户没有对应ip的连接权限,这就很奇怪,明明下午可以用
然后想到是不是用的梯子自动切换了不常用的ip
但没理由,之前设置root的权限连接ip是%,也就是所有ip
那么直接登上服务器的数据库查看
1 |
|
竟然root的host 变成了localhost,此时意识到不对劲
把host修改为%后连接查看
好家伙,我的数据库表没了,取而代之的是这东西
全文是:
readme: 您的数据库已删除。您必须支付 0.013 比特币 (BTC) 才能取回它们。我拥有的备份:community。通过 gong31248@tutanota.com 与我联系 只有与付款相关的邮件才会得到答复!
BTC_address: bc1q6vrkdyxk9w4a0guw75xfkylg7qj22fylcp4e9q
email: gong31248@tutanota.com
我的数据库被攻击了!!!
事后处理
查看日志
看看能不能挽救,立刻去网上查,发现有一个老哥遇到的问题和我几乎一样,但他的文件我这里没得,尴尬
数据恢复
别看了,没有备份。。。
总结
猜测被攻击的原因
- 暴露的端口是3306,太常见了,我用数据库的时候都用的默认值,容易被攻击
- 密码过于简单
- 之前暴露过自己的服务器ip
解决方案
- 更改常用的端口,不适用3306,改成其他的端口
- 使用复杂密码
最后,就是以后一定会注意数据库的安全相关内容,这次被攻击的数据库只是自己的刚开始的项目的数据,没有太多重要的内容,所以重建也还好,但如果涉及到一些比较重要的内容,可能就要面临很大的问题了
参考连接
(16条消息) MySQL数据库被攻击,被删库勒索,逼迫我使出洪荒之力进行恢复数据_Java技术债务的博客-CSDN博客