删库勒索比特币!这个六一过的有意思!
没有删库跑路,却有删库勒索比特币!哈哈哈哈😄
下面给大家讲述一下今年六一儿童节发生了啥和咋解决的。
1. 事件发生
之前在腾讯云买了台基础配置的服务器,平时就部署一些练手项目,朋友偶尔也借用一下部署小项目。昨天朋友突然发消息说数据库查不出数据,让我看看咋回事。我打开Navicat一看,真的是一脸懵逼…
什么情况这是?咋多了一个数据库?其他数据库怎么数据都没了,都是同一张表?
一通搜索操作,才知道原来是被黑客勒索。幸亏这个数据库是我和朋友用来测试的,平时都是自己做一些测试用,没有什么有用的数据,这种情况就直接删除镜像重新部署一个吧。
2. 事件复盘
这个MySQL实例是使用Docker部署的,从笔记里面找到当时启动命令:
1 | docker run -d -p 3306:3306 --name mysql_test01 \ |
看我的作死操作:
- root账户开启
- 弱口令(密码1234)
- 端口直接暴露(而且安全策略3306端口开放外网访问)
通过上面一波猛如虎的操作,我这个MySQL实例就是裸奔的节奏😂。
而且腾讯云很早就提醒有异地登录,我一直以为是朋友那边登录的,就没注意。
3. 防范步骤
经过一番搜索请教和实践,总结了下面几个防范步骤,供大家参考:
3.1 云服务器后台设置
云服务器厂家一般都会提供一些安全策略,建议大家都打开相关配置。例如异地登录等等都是可以提前通知管理员,提早做出风险防范。
3.2 开启MySQL日志
1 | vi /usr/local/mysql/etc/my.cnf |
3.3 MySQL配置鉴权
MySQL安装默认需要设置密码,安装时如果设置了弱口令,可通过以下几种方式修改密码:
- UPDATE user SET password=PASSWORD(‘新密码’) WHERE user=’root’; FLUSH PRIVILEGES;
- SET PASSWORD FOR root=PASSWORD(‘新密码’);
- mysqladmin -u root -p 旧密码 新密码
一定要注意不要使用弱口令,推荐数字、字母和字符混合使用。
3.4 避免root和端口暴露
- 不要在代码中使用root账户,同时注意控制MySQL运行账户权限,尽量让其权限最小
- 内网系统关闭公网访问,避免默认端口直接暴露
- 启动参数或配置文件中设置
bind-address
,绑定内网IP
3.5 备份
- 备份表结构和数据
- 备份表结构和数据
- 备份表结构和数据
重要的事情说三遍!!!
4. 总结
想想自己能经历这一次数据库勒索还挺有意思的。这一番折腾确实让我感受到网络安全的重要性,同时也增强自己的安全意识。无论是开发公司项目还是个人练手项目都要严谨一些,习惯是慢慢养成的。
敬畏每一行代码!
欢迎大家关注😁