OSIRIS: Hunting for Integer Bugs in Ethereum Smart Contracts

被引:245
作者
Torres, Christof Ferreira [1 ]
Schuette, Julian [2 ]
State, Radu [1 ]
机构
[1] Univ Luxembourg, SnT, Luxembourg, Luxembourg
[2] Fraunhofer AISEC, Garching, Germany
来源
34TH ANNUAL COMPUTER SECURITY APPLICATIONS CONFERENCE (ACSAC 2018) | 2018年
关键词
Ethereum; smart contracts; integer bugs; taint analysis; symbolic execution;
D O I
10.1145/3274694.3274737
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
The capability of executing so-called smart contracts in a decentralised manner is one of the compelling features of modern blockchains. Smart contracts are fully. edged programs which cannot be changed once deployed to the blockchain. They typically implement the business logic of distributed apps and carry billions of dollars worth of coins. In that respect, it is imperative that smart contracts are correct and have no vulnerabilities or bugs. However, research has identified different classes of vulnerabilities in smart contracts, some of which led to prominent multi-million dollar fraud cases. In this paper we focus on vulnerabilities related to integer bugs, a class of bugs that is particularly difficult to avoid due to some characteristics of the Ethereum Virtual Machine and the Solidity programming language. In this paper we introduce OSIRIS - a framework that combines symbolic execution and taint analysis, in order to accurately find integer bugs in Ethereum smart contracts. Osiris detects a greater range of bugs than existing tools, while providing a better specificity of its detection. We have evaluated its performance on a large experimental dataset containing more than 1.2 million smart contracts. We found that 42,108 contracts contain integer bugs. Besides being able to identify several vulnerabilities that have been reported in the past few months, we were also able to identify a yet unknown critical vulnerability in a couple of smart contracts that are currently deployed on the Ethereum blockchain.
引用
收藏
页码:664 / 676
页数:13
相关论文
共 36 条
  • [1] AMANI S, 2018, CPP ACM
  • [2] Formal Verification of Smart Contracts Short Paper
    Bhargavan, Karthikeyan
    Delignat-Lavaud, Antoine
    Fournet, Cedric
    Gollamudi, Anitha
    Gonthier, Georges
    Kobeissi, Nadim
    Kulatova, Natalia
    Rastogi, Aseem
    Sibut-Pinote, Thomas
    Swamy, Nikhil
    Zanella-Beguelin, Santiago
    [J]. PROCEEDINGS OF THE 2016 ACM WORKSHOP ON PROGRAMMING LANGUAGES AND ANALYSIS FOR SECURITY (PLAS'16), 2016, : 91 - 96
  • [3] Chen P, 2009, LECT NOTES COMPUT SC, V5927, P336, DOI 10.1007/978-3-642-11145-7_26
  • [4] Dan A, 2018, ARXIV180601143
  • [5] Z3: An efficient SMT solver
    de Moura, Leonardo
    Bjorner, Nikolaj
    [J]. TOOLS AND ALGORITHMS FOR THE CONSTRUCTION AND ANALYSIS OF SYSTEMS, 2008, 4963 : 337 - 340
  • [6] Etherscan. io, 2018, HEXAGONTOKEN
  • [7] Etherscan. io, 2018, ETH CONTR VER SOURC
  • [8] Etherscan. io, 2018, BEAUTYCHAINTOKEN
  • [9] Etherscan. io, 2018, ETH TOK TRACK PAG
  • [10] Etherscan. io, 2018, SMARTMESHICO