Towards a First Step to Understand the Cryptocurrency Stealing Attack on Ethereum
Total Page:16
File Type:pdf, Size:1020Kb
Towards a First Step to Understand the Cryptocurrency Stealing Attack on Ethereum Zhen Cheng1,2∗ Xinrui Hou2,4∗ Runhuai Li1,2 Yajin Zhou1,2† Xiapu Luo3 Jinku Li4 and Kui Ren1,2 1Zhejiang University 2Alibaba-Zhejiang University Joint Research Institute of Frontier Technologies 3The Hong Kong Polytechnic University 4Xidian University Abstract ured, will expose a JSON-RPC endpoint without any authen- tication mechanism enforced. As a result, they could be re- We performed the rst systematic study of a new attack on motely reached by attackers to invoke many privileged meth- Ethereum that steals cryptocurrencies. The attack is due to ods to manipulate the Ethereum account, on behalf of the the unprotected JSON-RPC endpoints existed in Ethereum account holder who is using the client 1. Though we have seen nodes that could be exploited by attackers to transfer the spot reports of stealing the Ether by hackers [11,15], there Ether and ERC20 tokens to attackers-controlled accounts. is no systematic study of such an attack. In order words, not This study aims to shed light on the attack, including mali- enough insights were provided on the attack. cious behaviors and prots of attackers. Specically, we rst designed and implemented a honeypot that could capture To this end, we performed a systematic study to under- real attacks in the wild. We then deployed the honeypot stand the cryptocurrency stealing attack on Ethereum. The and reported results of the collected data in a period of six purpose of our study is to shed lights on this attack, includ- months. In total, our system captured more than 308 mil- ing detailed malicious behaviors, attacking strategies, and lion requests from 1;072 distinct IP addresses. We further attackers’ prots. Our study is based on real attacks in the grouped attackers into 36 groups with 59 distinct Ethereum wild captured by our system. accounts. Among them, attackers of 34 groups were stealing Specically, we designed and implemented a system called the Ether, while other 2 groups were targeting ERC20 tokens. Siren. It consists of a honeypot that listens the default JSON- The further behavior analysis showed that attackers were RPC port, i.e., 8545, and accepts any incoming requests. To following a three-steps pattern to steal the Ether. Moreover, make our honeypot a reachable and valuable target, we reg- we observed an interesting type of transaction called zero gas ister it as an Ethereum full node on the Internet and prepare transaction, which has been leveraged by attackers to steal a real Ethereum account that has Ethers inside. In order to ERC20 tokens. At last, we estimated the overall prots of implement an interactive honeypot, we use a real Ethereum attackers. To engage the whole community, the dataset of cap- client (Go-Ethereum in our work) as the back-end. We then tured attacks is released on https://github.com/zjuicsr/eth- redirect all the incoming RPC requests to the back-end, ex- honey. cept for those that may cause damages to our honeypot. Our honeypot logs the information of the request, including the method that the attacker intends to invoke, and its parame- 1 Introduction ters. For instance, our honeypot logs account addresses that attackers intend to transfer the stolen Ether into. We call The Ethereum network [38] has attracted lots of attentions. these accounts as malicious accounts. We further crawl Users leverage this platform to transfer the Ether, the o- transactions from the Ethereum network and analyze them cial cryptocurrency of the network, or build DApps (decen- to identify suspicious accounts, which accept Ethers from tralized applications) using smart contracts. This, in turn, malicious accounts. Though we are unaware of real owners stimulates the popularity of the Ethereum network. of these accounts, they are most likely to be related to at- However, this popularity also attracts another type of tackers since transactions exist from malicious accounts to users, i.e., attackers. They exploit the insecure setting of them. We then estimate attackers’ prots by calculating the Ethereum clients, e.g., Go-Ethereum [7] and Parity [12], to income of malicious and suspicious accounts. steal cryptocurrencies. These clients, if not properly cong- ∗Co-rst authors with equal contribution. 1Note that, the RPC interface is intended to be used with proper authen- †Corresponding author. tication. USENIX Association 22nd International Symposium on Research in Attacks, Intrusions and Defenses 47 Findings We performed a detailed analysis on the data • We deployed our system and reported attacks observed in collected in a six-month period 2. Some ndings are in the a period of six months. following. • We reported various ndings based on the analysis of col- • Attacks captured During a six-month period, our lected data. The dataset is released to the community for system captured 308:66 million RPC requests from further study. 1;072 distinct IP addresses. Among these IP addresses, The rest of the paper is structured as the follows: we intro- 9 of them are considered as the main source of attacks, duce the background information in Section 2 and present since they count around 83:8% of all requests. One the methodology of our system to capture attacks in Sec- particular IP address 89.144.25.28 sent the most RPC tion 3. We then analyze the attack in Section 4 and estimate requests, with a record of 101:73 million requests in prots in Section 5, respectively. We discuss the limitation total. In order to hide their real IP addresses, attackers of our work in Section 6 and related work in Section 7. We were leveraging the Tor network [20] to launch attacks. conclude our work in Section 8. We also observed that some IP addresses of worldwide universities were probing our honeypot, though none of them were invoking methods to steal cryptocurren- 2 Background cies. Most of these IP addresses are from the PlanetLab nodes [13]. In this section, we will briey introduce the necessary back- ground about the Ethereum network [38] to facilitate the • Cryptocurrencies targeted We grouped attackers understanding of this work. based on IP addresses and target Ethereum accounts. These accounts are the ones that attackers transferred 2.1 Ethereum Clients and the JSON-RPC the stolen cryptocurrencies into. In total, attackers are grouped into 36 clusters with 59 distinct malicious An Ethereum node usually runs a client software. There exist accounts. Among them, attackers of 34 groups were several clients, e.g., Go-Ethereum and Parity. Both clients stealing the Ether, while other 2 groups were targeting support remote procedure call (RPC) through the standard ERC20 tokens. JSON-RPC API [4]. When these clients are being started with a special ag, they will listen a specic port (e.g., 8545), and ac- • Steal the Ether We observed that attackers were fol- cept RPC requests from any host without any authentication. lowing a three-steps pattern to steal the Ether. They After that, functions could be remotely invoked on behalf of rst probed potential victims, and then collected nec- the account holder of the client, including privileged ones to essary information to construct parameters. After that, send transactions (or transfer cryptocurrencies). Note that, they launch the attack, either passively waiting for the though the Ethereum network is a P2P network, attackers account being unlocked by continuously polling the can discover and reach vulnerable Ethereum nodes directly account state, or actively lunching a brute-force attack through the HTTP protocol. to crack the user’s password to unlock the account. 2.2 Ethereum Accounts • Steal ERC20 tokens Besides the Ether, attackers were also targeting ERC20 tokens. We observed a type On the Ethereum platform, there exist two dierent types of transaction called zero gas transaction, in which the of accounts. One is externally owned account (EOA), and sender of a transaction does not need to pay any trans- another one is smart contract account. An EOA account action fee. We nd that attackers were leveraging this can transfer the Ether, the ocial currency in Ethereum, type of transactions to steal tokens from sher accounts to another account. An EOA account can deploy a smart that intended to scam other users’ Ethers, and exploit- contract, which in turn creates another type of account, i.e., ing the AirDrop mechanism to gain numerous bonus the smart contract account. A smart contract is a program tokens. that executes exactly as it is set up to by its creator (the smart contract developer). In Ethereum, the smart contract Contributions In summary, this paper makes the follow- is usually programmed using the Solidity language [14], ing main contributions: and executes on a virtual machine called Ethereum Vir- tual Machine (EVM) [38]. Both types of accounts are de- • We designed and implemented a system that can capture noted in a hexadecimal format. For instance, the account ad- real attacks to steal cryptocurrencies through unprotected dress 0x6ef57be1168628a2bd6c5788322a41265084408a de- JSON-RPC ports of vulnerable Ethereum nodes. notes an (attacker’s) EOA account, while the address 0x87c9ea70f72ad55a12bc6155a30e047cf2acd798 denotes a 2The dataset is released on https://github.com/zjuicsr/eth-honey. smart contract. 48 22nd International Symposium on Research in Attacks, Intrusions and Defenses USENIX Association ERC20 tokens [1] are digital tokens designed and used on the Ethereum platform, which could be shared, exchanged for other tokens or real currencies, e.g., US dollars. The com- munity has created standards for issuing a new ERC20 token using the smart contract. For instance, the smart contract should implement a function called transfer() to transfer the token from one account to another, and a balanceOf() function to query the balance of the token. The values of ERC20 tokens vary for dierent tokens at dierent times.