Elysium:用于自动修复脆弱智能合约的上下文感知字节码级补丁
密码学与安全
2022-07-06 v3
摘要
修复漏洞最简单的方式是修补源代码。然而,源代码并非总是可用:当前部署在以太坊上的约 4900 万份智能合约中,仅有 0.3% 公开了其源代码。此外,由于合约可能调用其他合约的函数,闭源合约中的安全缺陷也可能影响开源合约。然而,当前作用于闭源合约(即 EVM 字节码)的最先进方法,如 EVMPatch 和 SmartShield,使用纯粹硬编码的模板来利用修复补丁模式。因此,它们无法动态适应被修补的字节码,这严重限制了其灵活性和可扩展性。例如,在使用硬编码模板修补整数溢出时,由于需检查的上界因整数大小而异,需采用特定的补丁模板。本文中,我们提出 Elysium,一种在字节码层面自动修复智能合约的可扩展方法。Elysium 通过从字节码推断上下文信息,将基于模板和基于语义的补丁相结合。Elysium 目前能够自动修补智能合约中 7 种不同类型的漏洞,并可轻松通过新模板和新漏洞发现工具进行扩展。我们使用 3 个不同数据集,通过在修补后的合约上重放超过 50 万笔交易来评估其有效性和正确性。我们发现 Elysium 至少多正确修补了 30% 的合约,优于现有工具。最后,我们还比较了 Elysium 在部署和交易开销方面的成本。与其他工具相比,我们发现 Elysium 通常将运行时成本(即交易开销)降至最多 1.7 倍,仅部署开销略高,而部署开销相较于运行时开销为一次性成本。
引用
@article{arxiv.2108.10071,
title = {Elysium: Context-Aware Bytecode-Level Patching to Automatically Heal Vulnerable Smart Contracts},
author = {Christof Ferreira Torres and Hugo Jonker and Radu State},
journal= {arXiv preprint arXiv:2108.10071},
year = {2022}
}