中文

SAILFISH:数秒内审查智能合约的状态不一致缺陷

密码学与安全 2021-12-14 v2 编程语言

摘要

本文提出 SAILFISH,一种用于自动发现智能合约中状态不一致缺陷的可扩展系统。为使分析可行,我们引入一种混合方法,包括 (i) 轻量级探索阶段,大幅减少待分析指令数量,以及 (ii) 基于我们新颖的值摘要(value-summary)分析引导的符号评估的精确精炼阶段,其生成额外约束以过近似(over-approximate)全程序执行的副作用,从而确保符号评估的精度。我们开发了 SAILFISH 原型,并评估其检测以太坊智能合约中两类状态不一致缺陷(即重入(reentrancy)与交易顺序依赖(TOD))的能力。此外,我们给出 SAILFISH 可扩展检测的其他智能合约缺陷的检测规则。实验证明了我们混合方法的效率及值摘要分析的优势。特别地,我们显示 SAILFISH 在性能与精度上优于五种最先进的智能合约分析器(SECURITY、MYTHRIL、OYENTE、SEREUM 与 VANDAL)。总计,SAILFISH 从 ETHERSCAN 的 89,853 份智能合约中发现 47 份先前未知的脆弱智能合约。

关键词

引用

@article{arxiv.2104.08638,
  title  = {SAILFISH: Vetting Smart Contract State-Inconsistency Bugs in Seconds},
  author = {Priyanka Bose and Dipanjan Das and Yanju Chen and Yu Feng and Christopher Kruegel and Giovanni Vigna},
  journal= {arXiv preprint arXiv:2104.08638},
  year   = {2021}
}