アルトコイン/altcoin

MyEtherWalletでDNSハッキングによるETH盗難

MyEtherWallet,公式ツイッターでハッキングを認める

MyEtherWallet.comの公式ツイッターは、2018424日に、MyEtherWallet.comDNSサーバがハッキングされ、MyEtherWallet.comにアクセスしようとしたユーザがフィッシングサイトに誘導されたことを報じました。

ログインした途端にウォレット内のイーサリアム(ETH)を勝手に犯人のアドレスへ送信されてしまったのです。被害額は215ETH(1600万円)以上にのぼるということです。

以下では、こうしたハッキング等に対処してMyEtherWalletを安全に使うにはどうすればよいかを見ていきます。

MyEtherWalletの概要

Myetherwalletは、イーサリアム用として人気があるウォレットです。イーサリアム以外にイーサリアムトークンにも使えます。

Myetherwalletは、下記に示すウォレットの分類でいうと、PC上で操作するデスクトップウォレットになります。操作をブラウザ画面上で行なうソフトです。コールドウォレットと連携することも可能です。

デスクトップウォレットはインターネット上に秘密鍵を置きませんので、Myetherwalletのサーバーがセキュリティ攻撃されても秘密鍵が漏洩することはありません。

もちろん使用しているPC自体をハッキングされれば秘密鍵が漏洩する恐れはあります。

ウォレットの分類

ウォレットは仮想通貨ごとにいろんなものが出回っていますが、以下のように分類できます。

区分

説明

ウェブウォレット

インターネット上にアカウントを開設して利用

デスクトップウォレット

PCに専用ソフトをダウンロードして利用

モバイルウォレット

スマホにアプリをダウンロードして利用

ハードウェアウォレット

USBなど専用機器を利用

ペーパーウォレット

秘密鍵などを印刷した紙で保管

最初の3つを「ホットウォレット」、残りの2つを「コールドウォレット」と呼びます。

DNSハッキングでなぜ被害にあうのか、その原因と対策

今回発生したDNSハッキングでなぜ被害にあったのか、今後、被害にあわないためにはどうすればよいかを見ていきます。

DNSハッキングでフィッシングサイトに誘導

DNSサーバとは、いわば、WEBサイトのアドレス帳に相当します。MyEtherWallet.comの名称からIPアドレスを算出してサイトにたどり着くために使用されます。

DNSハッキングでは、このアドレス帳を書き換えて、名称「MyEtherWallet.com」でアクセスしようとする利用者に犯人のサイト(フィッシングサイト、偽画面)を開くように仕向けるのです。

犯人の偽サイトの出来が悪ければすぐにおかしいと感じでしょう。しかし、巧妙に作られた場合、偽画面とは夢にも思わない利用者はサイトが開けばすぐにログインしてしまうでしょう。ログインして秘密鍵が知られてしまえば、ETH等を勝手に抜き取られてしまいます。

DNSの脆弱性

今回のDNSサーバのハッキングは、MyEtherWallet.comに固有の問題があっって発生したわけではありません。同じ日に、GoogleDNSAmazon Route 53を原因とする類似問題が発生しているとの報告があります。こうした、特定のサイトの脆弱性を突くのではなく、各サイト共通のDNSサーバーの脆弱性を狙ったハッキングは今後も想定され、備えをしておくことは有用なことです。

フィッシング詐欺にあわないために

(1)ブラウザアクセスに不審な点がないか

・ブラウザをオンラインで使う場合は、SSL認証されているかを必ずチェックします。SSL認証済なら、URL入力欄の先頭に緑のSSL証明が表示されています。

URLにあれっ?と思ったら、良くチェックするか、一旦使用を控えます。

(2)オフライン送出機能を利用する

MyEtherWalletには、ブラウザ操作でイーサリアム等の仮想通貨を送る場合に、取引データを自分のPC上で作成して秘密鍵をインターネット上に表示しない機能が準備されています。この機能を使うことで万一ハッキングされても秘密鍵の流出を防ぐことができます。ただし、ブラウザが偽物ではないという前提です。

操作方法は以下の通りです。

MyEtherWalletのメニューで「オフライン送出」をクリックする。

引用元:https://www.myetherwallet.com

ステップ1(online):送出元アドレスを指定してガス価格、Nonceを生成

 引用元:https://www.myetherwallet.com/#offline-transaction

・ステップ2a(offline):宛先、送出額、ガス価格等をトランザクションデータ入力。

 引用元:https://www.myetherwallet.com/#offline-transaction

ステップ2b(offline):署名方法を選択してトランザクション生成と署名をする。

 引用元:https://www.myetherwallet.com/#offline-transaction

ステップ3(online):トランザクションを送出する。

 引用元:https://www.myetherwallet.com/#offline-transaction

上記のステップ2PC内での操作であり、ネットワークにはデータが流れない(offline)ので、秘密キーを盗まれる恐れはありません。

(3)新たなイーサリアムトークンを売買する場合の留意点

MyEtherWalletではERC20準拠のトークンの売買ができます。その際は、以下のような点に配慮します。

・サイトにアクセスする場合は、一手間増えますが、Google検索結果を利用するなどして、送られてきたリンクのコピペを避ける。

EtherAddressLookupまたはMetaMaskをインストールしてサイトチェックを行う

Twitterアカウントがあれば、その内容を見て怪しくないか確認する。

(4)ブラウザをローカルで使う

ブラウザをMyEtherWalletGithubからダウンロードしてPCにインストールすれば、インターネットにアクセスすることなく操作できます。

インストール方法は以下の通りです。

MyEtherWallet.comのトップ画面を開き、画面下部の「Github: Current Site & CX」をクリックします。

引用元:https://www.myetherwallet.com/

Githubの画面が表示されますので、「Clone or download」→「Download ZIP」の順に選択します。

引用元:https://github.com/kvhnuke/etherwallet

etherwallet-mercury.zipというzipファイルがPCにダウンロードされますので、解凍(ファイルをダブルクリック)して展開します。

展開すると、フォルダetherwallet-mercury内にdistというサブフォルダが作成されます。

 上記のサブフォルダdistにある「index.html」をブラウザ(Google Chromeが推奨)で開くことで、PCをインターネットに接続しないローカル環境でも、MyEtherWalletを操作できるようになります。

しかし、この方法は、MyEtherWalletソフトのアップデートを自分で確実に行うことが前提になりますので上級者以外にはお勧めできません。

(5)ハードウェアウォレットの使用

 Ledger Nano Sなどのハードウェアウォレットは、普段はインターネットに接続しないのでセキュリティは高いウォレットです。しかし、ウォレット自体の価格が高い事、購入した仮想通貨の保存や、保存中の仮想通貨の送金手続きが複雑になることなどから、費用対効果を考えると、初心者にはお勧めできません。ある程度仮想通貨の取引を行って仮想通貨の保有量が増える時点で導入を考えても遅くないと思います。

セキュリティ確保には継続な見直しを

完璧なセキュリティ対策とソフトウェア不具合をゼロにすることは、ITにおける永遠の課題です。これで良いという限度はありませんし、使い勝手を犠牲にしたりコストが増加してしまいます。手間ですが、適切な情報を得て自分の環境に適した対策を継続的に見直す地道な努力が必要です。