I O T A
IOTA users lose several million euros, Tangle stands still for value transactions
Problems are hailing at IOTA: A hacker used an addon of the Trinity Wallet to smuggle malware into the wallets, which stole the seed and thus IOTA worth more than 2 million Euros.
Now the tangle is standing still and the IOTA Foundation is doing everything humanly possible to limit the damage. In doing so, it is demonstrating a claim to control that should not really exist with cryptocurrency. The loss of trust in the cryptocurrency, which is particularly popular in Germany, is likely to be enormous.
Sometimes, it is said that cryptocurrencies are money without trust. From a very theoretical level, this is correct because the users of cryptocurrencies do not need a middleman to receive and send money. In practice, however, trust is built up by the developers who create the wallets that users interact with the networks of crypto-currencies.
How deceptive this trust can be has been demonstrated by numerous users of the cryptocurrency IOTA in recent weeks. In the ranking of cryptocurrencies, IOTA is only in 24th place, and therefore hardly relevant. However, thanks to the diligent work of the Berlin IOTA Foundation and numerous industry partnerships in Germany, IOTA enjoys a level of attention in this country that is far above that of many top 10 cryptocurrencies.
But what happened from 11 February onwards is also exciting in other respects. For it is an incident unique in crypto space to date, which like no other is capable of shaking the foundations of the mantra of being one’s own bank through cryptocurrencies.
The anatomy of a two million dollar hack
A common software to use IOTA is the Trinity Wallet. This wallet was developed by the IOTA Foundation and was released only last year.
From February 11th on, many users suddenly noticed what you absolutely don’t want to notice with a wallet: Their credit balance had dropped to zero, the coins that had been in their wallets had been transferred to other addresses without their permission. On February 12, the IOTA Foundation became aware of the problem. First, they shut down the central coordinator, which brought the tangle — the blockchain of IOTA — to a standstill and did not process any further transactions. There are advantages to not being decentralized when problems occur.
The Foundation then began to investigate the extent and cause of the hack. It soon became clear that the blame lay with the MoonPay integration into the Trinity Wallet. MoonPay is a bill of exchange service that has allowed users of the Trinity Wallet to use credit cards to purchase IOTA tokens directly in the wallet since December 2019. MoonPay was integrated into Trinity through a Content Delivery Network (CDN), which means that the code for it was not supplied by the Trinity wallet itself, but by a third party. The hacker had now succeeded in replacing the code with his own, which spied out the private keys in the wallet.
An inspection of the logfiles of the DNS provider of MoonPay, Cloudflare, finally led to the insight that the hack had been planned long ago and professionally executed. The integration of MoonPay into Trinity began in September 2019, the first closed beta tests were available from November and quickly became known through leaks. On November 26, the IOTA Foundation released the code for MoonPay via GitHub. One day later, on November 27, the hacker was able to manipulate the endpoint of the MoonPay API with a Cloudflare API key and intercept all data. After some testing in December — which is also evident from the logs — the hacker started the attack on the Trinity Wallets on January 25th by delivering the manipulated software over the CDN.
Over the next two weeks, the attacker tweaked his code and technology to secretly spy on the private keys. This process continued until February 10th, without anyone noticing anything. On that day MoonPay finally discovered that an unauthorized routing was taking place and deleted the API key in question, but without informing the IOTA Foundation. When the hacker realized that he had been discovered, he had no choice but to reap the fruits of his labor. He started to execute transactions using the extracted private keys on February 11. The IOTA Foundation estimates that 50 users were affected, who lost a total of 8.55 TeraIOTA tokens, which currently corresponds to a good 2 million euros.
Analysis and damage limitation
The IOTA Foundation admits to having made a mistake. They were aware that CDNs, despite their wide use on the net, carry risks. For this reason, an NPM module (Node Package Manager) was requested in advance to increase security, and this was also set up later by MoonPay. However, “the pressure to publish”, as well as human error, have led to the Foundation not switching to the more secure NPM package before the launch. The error could have been avoided “if the Foundation had accompanied the release of the software through a more intensive and cross-team review process”.
Without wanting to speculate too much, I also wonder why the MoonPay plugin for the wallet had access to the private keys at all. Basically it only needs the public keys to send IOTA tokens to them. It should be possible to separate the public from the private keys and just give a plugin the right to view the public keys. Could the hack have been prevented by more security awareness in wallet development?
But it is as it is, and the IOTA Foundation is left with nothing but admitting bugs and trying to limit the damage. Disabling the coordinator at least prevents the hacker from transferring further tokens. But what now?
First, the Foundation has released a new version of Trinity that is no longer vulnerable. Those who have not opened their Trinity wallet since January 25 should have a good chance that their keys are not yet in the hands of the hacker. He can install the new wallet version and should then be safe. Mobile users should also install a new version that no longer includes the MoonPay plugin.
Subsequently, the Foundation began to locate the stolen IOTA tokens through block-chain or tangle analysis. They enlisted the help of several security experts and cyber forensic scientists and reported the incident to the police in Germany, the UK, and Malta, and to the FBI. The intention here is probably to gain access to major stock exchanges such as Bitcoin.de (Germany) and Binance (Malta) where IOTA is traded. The Foundation has also informed all relevant exchanges to work with them to find out where the stolen tokens have been transferred to and ask them to freeze them if necessary.
However, one core problem remains: the IOTA Foundation does not know how many users are affected. As in a virus epidemic, it is known how many users have been infected — that is the 50 wallets from which credit has been deducted — but the Foundation does not know how many wallets the hacker has the private keys from without having used them so far, which is like someone being infected but not (yet) showing any symptoms. No matter what the Foundation does now, no matter how many security holes it fixes in Trinity — it can’t rule out that users will lose their coins when the tangle is reactivated.
The only thing it can do now is to ask users to migrate their tokens securely to other private keys. She will provide a migration tool for this purpose. This will allow users to claim the coins in their wallet, which the Foundation will verify. If there is any doubt about the legitimacy of this claim, the Foundation will perform a KYC check, i.e. validate the user’s identity. This process is expected to take a maximum of ten days and will be completed when the Foundation re-launches the tangle.
However, it does not yet seem clear when the migration tangle will be available. Probably in early March. Another unfavorable aspect is that probably not every user will be able to file a claim in the appropriate time frame and that it is not clear how the Foundation will handle this.
What do we learn from this? A lot!
This incident is the first major hack of a crypto-wallet. Up to now, users have lost coins on online wallets or stock exchanges when hacks occurred. The fact that a widely used local wallet, issued by the central player of a cryptocurrency, had a security hole has never happened before. At least as far as I know.
No case should be so well suited to questioning the mantra “Not your keys, not your coins” and the concept that cryptocurrencies allow users to be their own bank with simple software. Those who are not able to analyze the wallet’s software — in a way that exposes even tricky and professionally executed hacks — should think twice about whether they really want to be their own bank, which in the crypto-currency environment means transporting a possibly insecure safe through a forest of robbers. What can be exploited here is exploited. Mercilessly.
In addition to this loss of trust among users, the incident also calls on the IOTA Foundation to look into itself and ask how it can prevent something like this from happening again in the future. In a blog post, it promises to raise security requirements in the future, to be much more careful with the implementation of third party plug-ins and to work more closely with external security auditors. She also wants to improve her analysis tools to find out more quickly and efficiently what happens to the tokens in the event of a hack, in order to then freeze them at exchanges.
The approach of the IOTA Foundation may undoubtedly help the aggrieved parties to eventually get their coins back and prevent further damage. Given the facts and its options, the Foundation may have had no choice but to act in this way. However, it also reveals that IOTA is still not a decentralized crypto-currency, but the project of a central foundation based in Berlin. Bastian Lipp, chairman of Bitcoin, writes therefore as indignant as justified on Bitcointalk:
“So the IOTA Foundation obviously does not only see it as its right/duty to control its own tangle, but also the use of its own tokens by third parties!” Lipp understands that the injured parties are happy to accept this. “Only, as of today, the IOTA Foundation can no longer claim to stand for anything other than complete control, censorship, omnipotence over the Tangle and the tokens it contains. I would go so far as to revile 02/21/2020 as the day the IOTA Foundation seized power.”
Of course, Bastian is aware that his choice of words is very drastic. But he is not wrong — there is hardly a case in crypto-currencies where a central player has so drastically enforced his claim to control a coin.