OSIRIS: Hunting for Integer Bugs in Ethereum Smart Contracts

被引:240
|
作者
Torres, Christof Ferreira [1 ]
Schuette, Julian [2 ]
State, Radu [1 ]
机构
[1] Univ Luxembourg, SnT, Luxembourg, Luxembourg
[2] Fraunhofer AISEC, Garching, Germany
关键词
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
相关论文
共 50 条
  • [1] A Framework and DataSet for Bugs in Ethereum Smart Contracts
    Zhang, Pengcheng
    Xiao, Feng
    Luo, Xiapu
    2020 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE AND EVOLUTION (ICSME 2020), 2020, : 139 - 150
  • [2] Detecting Nondeterministic Payment Bugs in Ethereum Smart Contracts
    Wang, Shuai
    Zhang, Chengyu
    Su, Zhendong
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2019, 3 (OOPSLA):
  • [3] Mutation Testing for Integer Overflow in Ethereum Smart Contracts
    Jinlei Sun
    Song Huang
    Changyou Zheng
    Tingyong Wang
    Cheng Zong
    Zhanwei Hui
    Tsinghua Science and Technology, 2022, 27 (01) : 27 - 40
  • [4] Mutation Testing for Integer Overflow in Ethereum Smart Contracts
    Sun, Jinlei
    Huang, Song
    Zheng, Changyou
    Wang, Tingyong
    Zong, Cheng
    Hui, Zhanwei
    TSINGHUA SCIENCE AND TECHNOLOGY, 2022, 27 (01) : 27 - 40
  • [5] 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
  • [6] Confidential Ethereum Smart Contracts
    Yuan, Michael Juntao
    Hynes, Nick
    Long, Ju
    IT PROFESSIONAL, 2022, 24 (06) : 54 - 58
  • [7] Ethereum Smart Contracts: Vulnerabilities and their Classifications
    Khan, Zulfiqar Ali
    Namin, Akbar Siami
    2020 IEEE INTERNATIONAL CONFERENCE ON BIG DATA (BIG DATA), 2020,
  • [8] Termination of Ethereum's Smart Contracts
    Genet, Thomas
    Jensen, Thomas
    Sauvage, Justine
    PROCEEDINGS OF THE 17TH INTERNATIONAL JOINT CONFERENCE ON E-BUSINESS AND TELECOMMUNICATIONS (SECRYPT), VOL 1, 2020, : 39 - 51
  • [9] RA: Hunting for Re-Entrancy Attacks in Ethereum Smart Contracts via Static Analysis
    Chinen, Yuchiro
    Yanai, Naoto
    Cruz, Jason Paul
    Okamura, Shingo
    2020 IEEE INTERNATIONAL CONFERENCE ON BLOCKCHAIN (BLOCKCHAIN 2020), 2020, : 327 - 336
  • [10] Runtime Verification of Ethereum Smart Contracts
    Ellul, Joshua
    Pace, Gordon
    2018 14TH EUROPEAN DEPENDABLE COMPUTING CONFERENCE (EDCC 2018), 2018, : 158 - 163