fuzzland/ityfuzz
GitHub: fuzzland/ityfuzz
一个结合符号执行与模糊测试的超快智能合约安全检测工具,支持EVM和MoveVM,能自动生成漏洞利用脚本。
Stars: 1066 | Forks: 174
# 🍦 ItyFuzz

[\[文档\]](https://docs.ityfuzz.rs) /
[\[研究论文\]](https://dl.acm.org/doi/pdf/10.1145/3597926.3598059) /
[\[Twitter\]](https://twitter.com/fuzzland_) /
[\[Discord\]](https://discord.com/invite/qQa436VEwt) /
[\[Telegram\]](https://t.me/fuzzland)
ItyFuzz 是一个超快的 EVM 和 MoveVM 智能合约混合模糊测试器,它结合了符号执行和模糊测试,用于发现链下和链上智能合约中的漏洞。
## 安装
```
curl -L https://ity.fuzz.land/ | bash
ityfuzzup
```
## 示例
#### 对已部署的智能合约进行模糊测试
针对 Polygon 链上存在闪电贷 + 只读重入漏洞的[合约](https://polygonscan.com/address/0x5d6c48f05ad0fde3f64bab50628637d73b1eb0bb),生成完整的利用脚本以窃取资金。
```
# 在第 35718198 个区块分叉 Polygon 并对合约进行模糊测试
ETH_RPC_URL=https://polygon-rpc.com ityfuzz evm\
-t 0xbcf6e9d27bf95f3f5eddb93c38656d684317d5b4,0x5d6c48f05ad0fde3f64bab50628637d73b1eb0bb\
-c polygon\
--flashloan\
--onchain-block-number 35718198\
--onchain-etherscan-api-key TR24XDQF35QCNK9PZBV8XEH2XRSWTPWFWT # <-- Get your own API key at https://polygonscan.com/apis if this one is rate limited
```
#### Foundry 不变性测试
运行定义在 `test/Invariant.sol` 中 `Invariant` 合约里的 Foundry 不变性测试。
```
# 替代命令:forge test --mc test/Invariant.sol:Invariant
ityfuzz evm -m test/Invariant.sol:Invariant -- forge test
```
有关更多示例和用法,请查看[文档](https://docs.ityfuzz.rs)。
## 性能
在大型现实世界智能合约项目中,ItyFuzz 发现了 126 个漏洞,而 Echidna 发现了 0 个,Mythril 发现了 9 个。详情请参阅[回测](https://docs.ityfuzz.rs/tutorials/exp-known-working-hacks)、[研究论文](https://dl.acm.org/doi/pdf/10.1145/3597926.3598059)和[发现的新漏洞](#bugs-found)。
在小型现实世界智能合约(ERC20、彩票等)上,ItyFuzz 使用学术界最先进的模糊测试器 SMARTIAN 所需时间的 1/30,获得了比其多 10% 的测试覆盖率。
标签:DeFi安全, EVM, Foundry, Fuzzing, MoveVM, Move语言, Solidity, Web3安全, 区块链安全, 可视化界面, 安全审计工具, 形式化验证, 智能合约安全, 混合模糊测试, 符号执行, 自动化漏洞利用, 覆盖率测试, 通知系统, 通知系统, 通知系统, 重入攻击检测, 链上监控, 闪电贷攻击