Lappsnet/defi-exploit-detector

GitHub: Lappsnet/defi-exploit-detector

基于历史漏洞复现与 Foundry PoC 的 DeFi 智能合约静态检测引擎基准测试工具包,用于量化评估漏洞检测器的准确率与误报率。

Stars: 0 | Forks: 0

# DeFi 漏洞检测器 一个静态分析工具包,通过将历史漏洞复现为 Foundry 概念验证测试,并据此对 TypeScript 检测引擎进行评分,从而捕获真实的 DeFi 漏洞模式(重入、预言机操纵、访问控制缺陷)。 它的意义不在于提供另一个经过审计的保险库合约——而是一个基准测试:对于每个检测器,都包含一个复现真实世界漏洞模式的最小化易受攻击合约、同一个合约的修复版本,以及一个能真正耗尽易受攻击合约但在修复版本上失败的 PoC。检测器会针对两者进行评分,因此记分卡可以证明它确实捕获了漏洞,而不是盲目标记每一个外部调用。 ## 结构 ``` detectors/ TypeScript detector engine (Solidity AST-based) exploits/ One folder per historical exploit pattern: 01-reentrancy-classic/ src/VulnerableVault.sol recreation of the vulnerable pattern src/FixedVault.sol the same contract, patched test/Reentrancy.t.sol Foundry PoC: drains the vulnerable one, fails against the fixed one foundry.toml benchmark/ Wires detectors to exploits/, runs cases.json, prints a scorecard table ``` ## 运行方式 Foundry PoC(证明漏洞是真实的,与检测器无关): ``` cd exploits/01-reentrancy-classic forge test -vv ``` 针对单个文件运行检测器: ``` cd detectors npm install npm run cli -- ../exploits/01-reentrancy-classic/src/VulnerableVault.sol ``` 完整的基准测试记分卡: ``` cd detectors npm run benchmark ``` ## 当前记分卡 | 检测器 | 漏洞模式 | 参考事件 | |---|---|---| | `reentrancy-checks-effects-interactions` | 在 `withdraw()` 中状态写入之前的外部调用 | The DAO (2016),以及 Cream Finance (2021) 和 Fei/Rari (2022) 中的相同根本原因 | 1/1 历史案例被检测到,在已修复合约上 0 误报。 ## 路线图 每个新条目都会增加一个检测器 + 一个历史漏洞案例 + 基准测试覆盖范围: - [x] 重入(checks-effects-interactions 违规) - [ ] 价格预言机操纵(单一来源现货价格,无 TWAP/陈旧度检查) - [ ] 访问控制(缺少 `onlyOwner` / 未受保护的初始化程序) - [ ] 未检查的低级 call 返回值 - [ ] 跨链金额编码中的整数截断 / 精度损失 - [ ] 闪电贷驱动的治理/价格操纵 ## 方法论说明 易受攻击的合约是对有充分记录的漏洞*模式*的最小化复现,是为基准测试目的从头编写的——并非任何单一协议生产代码的副本。每个漏洞案例都链接到其所基于的真实事件的公开分析文章。
标签:DeFi, Foundry, Web3安全, 智能合约审计, 暗色界面, 错误基检测, 静态代码分析