BGPハイジャックの怖さを、目で見てみよう可視化ツールで学ぶWAN入門(1)

本連載では、ツールによる可視化を通じ、WANの世界を垣間見てみます。初回である本記事では、インターネット接続を支える役割を果たしているものの、脆弱性が指摘されるBGPプロトコルを扱います。

» 2018年03月28日 05時00分 公開
[三木泉@IT]

 本連載では、ツールによる可視化を通じ、WANの世界を垣間見てみます。本記事では、インターネット接続を支える役割を果たしているものの、脆弱性が指摘されるBGPプロトコルを扱います。なお、本連載では、ThousandEyesのWAN可視化/テストサービスが取得したデータを、同社のジャック・マーティン氏の協力により利用しています。

2017年8月、日本のインターネットで大規模な通信障害が発生

 2017年8月25日の正午過ぎから、日本のインターネットで大規模な障害が発生しました。NTTコミュニケーションズ(以下、NTT Com)のOCNをはじめ、KDDIなど、日本国内の複数通信サービスで通信障害が確認されました。国内における多数のWebサービスも、一時つながりにくくなりました。

 Googleは翌日、原因が同社における「ネットワーク設定ミス」であることを認めました。同社はこのミスにすぐ気付き、8分以内に修正したとしていますが、影響は長引きました。この「ネットワーク設定ミス」の内容を同社は説明していませんが、BGPに関するものであったことが明らかになっています。

 BGPとは、簡単にいうと何でしょうか。そして、Googleはどのようなミスをしたのでしょうか。

 BGPとは、さまざまな組織間のインターネット接続関係についての、ルータ間の「コミュニケーションの方法、およびやり取りされる情報の内容(プロトコル)」です。このプロトコルは、組織内部でも使われることがありますが、話題になるのは、ほとんど組織間のWAN接続で使われるケースです。

 他の組織とのWAN接続を制御したい組織(多くの場合通信事業者やデータセンター事業者)は、まず該当地域のインターネットレジストリ(日本ではJPNIC)に申請し、世界で唯一の「AS番号」の割り当てを受けます(JPNICによるAS番号割り当てリストは、こちらで見られます)。その上で、BGPを使って他の組織との関係を表現します。

 「AS」とは「Autonomous System(自律システム)」、つまり、自律的に他の組織とのインターネット接続関係(ポリシー)を決め、運用するシステム(ルータ)であるという意味です。

 通常、インターネットに対する上流接続が単一の通信事業者のみである組織は、AS番号を取得しません。他組織との接続関係を自律的に制御する必要がないからです。

BGP接続の例。ある日時における、AS 9370のさくらインターネットと、他組織との接続状況を示している

 通信事業者やインターネットエクスチェンジは、他ネットワークとのインターネット接続をビジネスとしていますので、AS番号を取得しています。こうしたASは外部組織間の接続を提供する役割があるため、「トランジットAS」とも呼ばれます。

 AS(のルータ)同士は、BGPというプロトコルを使って、接続関係をやり取りします。特にトランジットASは、「このIPアドレス範囲と通信したかったら、私を通ることができます」といった経路情報を「広告」、つまり広く知らせます。

一組織における設定ミスが広範な悪影響につながる

 さまざまな分析によると、この通信障害の原因は、Googleが誤って、本来広告すべきでない経路情報を広告してしまったことにあります。誤って広告された経路情報は10万経路以上と言われていますが、その中には、OCN配下の多数のIPセグメントが含まれていました。つまり、「OCNの、このIPアドレス範囲にアクセスしたかったら、Googleのネットワークを通れ」と言ってしまったことになります。

 この「広告」を、Googleが直接接続している米国の通信事業者Verizonのルータが受け取り、Verizonに接続しているKDDIなどのルータに伝えたため、こうした通信事業者を経由して、OCNに接続している該当IPアドレス範囲のWebサービスなどにアクセスしようとする通信は、全てVerison経由で米国のGoogleネットワークに迂回されることになったようです。

 これにより、通信に大きな遅延が発生するとともに、Googleルータの処理能力および接続容量が不足し、あるいは経路制御が不安定となり、事実上つながらない状況になったと見られます。

 Googleは8分以内にミスを修正したとのことですが、いったんルート情報を広告してしまうと、この情報はWANルータ間をリレーされて伝搬しますので、修正の反映が終了するまでにはある程度の時間がかかります。

 BGPは、世界中の組織間のインターネット接続を支えるものです。各ASのルータが、正しい経路情報をやり取りすることで、いずれかのルータがダウンしてしまった場合でも、代替経路を通じた到達性を管理できるようになっています。

 前提は、全てのルータについて常時、BGPの「正しい」運用がなされていなければならないということです。Googleの例からは、一組織におけるルータの設定ミスが、広範な問題を引き起こす可能性があることが分かります。

 ある組織のWANルータ運用担当者が、設定ミスによって潜在的には世界中のインターネット接続組織に迷惑をかけることがあり得るという意味で、BGPには脆弱性があります。これを解消、あるいは軽減する提案もなされていますが、実効性を持つに至っていません。

2016年のBGPハイジャックの例を可視化する

 BGPで、誤った経路情報を流すことにより、通信経路を結果的に「乗っ取って」しまうことは、「BGPハイジャック」と呼ばれます。意図的であったか否かにかかわらず、「ハイジャック」という言葉が使われます。

 ここでは、2016年1月6日(米国中部標準時)に発生したSociete Generale Expressbankの約2時間にわたる接続不能状態が、Tata CommunicationsによるBGPハイジャックを原因としたものであったことを示すデータを見てみましょう。データはThousandEyesによって取得されたものです。

 下の図では、正常な状態におけるBGP接続(Societe Generale Expressbankから見て3ホップ)の状況を示しています。円内の数字は、全てAS番号です。画面中央上の「AS 47410」がSociete Generale Expressbankで、このサービスはブルガリアに存在しており、AS 8866のBulgarian Telecommunicationというブルガリアの通信事業者に接続しています。さらにBulgarian Telecommunicationは、AS 3356のLevel 3 Communicationsなどに接続し、インターネットとの接続性が確保されています。

正常な状態では、AS 47410のSociete Generale ExpressbankはAS 8866のBulgarian Telecommunicationというブルガリアの通信事業者に接続、さらにAS 3356のLevel 3 Communicationsなどに接続し、接続性を確保しています

 ところが、アクセス不能が発生し始めた2016年1月6日午後2時30分ごろには、先ほどの画面ではLevel 3 Communications とピアリングしていたAS 6543のTata Communications America(画面中央やや右)が、多数のルートを吸い込み始めています。

AS 6543のTata Communications Americaが、さまざまなトラフィックを吸い込み始めている

 ただし、まだこの時点では、AS 47410のSociete Generale Expressbankと、Tata Communicationsの間に、AS 8866のBulgarian Telecommunicationが挟まっています。

 その後、AS 47410のSociete Generale ExpressbankとAS 8866のBulgarian Telecommunicationとの接続が見えなくなり、さらに同日午後4時15分頃には全ての経路がAS 6543のTata Communications America(画面中央)に吸い込まれてしまっています。

AS 6543のTata Communications Americaが、さらにトラフィックを集約、AS 47410はバックアップ接続のみになっている
AS 6543のTata Communications Americaは、あらゆるトラフィックの中心となってしまっている

 このように、組織間のインターネット接続関係は、短時間のうちに大きく変わることがあり得ます。自らの組織でインターネット接続に問題が発生した場合、こうしたことが原因となり得ることを認識しなければなりません。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。