记一次数据库被勒索的经历
# 事情经过
我使用阿里云服务器和阿里云RDS搭建了一个 gitea 用作平时的代码仓库,过年的时候没怎么使用,今天登录上去发现页面报500错误。

我登录服务器查看日志发现是因为无法连接到数据库。
登录数据发现数据库被清空了,只留下一个名为recover_your_data
的数据库
🧐 勒索0.0082个BTC,大约795.22美元。
由于这个RDS数据库是在阿里云里免费领取三个月的试用,所以在安全措施方面没有做好,密码设置的太过简单。
# 尝试恢复
阿里云RDS是有100GB的免费备份使用量的,还好有数据备份保留。
下面介绍一下数据恢复的流程:
选择备份恢复
恢复数据需要一个数据库实例,先要使用备份文件恢复到另一个数据库实例上,确认无误后,然后通过数据迁移回来。
发现被删除的数据库出现了。
使用新的数据库连接上,发现数据库没有数据丢失。
将数据库迁移回原有的RDS
选择库表结构迁移和全量迁移(由于这几天没有数据写入库)
数据就迁移成功了,虽然只有7.8M,但是数据无价😃。
重新设置安全策略。
- 不在轻易使用root账户,增加了一个专用账户。
- 修改一个更复杂的密码。
- 修改端口号。
及时释放掉新的数据库资源,不然后台扣钱💸。
# 后记
吃一堑,长一智。
为了数据安全,保护数据免受丢失或被黑客入侵,常见的保护措施如下:
加密
- 密码不能设置的太过简单。
- 必要时使用加密技术对存储在数据库中的敏感数据进行加密,确保即便数据被盗取,未经授权的用户也无法读取。
- 数据的传输过程加密。
访问控制
- 最小权限原则:数据库用户和应用程序只应拥有执行其工作所需的最低权限,减少不必要的访问权限。
- 基于角色的访问控制 (RBAC):为不同的用户角色(如管理员、普通用户等)配置不同的访问权限。
备份和恢复
- 定期备份:定期备份数据库(每天、每周),确保备份文件的存储安全。
- 灾备恢复计划:建立数据恢复方案,确保在数据库遭遇故障或数据丢失时可以快速恢复。
监控和审计
- 日志审计:记录并审查所有数据库的操作日志,检测潜在的异常行为或攻击。
- 入侵检测系统 (IDS):使用IDS检测不正常的活动,比如 SQL 注入、暴力破解等攻击行为。
- 实时监控:持续监控数据库的访问和操作,识别任何可疑的活动,并及时响应。
防火墙和网络隔离
- 网络隔离:尽量使得数据库服务器与其他关键系统隔离,减少攻击面。使用 VPN 或私有网络进行内部通讯。
- 防火墙:设置数据库防火墙以过滤不合法的请求,限制非授权访问。
其他
扫描数据库漏洞、及时更新补丁、SQL注入防护。
使用者不要使用盗版、破解的数据库管理工具。
上次更新: 2025/04/09, 14:47:54