想象一下,去中心化金融(DeFi)的世界是一个庞大而繁忙的数字市场,人们在这里利用自动化规则(智能合约)交易资产。不幸的是,窃贼已经学会了如何撬开这些规则的锁。
本文介绍了一种名为GenDetect的新型安全系统,旨在阻止一种特定且令人头疼的盗窃模式:“模仿者级联”。
以下是利用简单类比对问题与解决方案的拆解。
问题:“模仿者”窃贼
在数字世界中,一旦窃贼搞清楚了如何攻破某一家特定的商店(DeFi 协议),他们就不会只偷一次。他们往往会发布“操作指南”,或者其他窃贼看到成功后,会尝试做完全相同的事情。
- 现实情况:作者发现,69% 的 DeFi 攻击只是对先前攻击的复制。他们可能会更改几个数字或调整步骤顺序,但核心伎俩完全相同。
- 旧方法:现有的安全系统就像只认识已知罪犯具体名字的警卫。如果一名新罪犯戴着不同的帽子出现,警卫就会漏掉他。即使警卫发现了第一个窃贼,也必须呼叫侦探手动编写新规则来抓捕第二个窃贼。等到规则编写完成,第二、第三甚至第四个窃贼早已偷走了数百万资金。
- 差距:在发现新攻击与构建规则以阻止模仿者之间,存在缓慢的人工延迟。
解决方案:GenDetect(“模式识别器”)
GenDetect 是一个这样的系统:“一旦我们看到一个窃贼,就能立即理解他们的伎俩,并识别出任何试图做同样事情的人,即使他们换了衣服。”
它通过作者称为洞察 I和洞察 II的两个主要阶段运作。
1. 理解“语言”(语义提取)
DeFi 代码是用一种复杂的技术语言编写的。对计算机而言,名为 doSwap 的函数和名为 swapTokensForEth 的函数看起来完全是不同的词。对人类而言,它们意味着同一件事:“交换资金”。
- 旧方法:计算机只看函数的名称。如果名称略有变化,它们就会认为这是不同的操作。
- GenDetect 的方法:它查看函数名称背后的源代码(实际配方)。它根据函数的实际功能对函数进行分组(例如,“这是一个转账”,“这是一个交换”)。
- 类比:想象一个图书馆,书籍是按封面标题分类的。如果你重命名一本书,它就会被放到错误的书架上。GenDetect 忽略标题,而是阅读第一页以确定这本书实际上是关于什么的,然后将其正确归类。这使得它能够识别出两个外观不同的代码实际上是在执行相同的金融伎俩。
2. 忽略噪音(逻辑匹配)
窃贼经常通过在其交易中添加额外的无用步骤来隐藏踪迹。他们可能会添加一个“买入”步骤,然后是一个“卖出”步骤,最后是实际的“盗窃”步骤。
- 旧方法:传统系统查看步骤的顺序。如果窃贼改变了顺序,系统就会说:“这不符合模式!”并放行。
- GenDetect 的方法:它过滤掉“噪音”。它只关注涉及特定类型代币(如主要货币与特定项目代币)的关键动作。它会问:“无论顺序如何或是否有额外杂音,他们是否执行了盗窃的核心步骤?”
- 类比:想象试图识别特定的舞蹈套路。一个糟糕的系统会说:“你先转了个圈,然后跳了一下,接着滑步。原套路是先滑步,再转圈。你失败了!”GenDetect 则说:“我不在乎顺序,也不在乎你添加的额外旋转。你完成了核心的‘滑步 - 跳跃’动作。你就是同一个舞者。”
效果如何?
作者将 GenDetect 与现有的安全工具进行了测试:
- 准确率:它正确识别了98% 的攻击,同时极少发出误报(假阳性仅为 1%)。
- 速度:它的速度足以在区块链上实时检查交易。
- 发现能力:当他们在真实世界数据上运行该系统时,发现了56 起此前无人察觉的攻击,涉及超过150 万美元的被窃资金。这些是“模仿者”,因为它们表面上看起来略有不同,从而溜过了其他警卫的视线。
核心结论
GenDetect 将游戏规则从“等待人类在盗窃发生后编写规则”转变为“立即识别盗窃类型并即刻阻止所有模仿者”。它将一个缓慢的、反应式的过程转变为一个快速的、通用的防御系统,确保一旦漏洞被暴露,它不会在窃贼持续复制利用漏洞的数月期间保持开放状态。
以下是论文《GenDetect:泛化反应式检测以抵御模仿性 DeFi 攻击级联》的详细技术总结。
1. 问题定义
本文针对去中心化金融(DeFi)中存在的严重安全漏洞,即模仿性攻击级联(Imitative Attack Cascades)现象。
- 现象:一旦成功的漏洞利用被发现,攻击者(或模仿者)会迅速通过微小修改(例如参数变更、调用重排序或混淆)复制攻击逻辑。实证分析显示,超过 69% 的 DeFi 攻击是对先前事件的模仿,造成的损失超过20 亿美元。
- 现有系统的局限性:现有的检测方法存在以下不足:
- 基于启发式:依赖静态信号(如已知的攻击者地址或 Tornado Cash 的使用),无法检测新的变体。
- 针对特定漏洞:专注于特定类型的漏洞(如重入攻击、闪电贷),而非通用的行为模式。
- 人工/反应式:需要缓慢的人工轨迹分析来制定新的检测规则,导致不可接受的延迟,使得后续攻击在防御部署前就已得逞。
- 目标:开发一个系统,能够基于单个已观察到的攻击实例,自动将其泛化为鲁棒、可复用的检测规则,以实时捕获后续的模仿性攻击。
2. 方法论:GenDetect 框架
GenDetect 将问题分解为两个核心挑战:多样化函数签名的**(C1) 语义抽象以及嘈杂轨迹中的(C2) 鲁棒逻辑匹配**。它通过四个技术组件解决这些问题:
A. 基于源代码的语义提取(洞察 I)
GenDetect 不依赖具有误导性的表面函数名称,而是利用 DeFi 协议的开源特性来理解实际代码行为。
- T1:函数签名速查表:作者构建了一个精心策划的数据库,通过CodeBERT对源代码进行聚类并由人类专家验证,将 1,272 个独特的函数签名映射到 122 个语义类别(例如
swap、mint、transfer)。
- T2:自动分类流水线:对于未见过的签名,系统获取源代码,利用 CodeBERT 在参考数据库中找到最相似的函数,并使用**基于大语言模型(LLM)的推理(GPT-4.1)**验证分类结果。这确保了系统无需人工重新训练即可适应新合约。
B. 基于合约标签的逻辑提取(洞察 II)
DeFi 交易轨迹充满噪声,包含许多良性内部调用。GenDetect 过滤这些噪声以隔离攻击者的意图。
- T3:逻辑提取:系统过滤交易轨迹,仅保留来自攻击者(外部拥有账户或攻击者控制的脚本)的直接调用。它移除递归协议调用和“包装”层,将轨迹压缩为扁平化的基本操作序列。
- T4:代币类型感知的逻辑匹配:提取的逻辑根据目标代币分为两类:
- 核心资产操作:(例如 ETH、USDT)代表价值提取。
- 特定协议操作:(例如治理代币、LP 代币)代表利用机制。
- 指标:GenDetect 不使用基于序列的匹配(如最长公共子序列,后者在重排序面前会失效),而是采用非对称归一化集合差(ANSD)。
- 公式:Sim(A,B)=1−∣A∣∣A∖B∣,其中 A 是已知攻击模式。该公式衡量新交易 B 中保留了多少已确认的攻击逻辑,忽略 B 中的无关噪声或重排序。
3. 主要贡献
- 首个反应式泛化系统:一个将单个已观察到的漏洞利用转化为可泛化检测规则的框架,弥合了发现与可扩展防御之间的差距。
- 语义与逻辑框架:一种新颖的方法,结合了基于源代码的语义分类和基于代币类型的集合匹配,以减少由混淆的良性交易引起的误报,以及由变异的攻击模式引起的漏报。
- 高性能流水线:一个可并行化的检测流水线,能够进行实时分析,满足主要区块链的延迟要求。
- 现实世界发现:该系统成功识别了野外56 起此前未披露的攻击,涉及价值超过150 万美元,证明了其超越已知基准的实际效用。
4. 评估结果
该系统在基准数据集和现实世界数据集上,与最先进工具(Forta、DeFiRanger、TxSpector、POMABuster)进行了评估。
- 准确率(交叉验证):
- F1 分数:98%(Forta 为 91%,DeFiRanger 为 77%)。
- 误报率(FPR):1%(Forta 为 16%)。
- 漏报率(FNR):3%。
- 零样本泛化:
- 在未见过数据集(Phalcon 和 DeFiHackLab)上进行测试,未针对这些特定事件进行预先训练。
- 覆盖率:GenDetect 检测到了**76%**的攻击,显著优于 Forta(65%)和 DeFiRanger(44%)。
- 效率:
- 吞吐量:在 96 个核心上能够处理**>2,000 笔交易/秒(TPS)**,满足以太坊和 BNB 链的实时需求。
- 延迟:每笔交易的平均处理时间**<0.1 秒**,最坏情况(长轨迹)在0.7 秒内完成。
- 消融研究:移除语义提取模块导致 F1 分数下降超过 50%,证明了基于源代码的理解优于简单关键词匹配的关键重要性。
5. 意义
- 范式转变:将 DeFi 安全从“反应式人工规则创建”转变为“自动化语义泛化”。它承认虽然新漏洞难以预测,但如果正确抽象底层逻辑,模仿性攻击是可预测的。
- 抵御规避的能力:通过使用基于集合的相似度(ANSD)而非基于序列的匹配,该系统对通过重排序调用或插入噪声以逃避检测的攻击者具有鲁棒性。
- 实际影响:发现 56 起隐藏攻击证明了当前监控工具遗漏了威胁景观的很大一部分。GenDetect 提供了一种可扩展的自动化机制来填补这一空白,通过防止模仿攻击的“级联”效应,可能在未来避免数十亿美元的损失。
局限性:该系统目前难以处理通过私有中继(暗池)发起的攻击,因为这些交易对公共内存池监控不可见;此外,极高的吞吐量需求(例如 Solana 的 65k TPS)可能需要显著的横向扩展或预过滤。
每周获取最佳 computer science 论文。
受到斯坦福、剑桥和法国科学院研究人员的信赖。
请查收邮箱确认订阅。
出了点问题,再试一次?
无垃圾邮件,随时退订。