9 月 25 日凌晨,Bitget 的热钱包和温钱包在不到 3 小时里被转走约 3.875 亿美元。
按 Bitget 的公告,以及慢雾、Mandiant 的阶段性调查:私钥没有泄露,冷钱包没受影响,链上合约也没被攻破。攻击者先打下一款第三方安全产品,再冒用员工身份进入钱包服务器,随后把伪造的提币指令直接写进了钱包系统。
Bitget 表示损失由保护基金承担,用户资产不受影响。下面按时间顺序梳理攻击路径,文末给中小团队列一份可以马上自查的清单。
一、时间线
8 月 31 日:首次出现恶意活动
攻击者利用第三方产品 A 某个节点上服务的零日漏洞,运行隐藏脚本,从环境变量里读到数据库密码,连上了数据库。
9 月 23 日、25 日:扩散
另外两个节点上出现了同样的脚本。从第一次入侵到动手转钱,中间隔了三个多星期。
9 月 25 日凌晨:冒用员工身份,进入钱包服务器
攻击者冒用一名内部员工的身份,登录第三方产品 B 的管理平台,借助平台的任务下发和代码执行功能在设备上运行命令。Mandiant 的调查显示,攻击者在产品 B 的设备上部署了 webshell,建立远控通道,从这里进入生产环境的钱包任务服务器,并部署了恶意程序。
9 月 25 日 01:49:定制提币工具开始运行
慢雾从被删除的文件里找回了这个工具,它是专门按 Bitget 钱包系统的提币逻辑写的。
9 月 25 日 02:31:开始转账
先是两笔低于风控阈值的小额测试,约半小时后开始大额转出,跨多条链,持续约 2 小时 52 分钟。伪造的指令在生成提币记录之前就被执行了,风控校验这一步被整个绕了过去。
之后:清理痕迹
攻击者删除伪造指令的痕迹,还尝试篡改提币记录、继续触发 BTC 提币。
时间以慢雾报告为准。Bitget 和多家链上分析机构认为攻击与朝鲜黑客组织有关,目前没有正式定论。
二、这次事件里值得注意的 5 个地方
1. 入口是安全产品本身
公司买安全产品是为了防御,但这类产品通常部署在核心网络里,权限很高。一旦出现零日漏洞,它就成了现成的高权限跳板。
2. 冒用的身份是真实有效的
Bitget 的说法是「冒用的身份信息真实有效」。在系统看来,这就是一次正常的员工登录。只靠账号密码加二次验证,拦不住这类攻击。
3. 能下发任务的管理平台,就是服务器的总钥匙
产品 B 的管理平台能往设备上下发任务、执行代码,攻击者正是借它一路进了钱包服务器。
4. 风控只盯着提币记录
指令在生成记录之前就被执行,风控检查的那一步根本没有被触发。
5. 潜伏了三个多星期
8 月 31 日就进来了,9 月 25 日才动手。中间任何一条异常被发现,结局都可能不一样。
三、中小团队可以马上自查的 5 件事
1. 列出所有「能对服务器执行命令」的系统
堡垒机、运维平台、自动化发布系统、EDR 和其他安全产品的管理后台。逐个确认:谁能登录,从哪里登录,登录后能对哪些机器做什么。
2. 这些后台一律不对公网开放
收进零信任,只允许公司管控的设备按身份访问,每次操作都留日志。
3. 安全产品也要做准入评估
和其他第三方软件一样看:权限是不是过大,厂商出事时能不能第一时间断开,有没有独立保存的日志。
4. 提币要有独立于业务系统的校验
签名前直接核对链上实际要发出的交易,和内部审批记录逐条比对,对不上就不签。
5. 盯住「不该出现的东西」
服务器上新出现的脚本、陌生的数据库连接、深夜登录管理平台。攻击者在内网待了三个多星期,这些迹象都有机会提前暴露。
结语
这次事件里,私钥、冷钱包、合约都没出问题,钱还是被转走了。对大多数中小团队来说,真正的风险也多半在链下:员工电脑、运维平台、第三方软件和签名流程。


