BGPハイジャックとは?

BGPハイジャックは、インターネットのルーティングプロトコルであるBGPの信頼性を悪用するインターネットトラフィックの悪意のある再ルーティングです。

学習目的

この記事を読み終えると、以下のことができるようになります。

  • BGPハイジャックの定義
  • BGPハイジャックの実際の例について
  • BGPハイジャックを防止するためのいくつかの対策の概要

記事のリンクをコピーする

BGPハイジャックとは?

BGPハイジャックとは、攻撃者が悪意を持ってインターネットトラフィックを再ルーティングすることです。攻撃者は、IPプレフィックスと呼ばれる、実際には所有していない、制御していない、またはルーティングしていないIPアドレスグループの所有権を偽って知らせることでこれを実現します。BGPハイジャックは、誰かが高速道路のすべての標識を変更し、自動車のトラフィックを誤った出口に再ルーティングするようなものです。

BGPは相互接続されたネットワークが所有するIPアドレスについて真実を伝えているという前提に基づいて構築されているため、BGPハイジャックを止めることはほぼ不可能です。高速道路標識を誰も管理していない場合を想像してください。それらが悪意を持って変更されたかどうかを知る唯一の方法は、多くの自動車が間違った地域に行き着くのを観察することだけです。ただし、ハイジャックが発生するためには、攻撃者は1つの自律システム(AS)と別の自律システム(AS)をブリッジするBGP対応ルーターを制御または侵害する必要があるため、誰もがBGPハイジャックを実行できるわけではありません。

BGPとは?

BGPはボーダーゲートウェイプロトコルの略で、インターネットのルーティングプロトコルです。言い換えれば、トラフィックが可能な限り効率的にIPアドレスから別のIPアドレスに移動するように方向を提供します。IPアドレスは、特定のWebサイトの実際のWebアドレスです。ユーザーがWebサイト名を入力し、ブラウザーがそれを見つけて読み込むと、リクエストと応答はユーザーのIPアドレスとWebサイトのIPアドレス間を行き来します。DNS(ドメインネームシステム)サーバーはIPアドレスを提供しますが、BGPはそのIPアドレスに到達する最も効率的な方法を提供します。大まかに言えば、DNSがインターネットのアドレス帳である場合、BGPはインターネットのロードマップです。

それぞれのBGPルーターは、自律システム間の最適なルートを含むルーティングテーブルを保存します。これらは、それぞれのAS*(多くの場合、インターネットサービスプロバイダー(ISP))が所有する新しいIPプレフィックスをブロードキャストするときにほぼ継続的に更新されます。BGPでは、ネットワーク間で可能な限り少ないホップを介してIPアドレスに到達するために、ASからASへの最短かつ最も直接的な経路を常に優先します。BaaSの詳細はこちら >>

*自律システム(AS)の定義

自律システムは、単一の組織によって管理される大規模なネットワークまたはネットワークのグループです。ASには多くのサブネットワークがありますが、すべてが同じルーティングポリシーを共有します。通常、ASはISPか、独自のネットワークとそのネットワークからISPへの複数のアップストリーム接続(これは「マルチホームネットワーク」と呼ばれます)を備えた非常に大きな組織です。各ASには、簡単に識別できるように、独自の自律システム番号(ASN)が割り当てられます。自律システムの詳細はこちら >>

BGPが重要な理由とは?

BGPは、インターネットの大規模な成長を可能にします。インターネットは、相互接続された複数の大規模ネットワークで構成されています。分散化されているため、データパケットが目的のIPアドレスの宛先に移動するための最適なルートを規定する管理機関や交通警官は存在しません。BGPはこの役割を果たします。BGPを使用しない場合、Webトラフィックは、非効率的なルーティングのために宛先に到達するのに膨大な時間がかかるか、意図した宛先にまったく到達しません。

BGPはどのようにハイジャックできますか?

ASが実際に制御しないIPプレフィックスへのルートをアナウンスすると、このアナウンスは、フィルタリングされない場合、インターネット全体に拡散し、BGPルーターのルーティングテーブルに追加されます。その後、誰かがルートに気づき、修正するまで、それらのIPへのトラフィックはそのASにルーティングされます。財産行為を確認し、施行する地方政府がない場合に、領土を獲得できるようなものです。

BGPは常に、目的のIPアドレスへの最短で最も具体的なパスを優先します。 BGPハイジャックが成功するためには、ルートアナウンスメントは次のいずれかでなければなりません:

1) 他のASが以前にアナウンスしたよりも狭い範囲のIPアドレスをアナウンスすることにより、より具体的なルートを提供します。

2) IPアドレスの特定のブロックへのより最短ルートを提供します。さらに、誰もがより大きなインターネットへのBGPルートをアナウンスできるわけではありません。BGPハイジャックを発生させるためには、ASのオペレーター、またはASを侵害した脅威アクターによってアナウンスが行われる必要があります(2番目の事例はよりまれです)。

