记一次 MySQL 数据库遭比特币病毒处理方法


经过

某日上午,发现公司的某个项目的测试服务器上的项目数据库突然消失,当时并没有找到消失,随后开启了MySQL—binlog日志记录数据库的所有操作。

两天之后数据库中的数据又消失,查看数据库中出现
在这里插入图片描述

追查

在这里插入图片描述

通过查看日记发现有来自香港的警告IP

2022-05-09T07:10:23.227906Z 1769 [Warning] IP address '14.136.219.166' has been resolved to the host name '014136219166.static.ctinets.com', which resembles IPv4-address itself.

恢复数据库

登录

数据库遭到攻击之后,是登录不上数据库的,需要登录服务器配置mysql免密登录

  • 停止mysql服务
    在这里插入图片描述

  • 修改mysql配置后

找到my.ini文件,在[mysqld] 下面添加 skip-grant-tables 然后重启mysql服务

  • 登录数据库添加root用户
  • 配置root用户可以远程连接之后刷新权限

恢复数据

由于上次开启binlog,我们通过binlog来恢复数据

  • 查看binlog地址

    • 在这里插入图片描述

    • 在这里插入图片描述

  • 将binlog文件导出成sql文件

    • mysqlbinlog --no-defaults --database=dbName --base64-output=decode-rows mysql_bin.000001 >d:/my.sql
  • 下载到本地,看一下内容,发现是从220507 11:54:41开始删库的,直接就 DROP 了

    • 在这里插入图片描述
  • 通过 binlog 恢复一下数据库。

 # --start-position="219" 第一次操作库的偏移量
 # --stop-position="9134862" 找一个卸库前的偏移量

mysqlbinlog --no-defaults mysql_bin.000001 --start-position="219" --stop-position="9134862"  | mysql -u root -p

回车->输入密码->回车 检查数据库发现表都还原回来了

安全设置

  • 修改 root 登录密码 ,密码尽量复杂
  • 关掉外网访问改用 ssh
  • 为不同的岗位分配不同的操作用户
  • 禁止开放3306端口
Logo

为所有Web3兴趣爱好者提供学习成长、分享交流、生态实践、资源工具等服务,作为Anome Land原住民可不断优先享受各种福利,共同打造全球最大的Web3 UGC游戏平台。