数据安全:一次 VPS 宿主机被入侵的事件记录
本文最后更新于 2024年10月25日 中午
即使是一个经营了长达 11 年的商家,还是会出现整台 VPS 母鸡被黑客入侵的情况。
并且令人感到愤怒的是,商家还对此做了隐瞒,不愿意承认是被入侵并泄露数据,而把责任归咎于是 RAID 出现故障。
经过这次事件,我再也不想去相信中小厂的公有云服务了。
强烈建议,在任何 VPS 部署服务时,做好 数据加密存储,并不在服务器上存储任何明文的 token 或密码。
以及,及时的备份数据。
事件经过
1 - 系统宕机和绿云工单回复
2024-10-21 16:24
我发现一台在线时长将近一年的绿云 10 周年 VPS 自动重启了。
当时没太在意,以为就是例行维护。
随后我发现我的一些需要写入数据库的服务变得不可用,比如 seafile
和 vaultwarden
。
登录上服务器发现文件系统全部变成了 read-only
。
于是我发了一个工单:
发工单后,我发现服务器直接宕机了,并且通过 SolusVM 面板无法进行重启。
2024-10-21 18:16
绿云客服回复,说是遇到了罕见的 RAID 故障。
当时我认为,这种便宜的机器也许就是 RAID0 吧,如果修不好可能数据就没了。
不过好在做了备份。
2024-10-22 17:29
经过了一天的时间,发邮件询问情况。
绿云客服回复,RAID 无法恢复,只能 rebuild。
补偿是 1 年时间,或者按照购入价格全额退款。
2 - 商家的隐瞒
2024-10-23
lowendtalk 网友发帖,披露 VPS 数据被入侵。
原贴地址:https://lowendtalk.com/discussion/198766/my-greencloud-vps-got-ransomwared-the-entire-mothership/p1
该网友进入了救援模式 (Rescue Mode)[1]后,可以看到所有的文件都被修改成了 xxx@cock.li
我在进行相同操作的时候,确实也发现了,所有的文件都被 改名并加密,直接 google 搜索 junglesec,可以发现这是一个黑客组织,主要以勒索攻击(ransomware)而闻名。[2]
究竟发生了什么
搜索一下关键字 junglesec
, VPS
, IPMI
,就大概可以看懂是数据是如何被入侵的了。
IPMI(智能平台管理接口) 是一种集成在服务器主板上的系统管理固件,这种固件允许管理员在操作系统无法访问时仍能进行远程管理,例如重启系统、查看系统状态等。因此,IPMI 提供了对系统的深层次访问权限。
本次服务器攻击的步骤
-
通过 IPMI 登录获取访问权限:
-
攻击者首先寻找启用了 IPMI 的设备,特别是那些使用默认密码且未充分加固的 IPMI 接口。
-
一旦攻击者登录成功,就可以通过 IPMI 远程控制服务器,即使系统的操作系统崩溃也能进行操作。
-
-
重启系统进入单用户模式:
- 攻击者利用 IPMI 的远程访问功能,将目标服务器重启到单用户模式(Single User Mode)。在这个模式下,系统只加载必要的服务,并为管理员提供 root 权限,而无需输入密码。
- 攻击者在单用户模式下可以绕过所有用户账户的认证机制,直接获得系统的最高权限。
-
下载并编译加密程序:
- 获得 root 权限后,攻击者在系统中下载并编译一个名为 ccrypt 的加密程序,攻击者利用它来加密系统中的所有文件。
-
发送勒索邮件
这并不是一个比较新鲜的攻击方式了,可以看到非常多的相关案例[3][4]
我们应该做什么
在事件发生之后,我选择了退款 + 重新迁移数据到阿里云。
同时,由于之前过于相信商家 + 懒惰,很多备份的脚本和一些其他的定时任务,比如 vps 之间的 ssh 鉴权,比如许多上传和下载的 api key 和 token,我都明文保存在了 VPS 上。
因此,我重置了一些重要平台比如 google drive, onedrive, github, gitlab 的 auth token,同时清理了所有 vps 上的 authorized_keys
。
还好目前部署的东西大多是玩具,这是一次很好的教训,之前用云服务的时候其实一直忽略了数据安全和隐私,觉得许多事情离我太遥远,然而当事情真正发生到自己身上时,再后悔就晚了。
一个很容易想到但是许多人压根不 care 的事情是,只要你的文件是明文存储的,那么 vps 厂商就可以读到你的明文文件。[5]
因此,当 vps 宿主机出现被入侵时,你的文件也可以被其他人明文读取。
所以,最好的防护措施是:
- 尽量只用大厂服务。
- 敏感信息不上云,上云就做好端到端加密和及时的备份。
- 不要在 vps 的一些 cronjob 中明文配置一些密码和token。
- 真正重要的基础服务还是不要自建,或者采用更鲁棒的方式比如做 k3s 之类的集群,否则关键时候出问题,即使有数据备份恢复起来还是很麻烦。
相关概念
1 - rescue mode
救援模式(Rescue Mode)是虚拟专用服务器(VPS)提供的一种应急维护功能,允许用户在无法正常启动系统或发生重大问题时,进入一个最小化的操作环境进行排障和修复。它通常是一个轻量级的 Linux 环境,不依赖原有的操作系统,类似于单机版的安全模式或Live CD。
2 - junglesec
JungleSec 是一个黑客组织,主要以勒索攻击(ransomware)而闻名。该组织的活动在网络安全圈中引起了广泛关注,其主要手段是针对企业或个人的系统进行未授权访问,并通过加密文件或劫持网络基础设施实施勒索。
主要的攻击方式:
- 勒索软件攻击:
JungleSec 通常在侵入目标系统后,将关键文件加密,并要求受害者支付赎金(通常以比特币等加密货币支付),否则威胁删除或公开敏感数据。- 攻击向量:
他们利用系统中的已知漏洞、弱密码、以及未充分配置的管理接口(如 IPMI,BMC)等来侵入系统。IPMI(Intelligent Platform Management Interface)是他们的主要目标之一,这是一种用于远程管理服务器的接口,如果未安全配置,就容易被攻击者利用。- 赎金要求:
JungleSec 的攻击一般要求受害者支付一定金额的比特币或其他加密货币。如果不支付,受害者的数据将无法解密。
ref
- rescue mode ↩
- https://helpdesk.kaseya.com/hc/en-gb/articles/4407512513425-JungleSec-Ransomware-via-IPMI ↩
- https://www.bleepingcomputer.com/news/security/junglesec-ransomware-infects-victims-through-ipmi-remote-consoles/ ↩
- https://www.google.com/search?q=junglesec+ipmi ↩
- V2EX: 好奇很久的问题:云主机提供商能不能读取到用户放在主机中的数据? ↩