Prompt to Pwn: Automated Exploit Generation for Smart Contracts
该论文提出了名为 ReX 的执行导向框架,通过结合大语言模型与 Foundry 工具链实现了智能合约漏洞的端到端自动化利用生成,并评估了其在不同模型和漏洞类型上的表现及局限性。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
这篇论文就像是在给智能合约(Smart Contracts)的安全系统做了一次“压力测试”,但这次测试的“黑客”不是人类,而是人工智能(AI)。
简单来说,研究人员想知道:现在的 AI 能不能像电影里的黑客一样,自动找到区块链上的漏洞,并写出攻击代码把钱偷走?
为了回答这个问题,他们开发了一个叫 ReX 的“机器人黑客助手”,并进行了详细的实验。下面我用几个生活中的比喻来为你拆解这篇论文的核心内容:
1. 背景:为什么这很危险?
想象一下,智能合约就像是一个自动售货机,一旦放在街上(部署上区块链),就没人能把它搬走或修改里面的零件。
- 以前的做法:人们雇佣专业的“锁匠”(安全审计师)去检查售货机有没有漏洞。
- 现在的风险:如果 AI 学会了怎么开锁,它就能 24 小时不间断地尝试,而且速度极快。一旦售货机被攻破,里面的钱(加密货币)就会被瞬间洗劫一空,而且因为机器无法修改,损失无法挽回。
2. 核心实验:ReX 是什么?
研究人员开发了一个叫 ReX 的系统,它的工作流程就像是一个**“自动修车 + 试车”的流水线**:
- 找车(输入):把有漏洞的智能合约代码给 AI。
- 造钥匙(生成):AI 尝试写出一段代码(攻击脚本),就像造一把万能钥匙。
- 试锁(编译与测试):把钥匙插进锁孔(Foundry 测试环境)试试能不能打开。
- 修钥匙(反馈循环):如果打不开(报错),AI 就根据错误提示把钥匙磨一磨,再试一次。
- 成功:如果钥匙真的打开了锁,并且能证明里面的钱能被拿走,就算攻击成功。
3. 实验结果:AI 有多强?
研究人员找了 5 个最厉害的 AI 模型(比如 GPT-4.1, Gemini 2.5 Pro 等),让它们去攻击两类目标:
- 练习册(SmartBugs-Curated):简单的、人为制造的漏洞题目。
- 实战场(Web3-AEG):历史上真实发生过的、造成巨额损失的真实黑客案例。
结果发现:
- 单挑能力很强:对于单个售货机(单合约)的简单漏洞(比如算术错误、权限没设好),AI 表现非常出色,甚至能写出完美的攻击代码。就像 AI 能轻松解开简单的数学题。
- 团战能力很弱:一旦攻击需要同时控制多个售货机(跨合约攻击),或者需要复杂的金融操作(比如利用闪电贷、操纵交易顺序),AI 就懵了。它很难理解“牵一发而动全身”的复杂关系。
- 谁最强?:在测试的 5 个模型中,Gemini 2.5 Pro 表现最好,其次是 GPT-4.1。
4. 为什么 AI 会失败?(关键因素)
研究人员发现,决定 AI 能不能成功的关键,不是代码有多长、多复杂,而是:
- AI 本身的智商:模型越聪明,成功率越高。
- 漏洞的类型:
- 简单的漏洞(如算数溢出):AI 一眼就能看穿,像看穿“把 1 加 1 等于 3"这种低级错误。
- 复杂的漏洞(如跨合约逻辑):AI 就像是一个只会做单科作业的学生,一旦题目需要综合多门学科的知识(跨合约交互),它就做不出来了。
- 提示词(Prompt)的作用:研究人员发现,给 AI 写再多的“指令”或“提示”,对提升成功率帮助有限。这就像给一个不会游泳的人穿再漂亮的泳衣,他也还是游不过去。
5. 我们该怎么防御?(给开发者的建议)
既然 AI 这么强,我们该怎么办?论文提出了一些有趣的“反 AI 防御”策略:
- 把大房子拆成小房间(代码拆分):
AI 擅长攻击单个房间。如果你把逻辑拆散到多个合约里,让 AI 必须同时理解好几个房间的关系,它就容易迷路。 - 制造“假漏洞”(诱饵):
故意在代码里写一些看起来像漏洞、但实际上没用的“假代码”。AI 很容易上当,花时间去攻击这些假目标,从而浪费它的时间。 - 使用“天书”语法(边缘语法):
AI 对常见的代码写法很熟悉,但对一些生僻、底层的写法(如内联汇编)很陌生。用这些“天书”写关键逻辑,能增加 AI 的理解难度。 - 增加结构复杂度:
不是把代码写得乱(乱码没用),而是增加逻辑的嵌套深度,让 AI 难以追踪数据的流向。
6. 总结与警示
这篇论文告诉我们一个残酷但重要的事实:
- AI 已经是合格的“初级黑客”了:它能自动发现并攻击很多常见的、简单的漏洞。
- 但它还不是“顶级黑客”:它缺乏人类那种对复杂金融逻辑和跨系统交互的深刻理解。
- 防御的新思路:传统的防御是修补漏洞,而面对 AI,我们需要增加它攻击的成本。通过让代码结构更复杂、逻辑更分散,让 AI 觉得“攻这个太费劲,不如换个目标”,从而保护资产安全。
一句话总结:AI 现在能轻松解开简单的锁,但面对复杂的迷宫,它还需要人类专家的帮助;而我们要做的,就是把迷宫修得更复杂,让 AI 走进去就晕头转向。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。