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

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


经过

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

两天之后数据库中的数据又消失,查看数据库中出现
记一次 MySQL 数据库遭比特币病毒处理方法_第1张图片

追查

记一次 MySQL 数据库遭比特币病毒处理方法_第2张图片

通过查看日记发现有来自香港的警告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 数据库遭比特币病毒处理方法_第3张图片

  • 修改mysql配置后

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

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

恢复数据

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

  • 查看binlog地址

    • 记一次 MySQL 数据库遭比特币病毒处理方法_第4张图片

    • 记一次 MySQL 数据库遭比特币病毒处理方法_第5张图片

  • 将binlog文件导出成sql文件

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

    • 记一次 MySQL 数据库遭比特币病毒处理方法_第6张图片
  • 通过 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端口

你可能感兴趣的:(数据库,mysql,服务器)