释放Medusa:快速可扩展的智能合约模糊测试
什么是Medusa?
Medusa是一个基于Geth构建的开源EVM模糊测试器。我们的首个主要版本引入了强大功能,使模糊测试更加高效和可扩展:
- 覆盖率引导模糊测试:支持高效的合约探索,并通过HTML报告提供直接反馈
- 并行模糊测试:与硬件无缝扩展,加速模糊测试活动
- 智能变异值生成:利用运行时值和Slither的洞察来优化模糊测试输入
- 链上模糊测试:使用直接从区块链获取的值作为模糊测试状态种子,提高现实世界漏洞发现能力
- 增强的调试功能:提供丰富的执行跟踪和高级报告功能,深入了解模糊测试器的执行情况
Medusa代表了智能合约模糊测试的最新技术水平。我们投入了大量精力确保其功能强大且易于使用。
使用Medusa
开始使用Medusa非常简单:
-
通过Homebrew在macOS上安装Medusa:
1brew install medusa -
运行以下命令初始化新项目:
1medusa init此命令生成medusa.json配置文件,用于调整模糊测试运行。
-
使用以下命令开始模糊测试:
1medusa fuzz
有关预编译二进制文件和自定义构建的信息,请访问我们的安装页面。
Echidna怎么样?
通过Medusa,我们正在探索新的EVM实现和智能合约模糊测试语言。虽然Echidna一直是一个强大的模糊测试器,但Medusa具有明显优势:
- 使用Go编写:提高了Medusa的可维护性,并允许使用原生API,便于集成到其他项目中
- 基于Geth构建:确保强大的EVM等效性,简化了Medusa的代码维护
为了验证Medusa的性能,我们对Echidna进行了广泛的内部基准测试,并微调了Medusa的值生成以确保提供最佳结果。
智能合约安全的未来
模糊测试是智能合约安全中的关键技术,通过Medusa,我们的目标是使这项技术成为行业标准。通过提供强大的启发式方法、并行执行和链上洞察,Medusa使智能合约模糊测试比以往任何时候都更加可扩展和易于访问,使开发人员能够更快、更有效地识别漏洞。
我们邀请您加入我们的社区,共同塑造Medusa的未来:
- 在GitHub上贡献:通过提交问题、PR或反馈来改进Medusa的功能
- 加入我们的Slack:与其他安全研究人员和开发人员联系,分享见解和最佳实践
- 如果您的团队希望获得关于如何充分利用Medusa的反馈,请联系我们