文章目录
多签人数全部达标,交易内容却已被调包:一次链上攻击该怎样截停
签名设备是否干净、交易哈希是否一致、目标合约有没有变更、调用方法是否符合日常操作、资产流向是否经过新地址、前端文件是否被替换、云端会话是否异常、签名人看到的内容能否与链上原始数据互相验证——安全团队接到大额转账请求时,真正需要检查的是这组变量。任何一项被省略,都可能出现一种极具迷惑性的现场:审批人数符合制度,硬件钱包也正常弹出确认,最终执行的交易却早已偏离原计划。
2025年2月发生的Bybit冷钱包被盗事件,至今仍是链上安全应急中值得反复拆解的案例。攻击涉及约14.6亿美元资产,多名签名人看到的是常规钱包操作,链上实际执行结果却改变了Safe多签钱包的控制逻辑。事后调查披露,攻击者曾入侵Safe开发人员设备,并利用云端会话及被篡改的前端代码,让“人眼看到的交易”与“合约收到的指令”产生差异。
这类事件最难处理的地方,在于攻击可能同时穿过技术控制和人工审批。复盘时若只问“谁签了字”,很容易把真正的突破点藏起来。更有效的做法,是沿着准备、执行、检查、处置与复盘的顺序,还原每一次数据变化。
准备:先把正常交易的样子固定下来
安全应急能否及时启动,很大程度上取决于日常是否留有清晰基准。
对于交易所、托管机构和DeFi项目,大额钱包操作至少要预先固定五项内容:常用目标地址、允许调用的合约方法、单笔及单日额度、签名设备清单、交易发起时间段。超出任一范围,都应自动提高审批等级。
多签人数只能证明若干账户同意了操作,无法证明每个人确认的是同一份真实指令。因此,签名前还要增加独立解码环节。风控人员应直接读取待签交易的原始数据,核对目标合约、方法选择器、参数、授权额度及最终资产接收方,不能完全依赖网页展示的“转账”“归集”等文字。
更关键的一步,是让交易生成环境与签名环境分离。运营人员可以在联网设备上准备交易,但签名团队应通过另一套可信工具重新解析。对于数亿美元级别的资金调度,使用两个独立来源完成解码并不多余。只要两边显示结果不同,流程就该立即停止。
前端代码同样需要纳入变更监控。钱包页面、依赖包、云端文件、部署账号和内容分发配置发生变化时,应留下可核验记录。安全团队若只保护私钥,却允许签名页面被静默替换,攻击者仍可能借助合法签名完成盗取。
执行:攻击者怎样让合法审批服务于恶意交易
此类攻击通常不会在最后一步突然开始。攻击者往往先获取开发设备、发布账户或云端会话,再寻找能够影响交易展示的环节。
以Bybit事件披露的路径看,危险点集中在Safe相关前端环境。攻击者篡改代码后,可以针对特定钱包和特定时间触发恶意逻辑。普通用户访问页面时未必出现异常,目标机构执行大额操作时,页面才可能展示经过伪装的内容。
这种定向触发减少了暴露机会,也解释了为什么常规页面检查可能发现不了问题。攻击者不需要长期制造明显故障,只需在一次关键签名中,让界面呈现预期交易,同时把另一组数据交给钱包或合约。
当签名人习惯于核对金额、备注和操作名称,却没有检查原始调用数据,流程就会出现断层。签名动作本身完全合规,真正失真的部分发生在交易生成、展示和传递过程中。
机构应在执行环节设置“交易指纹”。一笔交易从创建、审批到广播,每一步都要记录哈希或可验证摘要。任何系统重新编码、替换参数或改变目标地址,都会导致指纹变化。此时即使签名人数已经满足要求,也不得继续广播。
此外,大额交易可以采用小额探测与延时生效机制。先用极小金额验证调用结果,再执行主体资金;高风险合约操作则设置时间锁,为监控和人工复核留下反应时间。攻击者最希望资金一次性完成迁移,流程设计应主动打破这种便利。
检查:链上第一笔异常发生后,先判断控制权是否还在
发现异常交易后,团队最容易犯的错误,是把注意力全部放在资产余额上。余额减少只是结果,更紧迫的问题是钱包或合约控制权是否已经改变。
检查顺序应从交易本身开始:实际调用了哪个方法,合约存储发生了什么变化,管理员地址、实现合约、模块和签名阈值是否被修改,是否产生无限授权,是否新增可执行交易的角色。若攻击者已经取得控制权,继续向原钱包转入资金可能造成二次损失。
随后要追踪资金分层流向。应急团队需区分尚未转移的余额、正在链上拆分的资产、进入跨链桥的资金、流向中心化交易所的部分,以及已经兑换为高流动性资产的部分。不同位置对应不同处置手段,不能只生成一张地址追踪图就结束。
与此同时,立即保存浏览器缓存、前端文件、签名设备日志、云端访问记录、内部聊天记录和审批工单。直接重装电脑或删除恶意文件看似干净,却可能破坏关键证据。正确顺序是隔离设备、制作镜像、保留时间戳,再开展清理。
还要避免在事实不完整时公开精确归因。攻击来源、失窃规模和用户影响可以分批披露,但每个数字都应标注统计口径和区块高度。仓促把事件归为“私钥泄露”,可能误导合作平台的拦截方向,也会增加后续合规说明的难度。
处置:技术止损与合规联络必须同步推进
链上交易通常无法直接撤销,因此这里的“回滚”更多指业务回退和权限迁移。
若原合约保留暂停能力,应立即停止提款、兑换或敏感模块;若控制权已失守,则启用预先准备的新钱包和新合约,停止所有系统向旧地址打款。前端、API、清算脚本和做市账户都要同步切换,不能只更新网页上的充值提示。
资金追踪人员应尽快整理攻击地址、交易哈希、资产种类和时间线,向稳定币发行方、中心化交易所、跨链桥及托管服务商提交冻结或监控请求。对方通常需要主体证明、案件编号、法律文书或风险说明,法务与合规团队应在技术调查开始时就加入,而非等资金进入交易所后才准备材料。
涉及用户资产的平台还需要建立统一对外口径:哪些服务暂停、哪些余额可以确认、用户是否需要撤销授权、赔付方案何时公布。模糊地宣称“资金安全”却不说明范围,会进一步消耗信任,也可能触发监管问询。
复盘:把每个“当时为什么没拦住”落实到责任点
高质量复盘不能停留在“加强安全意识”。团队需要逐项回答:恶意代码何时进入环境,谁有发布能力,交易在哪一步失真,签名人看到了什么,监控为何没有命中,第一条异常出现多久后才暂停业务,冻结请求又用了多长时间。
每个答案都应对应一个可执行改动。例如,前端发布改为双人审批并验证文件哈希;大额交易增加独立解码;签名设备显示不完整数据时禁止操作;管理员变更设置时间锁;异常合约调用直接阻断广播;冻结材料提前制作标准模板。
平台今天就可以做一次两小时演练:挑选一笔历史大额交易,让运营、安全、财务和合规团队在不看原审批记录的情况下,重新核对原始调用、确认控制权变化、追踪前五跳资金,并完成一份可提交给交易所的风险通知。演练中超过十分钟仍找不到负责人、超过三十分钟无法确认资金去向的环节,都应列入整改清单。
链上攻击的结果可能在一个区块内发生,处置能力却来自平时留下的交易基准、证据材料和联络路径。签名数量可以满足制度要求,真实交易内容仍需逐字节确认。只要这道核验没有落到具体工具和具体责任人身上,多签的“全票通过”依然可能成为攻击者最想看到的画面。
