记录一次数据库被攻击

事发经过

最近在做一个项目,数据放在云服务器的docker上跑的mysql

下午还在写代码测数据,晚上回来连接的时候报错

“null, message from server: “Host ‘xxxx‘ is not allowed to connect to this MySQL server“

第一时间想的是是不是远程容器停了,上去后发现在运行

然后查了这个错误,是登录用户没有对应ip的连接权限,这就很奇怪,明明下午可以用

然后想到是不是用的梯子自动切换了不常用的ip

但没理由,之前设置root的权限连接ip是%,也就是所有ip

那么直接登上服务器的数据库查看

1
2
use mysql ;
select user,host from user;

竟然root的host 变成了localhost,此时意识到不对劲

把host修改为%后连接查看

好家伙,我的数据库表没了,取而代之的是这东西

image-20230517214251128

全文是:

readme: 您的数据库已删除。您必须支付 0.013 比特币 (BTC) 才能取回它们。我拥有的备份:community。通过 gong31248@tutanota.com 与我联系 只有与付款相关的邮件才会得到答复!

BTC_address: bc1q6vrkdyxk9w4a0guw75xfkylg7qj22fylcp4e9q

email: gong31248@tutanota.com

我的数据库被攻击了!!!

事后处理

查看日志

看看能不能挽救,立刻去网上查,发现有一个老哥遇到的问题和我几乎一样,但他的文件我这里没得,尴尬

数据恢复

别看了,没有备份。。。

总结

猜测被攻击的原因

  1. 暴露的端口是3306,太常见了,我用数据库的时候都用的默认值,容易被攻击
  2. 密码过于简单
  3. 之前暴露过自己的服务器ip

解决方案

  1. 更改常用的端口,不适用3306,改成其他的端口
  2. 使用复杂密码

最后,就是以后一定会注意数据库的安全相关内容,这次被攻击的数据库只是自己的刚开始的项目的数据,没有太多重要的内容,所以重建也还好,但如果涉及到一些比较重要的内容,可能就要面临很大的问题了

参考连接

(16条消息) MySQL数据库被攻击,被删库勒索,逼迫我使出洪荒之力进行恢复数据_Java技术债务的博客-CSDN博客


记录一次数据库被攻击
https://kkkkkong.github.io/posts/26533.html
作者
Kong Weichao
发布于
2023年5月17日
许可协议