Symbolic Value-Flow Static Analysis: Deep, Precise, Complete Modeling of Ethereum Smart Contracts

被引:10
|
作者
Smaragdakis, Yannis [1 ]
Grech, Neville [2 ]
Lagouvardos, Sifis [1 ]
Triantafyllou, Konstantinos [1 ]
Tsatiris, Ilias [1 ]
机构
[1] Univ Athens, Athens, Greece
[2] Univ Malta, Msida, Malta
来源
关键词
Program Analysis; Smart Contracts; Security; Ethereum; Blockchain; CHECKING; VERIFICATION;
D O I
10.1145/3485540
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
We present a static analysis approach that combines concrete values and symbolic expressions. This symbolic value-flow ("symvalic") analysis models program behavior with high precision, e.g., full path sensitivity. To achieve deep modeling of program semantics, the analysis relies on a symbiotic relationship between a traditional static analysis fixpoint computation and a symbolic solver: the solver does not merely receive a complex "path condition" to solve, but is instead invoked repeatedly (often tens or hundreds of thousands of times), in close cooperation with the flow computation of the analysis. The result of the symvalic analysis architecture is a static modeling of program behavior that is much more complete than symbolic execution, much more precise than conventional static analysis, and domain-agnostic: no special-purpose definition of anti-patterns is necessary in order to compute violations of safety conditions with high precision. We apply the analysis to the domain of Ethereum smart contracts. This domain represents a fundamental challenge for program analysis approaches: despite numerous publications, research work has not been effective at uncovering vulnerabilities of high real-world value. In systematic comparison of symvalic analysis with past tools, we find significantly increased completeness (shown as 83-96% statement coverage and more true error reports) combined with much higher precision, as measured by rate of true positive reports. In terms of real-world impact, since the beginning of 2021, the analysis has resulted in the discovery and disclosure of several critical vulnerabilities, over funds in the many millions of dollars. Six separate bug bounties totaling over $350K have been awarded for these disclosures.
引用
收藏
页数:30
相关论文
共 14 条
  • [1] Enhancing Ethereum smart-contracts static analysis by computing a precise Control-Flow Graph of Ethereum bytecode
    Pasqua, Michele
    Benini, Andrea
    Contro, Filippo
    Crosara, Marco
    Dalla Preda, Mila
    Ceccato, Mariano
    JOURNAL OF SYSTEMS AND SOFTWARE, 2023, 200
  • [2] SmartCheck: Static Analysis of Ethereum Smart Contracts
    Tikhomirov, Sergei
    Voskresenskaya, Ekaterina
    Ivanitskiy, Ivan
    Takhaviev, Ramil
    Marchenko, Evgeny
    Alexandrov, Yaroslav
    2018 IEEE/ACM 1ST INTERNATIONAL WORKSHOP ON EMERGING TRENDS IN SOFTWARE ENGINEERING FOR BLOCKCHAIN (WETSEB), 2018, : 9 - 16
  • [3] Foundations and Tools for the Static Analysis of Ethereum Smart Contracts
    Grishchenko, Ilya
    Maffei, Matteo
    Schneidewind, Clara
    COMPUTER AIDED VERIFICATION (CAV 2018), PT I, 2018, 10981 : 51 - 78
  • [4] Static Analysis of Integer Overflow of Smart Contracts in Ethereum
    Lai, Enmei
    Luo, Wenjun
    2020 4TH INTERNATIONAL CONFERENCE ON CRYPTOGRAPHY, SECURITY AND PRIVACY (ICCSP 2020), 2020, : 110 - 115
  • [5] Foundations and Techniques for the Static Analysis of Ethereum Smart Contracts
    Maffei, Matteo
    ELECTRONIC PROCEEDINGS IN THEORETICAL COMPUTER SCIENCE, 2019, (296): : 1 - 1
  • [6] SVF: Interprocedural Static Value-Flow Analysis in LLVM
    Sui, Yulei
    Xue, Jingling
    PROCEEDINGS OF THE 25TH INTERNATIONAL CONFERENCE ON COMPILER CONSTRUCTION (CC 2016), 2016, : 265 - 266
  • [7] Static Profiling and Optimization of Ethereum Smart Contracts Using Resource Analysis
    Correas, Jesus
    Gordillo, Pablo
    Roman-Diez, Guillermo
    IEEE ACCESS, 2021, 9 : 25495 - 25507
  • [8] eThor: Practical and Provably Sound Static Analysis of Ethereum Smart Contracts
    Schneidewind, Clara
    Grishchenko, Ilya
    Scherer, Markus
    Maffei, Matteo
    CCS '20: PROCEEDINGS OF THE 2020 ACM SIGSAC CONFERENCE ON COMPUTER AND COMMUNICATIONS SECURITY, 2020, : 621 - 640
  • [9] SKLEE: A Dynamic Symbolic Analysis Tool for Ethereum Smart Contracts (Tool Paper)
    Jain, Namrata
    Kaneko, Kosuke
    Sharma, Subodh
    SOFTWARE ENGINEERING AND FORMAL METHODS, SEFM 2022, 2022, 13550 : 244 - 250
  • [10] ANCHOR: Fast and Precise Value-flow Analysis for Containers via Memory Orientation
    Wang, Chengpeng
    Wang, Wenyang
    Yao, Peisen
    Shi, Qingkai
    Zhou, Jinguo
    Xiao, Xiao
    Zhang, Charles
    ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY, 2023, 32 (03)