AmazonのRoute 53 DNSサービスで起きた
BGPハイジャック事件の真相

による投稿 2018年9月24日
2018年9月25日

仮想通貨を盗む手口とは? インターネットで使われる基本的なプロトコルであるDNSとBGPのハッキングがそのひとつなのです。

いかなる暗号システムであれ、盗みの手口のひとつは、取引が行われているときに仲介人(MITM:a Man In The Middle)となることです。取引の両者は、相手が正当な当事者と話していると信じていますが、実際には、悪役の名俳優が間に入り自分の都合の良い情報に変えて伝言するのです。暗号化されていた場合、受け取り側の公開鍵となるかもしれません。その場合、あなたのコインは意図した相手に送られるのではなく、悪者が用意した別のウォレットに転送され、その取引がブロックチェーンで確認されてしまうともう元に戻すことはできません。このトランザクションを無効にすることができる保障措置や中央当局はありません。それが暗号化通信の現実ですが、その話題はまた後日。

では、悪役俳優はどのように仲介人になれるのでしょうか?それが、インターネットを管理する基本的なプロトコル(DNSとBGP)の乗っ取りです。まさに事件は、4月24日の日本時間21:00頃に起きました。https://japan.zdnet.com/article/35118344/ この事件のターゲットは、人気のある暗号化ウォレットアプリMyEtherWalletであるとセキュリティ研究者Kevin Beaumontによって報告されました。この攻撃の被害者は、Instagram(下記図1参照)やCNNが利用しているAmazonのRoute 53 DNSサービスのユーザーでした。

図1:DNSエラーがInstagramのサービスに影響
図1:DNSエラーがInstagramのサービスに影響

DNSサービスをハイジャックする目的は、ドメインバインディングの変更により、仲介人が持つサーバーの偽のIPアドレスをリゾルバに返させるためです。これを行うには2つの方法があり、グローバルレベルで、そのドメインの権限のあるサーバー(または関連するサーバー)を制御し、バインドを変更するか、DNSキャッシュエントリを改ざんすることによって特定エリアのレベルで行うことができます(以前のDNS ハイジャックについてのブログ記事もご参照ください)。しかし、この事件では、犯人はどちらの方法も使わず、代わりにインターネットをつなぐプロトコルであるBGPの弱点を攻撃しました。

インターネットのコントロールプレーンはISP間の暗黙的な信頼に依存しています。Route Origin Authorization(ROA)のような明示的な認証の導入が勧められていますが、未だ普及するにいたっていません。これが意味することは、ISPを支配してインターネットを欺くことは比較的簡単だということです。この事件では、犯人は、XLHostとしても知られるオハイオ州コロンブスにある「eNet」という小さなISPをターゲットにしました。このISPはEquinixと、アシュバーン(バージニア州)とシカゴ(イリノイ州)にあるIX(Internet eXchange)にピアリングしています。よって、ここから多数のISPにアクセスすることができ、そのうち2つはを経由してインターネット上に偽装したプレフィックスを伝播させたのです。 Amazonは205.251.192.0/23を広報し続けましたが、より細かいプレフィックスである205.251.193.0 / 24がインターネット上で利用可能になりました。 IPルーティングの世界では、プレフィックスが長い経路が優先されるため、AmazonのDNSサーバー向けのトラフィックがXLHostネットワークに流入し始めました。

図2:eNetからハリケーン・エレクトリックとTDSテレコムに広報された205.251.192.0 / 24
図2:eNetからハリケーン・エレクトリックとTDSテレコムに広報された205.251.192.0 / 24

その時XLHostのデータセンターで待ち構えていたのは、MyEtherWallet.comへの問い合わせに対してのみ答える偽のDNSサーバーで、その他の問い合わせは回答せず、すべて廃棄されました。 図3は、一部のクラウドエージェントが実際のAmazon Route 53 DNSサーバーに到達できないことを示すThousandEyes のネットワーク可視化の画面です。 しかし、一部のクラウドエージェントは、Route 53からドメインに到達して解決されていることもわかります。

図3:ネットワークパスの可視化による到達可能性
図3:ネットワークパスの可視化による到達可能性

Amazon Route 53は、この問題を数時間で検出・解決し、連鎖的な大障害が発生する前にDNSサービスを正常に復元できました。しかし、MyEtherWalletの一部のユーザーは不運でした。レポートによると、この攻撃の被害を受けてEthereum(仮想通貨のイーサリアム)から150,000ドル以上が盗まれました。

BGPハイジャックは、ROAのような認証技術が普及されない世界で防止することは困難です。ただし、ThousandEyesのような監視サービスを使用して、迅速に検出および解決することができます。私たちの過去のブログ記事では、BGPリークとハイジャックに対抗するためのベストプラクティスを公開しています。デジタルサービスをオンラインで提供している場合、サービスの完全性維持をプロバイダに依存することはできません。サウザンドアイズのクラウドエージェントのような広い範囲のポイントからサービスを監視して、あなたのサービスをハイジャックしようとしている犯罪者を監視・検出する必要があるのです。さらに、DNSプロバイダの監視により、常に権限のあるサーバーへの到達が可能であり、あらゆる地域からの問い合わせに対して正しいバインディングに応答できるようにする必要があります。

DNSハイジャックの試みを検出するためのDNSアラートの設定方法に関するヒントもいくつかご紹介いたします。

ThousandEyesの15日間の無料トライアルを利用して、BGPプレフィックスとDNSインフラストラクチャの監視を試しませんか?。