起因
今天是 2 月27 号星期四, 像往常一样在上班的路上. 手机突然收到一条小众字眼的短信
想了想之前确实用云服务器跑了一些 BTC 量化交易的回测脚本, 没当回事
服务器发生什么了?
这是去年 8 月份买的一台 2C 2G 的轻量云服务器
用来运行一些远程服务, uptime 监控 | Redis | Postgres
平时几乎没任何 CPU 消耗, 因为只用于自己开发时读写数据库, 并发量很小
鉴于阿里云通知我是存在挖矿活动, CPU 一定是长时间达到使用峰值才会发生警告
午休时间打开服务器监控, 一整个被震惊了
第一反应是被 DDos 攻击了
看了下容器列表, Postgres CPU 占用超过了 90%, 让我有点意外
此时数据库中被注入了两条信息:
All your data is backed up. You must pay 0.0053 BTC to bc1qm0v2r0mmx3py3h7fzkerd9a6rzdrpw5afqacen In 48 hours, your data will be publicly disclosed and deleted. (more information: go to http://2info.win/psg)
After paying send mail to us: rambler+3h0r@onionmail.org and we will provide a link for you to download your data. Your DBCODE is: 3H0R
原来是被勒索了, 数据被全部劫持, 需要给对方支付 BTC 才能恢复数据. 不过好在这个数据库没有敏感数据和生产数据
直接选择重新构建容器, 暂时解决了这个事情
这下不得不先关闭了服务器的各个端口
复盘
首先是数据库容器的问题, 管理员用户使用了默认的 postgres, 密码使用了国密 123456 😂, 当时图省事, 没想到成了这次勒索事件的导火索
同时没有给数据库配置 SSL 证书, 让 pg 的端口直接在公网上裸奔 🏃, 配置 SSL 示例:
# postgresql.conf
ssl = on
ssl_cert_file = 'server.crt'
ssl_key_file = 'server.key'
# pg_hba.conf
hostssl all all 0.0.0.0/0 md5
最后服务器没有做命令脱敏, 被 hacker 成功植入了挖矿程序
不过光靠云厂商的防火墙, 确实很难做到全方位的安防, 主要还是需要在服务器中配置好安防策略