文章以币安63亿美元和Bitget 3.88亿美元攻击事件为例,剖析攻击者利用合法终端、容器和受控密钥签名的“白+黑”手法绕过纵深防御与零信任。指出传统安全运营围绕情报、规则和特征库难以应对不产生告警的白利用攻击,AI检测信号也易被噪音淹没。提出应转向基于不变量的判定,构建L0事实层与L1语义归因层,并参考CrowdStrike、Palo Alto等架构。

起因是一台DevOps工程师的笔记本被入侵,攻击者获得一个服务容器的访问权,通过它提交未授权的提现交易。这条链上没有一个环节需要"破解"。笔记本是内网里合法的终端,容器是有权限的服务,签名是受控密钥签的。三层各自校验的东西,全部通过,都是白的。




白+黑的攻击怎么防:把判定依据从匹配库换成不变量


L0 事实层:记状态变更,不记告警。 字段清单:账户/身份标识、代码或权限字段的前后值、nonce、授权列表原文(chain_id/目标地址/nonce)、调用方、被调用方、calldata 选择器、余额变化、时间戳。这一层不要"检测",只要变更流。币安案里最关键的那条事件,就是"某 EOA 的代码字段从空变成指向一个未开源合约"。
L1 语义归因层:让模型读规则的上下文,产出二层证据链。 对每一条命中的规则、名单、阈值、权限项,让模型去读它的原文、适用范围、变更记录,输出三个结构化字段:这条规则保护的不变量是什么、它的作用域边界在哪、当前事件是否落在它的作用域内。
于是判定不再是一层证据,而是两层:一层是规则命中记录,二层是该规则声称要保护的那个不变量此刻有没有被破坏。这两层给出的结论可以完全相反,而四种组合里最危险的是"未命中 + 不变量被破坏"——币安案最要命的那 3 分 24 秒,就落在这一格里。
L2 意图判定层:决策模型。 输入不是原始告警,是 L1 的断言加上行为序列——演练痕迹、注资路径、时间结构、批量与排序这类"读过规范"的痕迹。输出三态:意图为黑、为白、证据不足。第三态必须存在,否则模型会被迫给噪声编故事。
L3 执行层:三条路,不是一条。 签名前拒绝(策略层,人不可绕过)、签名后即时撤销(预制好的撤销交易,演练过才算有)、库存隔离(不再向状态未知的账户入账)。把策略写成代码、决策与执行解耦,这类开源实现已经成熟(OPA 是常见的一种),不需要为此买新平台。

最后,构建什么能力,决定未来你会不会遭受攻击
你买的每一层防护,校验的都是它见过什么;攻击者用的,是你没见过的意图。
白名单管的是谁能进哪扇门。这次是有人拿着合法钥匙,把锁芯换成了自己的。
留一个动作给今天:把你们签名类和权限类的规则清单拉出来,逐条写一句"它保护哪个不变量",写不出来的那一行,标上"作用域未知"。这一遍不需要采购,一个下午能做完两类规则。
原文始发于微信公众号(AI安全迪哥):币安63亿美元损失:「白+黑」攻击总能成功,AI赋能安全赋能了个寂寞
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-


评论