5

I have been reading on how myetherwallet was hacked a day ago because Amazons domain service was compromised, as mentioned here,

https://www.reddit.com/r/ethereum/comments/8ek86t/warning_myetherwalletcom_highjacked_on_google/

The title is erroneous. It was Amazons domain service that was compromised. Googles DNS servers just take whatever IP Amazons domain service tells it MEW's domain resolved to.

https://doublepulsar.com/hijack-of-amazons-internet-domain-service-used-to-reroute-web-traffic-for-two-hours-unnoticed-3a6f0dda6a6f

and

https://www.theregister.co.uk/2018/04/24/myetherwallet_dns_hijack/

But on MyEtherWallet's twitter people are blaming them for the hack, complaining that if they had DNSSec in place, it wouldn't have happened.

How is that MyEtherWallet's fault even though Amazon DNS was hijacked?

curiator
  • 51
  • 1

1 Answers1

6

There are several things which went wrong here and MyEtherWallet could have done things to reduce the risk. The issue was that the traffic to the DNS server was hijacked and thus queries for specific domains resulted in a spoofed response, thus directing the browser to the attackers IP address with a server impersonating the original site. There the user was presented was a fake site which looked like the original one.

DNSSec is designed to prevent exactly this kind of spoofing, i.e. detect that a response is fake. But, DNSSec requires support from the domain owner (must sign records), the DNS server (must return the signed records) and from the client (must require signed records). While MyEtherWallet could have configured there system to offer DNSSec for the domain it has no control over the client part: the attacker could have just returned an unsigned response since only some clients will request DNSSec in the first place and even fewer will insist on getting only a signed response.

Easier would have been to set HSTS for the domains of MyEtherWallet. If this HTTP header is set modern browsers will remember that the domain always needs to be accessed by HTTPS and that no exceptions in case of SSL problems are allowed. To bypass this simple to setup protection the attacker would also need to get a valid certificate for the attacked domain. It is often possible to get such a certificate if the attacker temporarily controls the domain (as seen in this report from an attack against Fox-IT) but by using a CA issuer with additional controls and by restricting the issuer CA using DNS CAA records it could have been made impossible or at least very hard for the attacker to get a certificate for this domain from a public CA.

In summary: MyEtherWallet could have done several things to make it harder for the attacker. Some of these would be easy to implement but still very effective (HSTS). Others (like DNSSec) require adequate support on the client side which is not reality today.

Steffen Ullrich
  • 184,332
  • 29
  • 363
  • 424
  • Since the start of all of it is a BGP hijack (see https://blog.cloudflare.com/bgp-leaks-and-crypto-currencies/) BGP itself could have been secured using RPKI. This is not directly under the website abilities, since it applies to network providers for the authoritative nameservers on the domain used by the website. Unfortunately it is probably even less used than DNSSEC... – Patrick Mevzek Apr 27 '18 at 02:49
  • 2
    BTW, there is also the HSTS preloading list: https://hstspreload.org/ That would have even helped for first time visitors to the website. – Patrick Mevzek Apr 27 '18 at 02:49