skip to main content
10.1145/3301417.3312495acmconferencesArticle/Chapter ViewAbstractPublication PageseurosysConference Proceedingsconference-collections
research-article

Pitfalls of open architecture: How friends can exploit your cryptocurrency wallet

Authors Info & Claims
Published:25 March 2019Publication History

ABSTRACT

Many cryptocurrency wallet applications on desktop provide an open remote procedure call (RPC) interface that other blockchain-based applications can use to access their functionality. This paper studies the security of the RPC interface in several cryptocurrency wallets. We find that, in many cases, a malicious process running on the computer regardless of its privileges can impersonate the communication endpoints of the RPC channel and, effectively, steal the funds in the wallet. The attacks are closely related to server and client impersonation on computer networks but occur inside the computer. The malicious process may be created by another authenticated but unprivileged user on the same computer or even by the guest user. The main contribution of this paper is to raise awareness among wallet developers about the need to protect local RPC channels with the same prudence as network connections. We also hope that it will discourage users to run security-critical applications like cryptocurrency wallets on shared systems or computers with guest account enabled.

References

  1. 2015. Enabling SSL on original client daemon. https://en.bitcoin.it/wiki/Enabling_SSL_on_original_client_daemonGoogle ScholarGoogle Scholar
  2. 2016. CSRF Vulnerability Allows for Remote Compromise of Monero Wallets. https://labs.mwrinfosecurity.com/advisories/csrf-vulnerability-allows-for-remote-compromise-of-monero-wallets/Google ScholarGoogle Scholar
  3. 2018. Bisq the P2P exchange network. https://bisq.network/Google ScholarGoogle Scholar
  4. 2018. Bitcoin Armory. https://btcarmory.com/Google ScholarGoogle Scholar
  5. 2018. Bitcoin Core. https://bitcoin.org/Google ScholarGoogle Scholar
  6. 2018. Bitcoin JSON-RPC API. https://en.bitcoin.it/wiki/API_reference_(JSON-RPC)Google ScholarGoogle Scholar
  7. 2018. Bitcoin Knots. https://bitcoinknots.org/Google ScholarGoogle Scholar
  8. 2018. Bitcoind-rpc library. https://github.com/bitpay/bitcoind-rpcGoogle ScholarGoogle Scholar
  9. 2018. Cpp Ethereum wallet. https://github.com/ethereum/alethGoogle ScholarGoogle Scholar
  10. 2018. CVE-2018-20587. Available from MITRE, CVE-ID CVE-2018-20587. http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-20587Google ScholarGoogle Scholar
  11. 2018. Dash Core wallet. https://github.com/dashpay/dashGoogle ScholarGoogle Scholar
  12. 2018. Dashd-rpc library. https://github.com/dashevo/dashd-rpcGoogle ScholarGoogle Scholar
  13. 2018. Docker Parity documentation. https://wiki.parity.io/DockerGoogle ScholarGoogle Scholar
  14. 2018. Electrum Bitcoin Wallets Left Exposed to Hacks for Two Years. https://www.bleepingcomputer.com/news/security/electrum-bitcoin-wallets-left-exposed-to-hacks-for-two-years/Google ScholarGoogle Scholar
  15. 2018. Go Ethereum wallet. https://geth.ethereum.org/Google ScholarGoogle Scholar
  16. 2018. How your Ethereum can be stolen through DNS rebinding. https://ret2got.wordpress.com/2018/01/19/how-your-ethereum-can-be-stolen-using-dns-rebinding/Google ScholarGoogle Scholar
  17. 2018. Litecoin wallet. https://litecoin.org/Google ScholarGoogle Scholar
  18. 2018. Metamask Ethereum client. https://metamask.io/Google ScholarGoogle Scholar
  19. 2018. Monero-nodejs library. https://github.com/PsychicCat/monero-nodejsGoogle ScholarGoogle Scholar
  20. 2018. Monero-python library. https://github.com/emesik/monero-pythonGoogle ScholarGoogle Scholar
  21. 2018. Monero Wallet. https://getmonero.org/Google ScholarGoogle Scholar
  22. 2018. Parity Ethereum wallet. https://www.parity.io/Google ScholarGoogle Scholar
  23. 2018. Peatio: an open-source assets exchange. https://www.peatio.com/Google ScholarGoogle Scholar
  24. 2018. Python-BitcoinRPC library. https://github.com/jgarzik/python-bitcoinrpcGoogle ScholarGoogle Scholar
  25. 2018. Qtum Core wallet. https://github.com/qtumproject/qtumGoogle ScholarGoogle Scholar
  26. 2018. Qtumjs library. https://qtumproject.github.io/qtumjs-doc/Google ScholarGoogle Scholar
  27. 2018. Unauthenticated JSON-RPC API allows takeover of CryptoNote RPC wallets. https://www.ayrx.me/cryptonote-unauthenticated-json-rpcGoogle ScholarGoogle Scholar
  28. 2018. Vulnerability Spotlight: Multiple Vulnerabilities in the CPP and Parity Ethereum Client. https://blog.talosintelligence.com/2018/01/vulnerability-spotlight-multiple.htmlGoogle ScholarGoogle Scholar
  29. 2018. Web3 java Ethereum library. https://web3j.io/Google ScholarGoogle Scholar
  30. 2018. Web3 javascript Ethereum library. https://github.com/ethereum/web3.jsGoogle ScholarGoogle Scholar
  31. 2018. Web3 python Ethereum library. https://web3py.readthedocs.io/en/stable/index.htmlGoogle ScholarGoogle Scholar
  32. 2018. Zcash Wallet for Linux. https://github.com/zcash/zcashGoogle ScholarGoogle Scholar
  33. Jean-Philippe Aumasson. 2018. Attacking and Defending Blockchains: From Horror Stories to Secure Wallets. https://www.blackhat.com/eu-18/briefings/schedule/index.html#attacking-and-defending-blockchains-from-horror-stories-to-secure-wallets-12711.Google ScholarGoogle Scholar
  34. Steven M Bellovin and Michael Merritt. 1992. Encrypted key exchange: Password-based protocols secure against dictionary attacks. In Proceedings of IEEE Computer Society Symposium on Research in Security and Privacy. IEEE, 72--84. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Thanh Bui, Siddharth Prakash Rao, Markku Antikainen, Viswanathan Manihatty Bojan, and Tuomas Aura. 2018. Man-in-the-Machine: Exploiting Ill-Secured Communication Inside the Computer. In USENIX Security 18. USENIX Association, Baltimore, MD, 1511--1525. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Vitalik Buterin. 2013. What proof of stake is and why it matters. Bitcoin Magazine (2013).Google ScholarGoogle Scholar
  37. Gil Cohen. 2017. Call the plumber - You have a leak in your (named) pipe. In DEF CON 25.Google ScholarGoogle Scholar
  38. Adrienne Porter Felt, Helen J Wang, Alexander Moshchuk, Steve Hanna, and Erika Chin. 2011. Permission Re-Delegation: Attacks and Defenses. In 20th USENIX Security Symposium. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. J. Franks, P. Hallam-Baker, J. Hostetler, P. Leach, A. Luotonen, E. Sink, and L. Stewart. 1997. An Extension to HTTP: Digest Access Authentication. RFC 2069. RFC Editor. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Google. 2018. Native messaging. https://developer.chrome.com/apps/nativeMessaging.Google ScholarGoogle Scholar
  41. JSON-RPC Working Group and others. 2012. JSON-RPC 2.0 specification.Google ScholarGoogle Scholar
  42. Anne Kesteren. 2018. Cross-Origin Resource Sharing. https://www.w3.org/TR/cors/Google ScholarGoogle Scholar
  43. Jie Liang and Xue-Jia Lai. 2007. Improved collision attack on hash function MD5. Journal of Computer Science and Technology 22, 1 (2007), 79--87. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. Microsoft Developers Network. 2018. Fast User Switching. https://msdn.microsoft.com/en-us/library/windows/desktop/bb776893.Google ScholarGoogle Scholar
  45. Mozzila. 2018. HTTP authentication. https://developer.mozilla.org/en-US/docs/Web/HTTP/Authentication.Google ScholarGoogle Scholar
  46. Satoshi Nakamoto. 2008. Bitcoin: A peer-to-peer electronic cash system. (2008).Google ScholarGoogle Scholar
  47. Yutaka Oiwa, Hajime Watanabe, Hiromitsu Takagi, K Maeda, Tatsuya Hayashi, and Y Ioku. 2017. Mutual authentication protocol for HTTP. RFC 8120. https://tools.ietf.org/html/rfc8120Google ScholarGoogle Scholar
  48. Julian Reschke. 2015. The 'Basic' HTTP Authentication Scheme. RFC 7617. https://tools.ietf.org/html/rfc7617Google ScholarGoogle Scholar
  49. Yuru Shao, Jason Ott, Yunhan Jack Jia, Zhiyun Qian, and Z. Morley Mao. 2016. The Misuse of Android Unix Domain Sockets and Security Implications. In 2016 ACM SIGSAC Conference on Computer and Communications Security, CCS 2016. ACM, 80--91. Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. Hayawardh Vijayakumar, Xinyang Ge, Mathias Payer, and Trent Jaeger. 2014. JIGSAW: Protecting Resource Access by Inferring Programmer Expectations. In 23rd USENIX Security Symposium. 973--988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  51. Hayawardh Vijayakumar, Joshua Schiffman, and Trent Jaeger. 2012. STING: Finding Name Resolution Vulnerabilities in Programs. In 21th USENIX Security Symposium. 585--599. Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. Hayawardh Vijayakumar, Joshua Schiffman, and Trent Jaeger. 2013. Process firewalls: Protecting processes during resource access. In 8th ACM European Conference on Computer Systems, EuroSys'18. ACM, 57--70. Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. Marko Vukolić. 2015. The quest for scalable blockchain fabric: Proof-of-work vs. BFT replication. In International Workshop on Open Problems in Network Security. Springer, 112--125.Google ScholarGoogle Scholar
  54. Xiaoyun Wang and Hongbo Yu. 2005. Howto break MD5 and other hash functions. In Annual international conference on the theory and applications of cryptographic techniques. Springer, 19--35. Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. Blake Watts. 2017. Discovering and Exploiting Named Pipe Security Flaws for Fun and Profit. http://www.blakewatts.com/namedpipepaper.html.Google ScholarGoogle Scholar
  56. Wang Wei. 2018. Hackers Stole Over $20 Million in Ethereum from Insecurely Configured Clients. https://thehackernews.com/2018/06/ethereum-geth-hacking.htmlGoogle ScholarGoogle Scholar
  57. Gavin Wood. 2014. Ethereum: A secure decentralised generalised transaction ledger. Ethereum project yellow paper 151 (2014), 1--32.Google ScholarGoogle Scholar
  58. Thomas D Wu et al. 1998. The Secure Remote Password Protocol. In NDSS, Vol. 98. 97--111.Google ScholarGoogle Scholar
  59. Luyi Xing, Xiaolong Bai, Tongxin Li, XiaoFeng Wang, Kai Chen, Xiaojing Liao, Shi-Min Hu, and Xinhui Han. 2015. Cracking app isolation on Apple: Unauthorized cross-app resource access on macOS. In Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communications Security, CCS 2015. ACM, 31--43. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Pitfalls of open architecture: How friends can exploit your cryptocurrency wallet

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Conferences
        EuroSec '19: Proceedings of the 12th European Workshop on Systems Security
        March 2019
        59 pages
        ISBN:9781450362740
        DOI:10.1145/3301417

        Copyright © 2019 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 25 March 2019

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article
        • Research
        • Refereed limited

        Acceptance Rates

        EuroSec '19 Paper Acceptance Rate9of25submissions,36%Overall Acceptance Rate47of113submissions,42%

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader