ContractGuard:面向以太坊区块链智能合约的入侵检测系统

作者:赵淦森; 谢智健; 王欣明; 何嘉浩; 张成志; 林成创; Ziheng Zhou; 陈冰川; Chunming Rong
来源:网络与信息安全学报, 2020, 6(02): 35-55.

摘要

以太坊智能合约本质上是一种在网络上由相互间没有信任关系的节点共同执行的已被双方认证程序。目前,大量的智能合约被用于管理数字资产,使智能合约成为黑客的重要攻击对象。常见的攻击方法是通过利用智能合约的漏洞来实现特定操作的入侵攻击。ContractGuard是首次提出面向以太坊区块链智能合约的入侵检测系统,它能检测智能合约的潜在攻击行为。ContractGuard的入侵检测主要依赖检测潜在攻击可能引发的异常控制流来实现。由于智能合约运行在去中心化的环境以及在高度受限的环境中运行,现有的IDS技术或者工具等以外部拦截形式的部署架构不适合于以太坊智能合约。为了解决这些问题,通过设计一个嵌入式的架构,实现了把ContractGuard直接嵌入智能合约的执行代码中,作为智能合约的一部分。在运行时刻,ContractGuard通过相应的context-tagged无环路径来实现入侵检测,从而保护智能合约。由于嵌入了额外的代码,Contract Guard一定程度上会增加智能合约的部署开销与运行开销,为了降低这两方面的开销,基于以太坊智能合约的特性对ContractGuard进行优化。实验结果显示,可有效地检测83%的异常行为,其部署开销仅增加了36.14%,运行开销仅增加了28.17%。