Eth2Vec:学习合约级代码表示用于以太坊智能合约漏洞检测
密码学与安全
2021-01-11 v2 机器学习
软件工程
摘要
以太坊智能合约是运行于以太坊区块链上的程序,过去十年中已发现众多智能合约漏洞。许多安全分析工具被创造以检测此类漏洞,但当待分析代码被重写时其性能急剧下降。本文中,我们提出 Eth2Vec,一种基于机器学习的静态分析工具,用于漏洞检测,并对智能合约中的代码重写具鲁棒性。现有基于机器学习的漏洞检测静态分析工具需以分析者手动创建的特征为输入。相反,Eth2Vec 通过语言处理神经网络自动以默会知识学习脆弱以太坊虚拟机(EVM)字节码的特征。因此,Eth2Vec 可通过比较目标 EVM 字节码与其已学 EVM 字节码间代码相似度来检测智能合约漏洞。我们利用 Etherscan 等已有开放数据库开展实验,结果显示 Eth2Vec 在准确率、召回率与 F1-score 等知名指标上优于已有工作。此外,Eth2Vec 即便对重写代码亦可检测漏洞。
引用
@article{arxiv.2101.02377,
title = {Eth2Vec: Learning Contract-Wide Code Representations for Vulnerability Detection on Ethereum Smart Contracts},
author = {Nami Ashizawa and Naoto Yanai and Jason Paul Cruz and Shingo Okamura},
journal= {arXiv preprint arXiv:2101.02377},
year = {2021}
}