多くがISPである大規模ネットワークまたはネットワークグループのオペレーターが、そのような悪意のある活動を大胆に引き受けるのは驚くべきことかもしれません。しかし、いくつか数えると、現在世界中で80,000を超える自律システムがあることを考慮すると、一部のシステムが信頼できないものになったとしても驚くことではありません。さらに、BGPハイジャックは必ずしも明白または簡単に検出できるとは限りません。悪役は、他のASの背後で活動をカモフラージュしたり、レーダーの下に留まるために気付かれそうにないIPプレフィックスの未使用ブロックをアナウンスしたりする場合があります。

BGPがハイジャックされるとどうなりますか?

BGPハイジャックの結果として、インターネットトラフィックは間違った方向に進み、監視または傍受されたり、「ブラックホール化」したり、オンパス攻撃の一部として偽のWebサイトに誘導されたりする可能性があります。さらに、スパマーは、BGPハイジャック、またはBGPハイジャックを実行するASのネットワークを使用して、スパミング目的で正当なIPをスプーフすることができます。ユーザーの観点から見ると、リクエストと応答は最も効率的なネットワークルートをたどらず、不必要に世界中を移動する可能性があるため、ページ読み込み時間が長くなります。

最良のシナリオでは、トラフィックは不必要に長いルートをたどって、レイテンシーが長くなるだけです。最悪のシナリオでは、攻撃者がオンパス攻撃を実行したり、資格情報を盗むためにユーザーを偽のWebサイトにリダイレクトしたりする可能性があります。

現実世界でのBGPハイジャック

意図的なBGPハイジャックの実際の例は数多くあります。たとえば、2018年4月、ロシアのプロバイダーは、実際にRoute53 Amazon DNSサーバーに属する多数のIPプレフィックス(IPアドレスのグループ)をアナウンスしました。要約すると、結果として暗号通貨サイトにログインしようとするユーザーが、ハッカーによって制御されているWebサイトの偽のバージョンにリダイレクトされました。その結果、ハッカーは暗号通貨で約152,000ドルを盗むことができました。(より具体的に言うと:ハッカーは、BGPハイジャックを介してAmazon DNSクエリをハイジャックし、myetherwallet.comのDNSクエリが制御するサーバーに行き、間違ったIPアドレスを返し、HTTPリクエストを偽のWebサイトに送信しました。詳細については、ブログの投稿「BGPリークと暗号通貨」を参照してください。

BGPハイジャックの偶発的なインスタンスも一般的であり、グローバルインターネット全体に悪影響を及ぼす可能性があります。 2008年、パキスタン政府が所有するパキスタンテレコムは、WebサイトのBGPルートを更新することにより、パキスタン内のYoutubeを検閲しようとしました。偶然にも新しいルートがパキスタンテレコムのアップストリームプロバイダーに発表され、そこからインターネット全体に放送されたようです。突然、Youtubeに対するすべてのWebリクエストはパキスタンテレコムに向けられ、ほとんどすべてのインターネットでWebサイトが数時間にわたって停止し、ISPを圧倒しました。

ユーザーとネットワークはどのようにしてBGPハイジャックから身を守ることができますか?

インターネットトラフィックのルーティング方法を常時監視することは別として、ユーザーとネットワークは、BGPハイジャックを防止するためにほとんど何もできません。

IPプレフィックスフィルタリング

ほとんどのネットワークは、必要な場合にのみIPプレフィックス宣言を受け入れ、インターネット全体ではなく特定のネットワークにのみIPプレフィックスを宣言する必要があります。そうすることで、偶発的なルートハイジャックを防ぎ、ASが偽のIPプレフィックス宣言を受け入れないようにすることができます。ただし、実際にはこれを実施するのは困難です。

BGPハイジャック検出

レイテンシーの増加、ネットワークパフォーマンスの低下、およびインターネットトラフィックの誤った方向付けは、すべてBGPハイジャックの兆候です。大規模なネットワークの多くは、BGP更新を監視して、クライアントがレイテンシー問題に直面していないことを確認します。実際、数人のセキュリティ研究者がインターネットトラフィックを監視し、調査結果を公開しています。

BGPをより安全にするには

BGPは、インターネットを機能させるように設計されており、確かに機能します。ただし、BGPはセキュリティを考慮して設計されていません。インターネット全体のより安全なルーティングソリューション(BGPsecなど)が開発されていますが、まだ採用されていません。当分の間、BGPは本質的に脆弱であり、引き続き脆弱です。

CloudflareはどのようにBGPを使用しますか?

Cloudflareには、世界中に270の都市にデータセンターがあり、そのすべてが1つのASN(AS13335)と同じIPプレフィックスをブロードキャストしています。これにより、CloudflareがホストするIPアドレスに到達するために通過する必要があるネットワークトラフィックの数が最小限に抑えられます。その結果、Cloudflareが所有するIPアドレスへの効率的な経路を世界中のほぼどこからでも利用できます。日本のASの場合、Cloudflare IPへの最短経路は、わずか数ネットワークホップ離れているだけで、日本に拠点を置くローカルのCloudflareデータセンターに至ります。カリフォルニアでは、トラフィックは同じIPアドレスに送られ、同一のCloudflare AS内でホストされ、カリフォルニアのデータセンターを経由して到達することができます。