この記事は機械翻訳されました。
GREトンネルとは何ですか?まず、技術的な定義から始めましょう。Generic Routing Encapsulation(GRE)は、通信プロトコルです。パブリックネットワークを経由するのではなく、ネットワークノードを介して直接データを共有するために使用できます。その通信はGREトンネルを介して行われます。
コンピューターと互換性のないデバイス(ルーターなど)と通信するために、GREトンネルを使用することがあります。あるいは、たとえ確信がなくても、存在する可能性のあるプロトコルの課題に関わらず、メッセージが受信者に確実に届くようにGREトンネルを使用するかもしれません。
しかし、ハッカーはGREトンネルを悪用して、重要なシステムを数日間停止させるような高度な攻撃を仕掛けることもあります。トンネルの使用または受け入れを選択する場合は、リスクについて理解する必要があります。
GREの説明
GREトンネルとは何か、またその仕組みを理解するには、いくつかの重要な用語を定義する必要があります。
すべてのGREプロトコルには以下が含まれます。
- ノード:情報を受信または送信できるデバイス(コンピューター、ルーター、プリンター、スイッチなど)は、ノードです。
- パケット:あるデバイスから別のデバイスに送信される情報は、パケットに分割されます。
- ヘッダー:各パケットには、送信者、受信者、およびメッセージの順序に関する情報を含むヘッダーが含まれています。
- ペイロード:ペイロードには、メッセージの重要な内容が含まれています。
GREの際、データパケットは基本的に新しいパケットの中に包まれます。ペイロードは決して変更されませんが、このプロセスによって2つのヘッダーが追加されます。
- 識別:このヘッダーは、受信者がGREパケットを処理していることを通知します。
- 手順:2番目のヘッダーには、送信元と受信者の情報が含まれています。
カプセル化が完了すると、GREトンネリングを開始できます。これを2つのノード間の直接的で保護された通信の一形態と考えてください。パケットが他のノードを通過する必要がある場合でも、途中で検査されたり、保持されたりすることはありません。パケットは迅速にターゲットに移動します。
GREトンネルのセットアップについて説明します。
ほとんどの場合、ルーターの設定を利用してGREトンネルを構築します。ただし、開始するには2つの情報が必要です。
GREトンネルは以下に依存します。
- あなたのIPアドレス。これは、人間が理解しやすいウェブアドレス(www.okta.comなど)とは異なります。IPアドレスは、数字と小数点によって構成されています。
- 受信者のIPアドレス。接続したいノードにも同じデータが必要です。
GRE標準は、2000年にNetwork Working Groupによって設定されました。開発者は、この非常に技術的なドキュメントを確認し、新しいヘッダーの設定方法や、中断することなくメッセージを通過させるための構成方法を理解できます。
GREプロトコルが機能している例
私たちの多くは、互換性のないデバイスの扱いに苦慮しています。たとえば、バッテリー残量が少ない、または電源の問題に対処しているGoogle Nestユーザーは、互換性の問題に対処している可能性があります。通常、それを解決するには新しい機器を購入する必要があります。しかし、別の方法があったとしたらどうでしょうか?
ターゲットサーバーのIPアドレスがわかっている場合は、ルーターを再構成してメッセージを送信できます。たとえプロセスを円滑にするために新しいものを購入しなくてもです。
本質的には、互換性のないデバイスがうまくやっていけると信じ込ませ、昔からの友人のように通信させることができます。適切なコードでメッセージをラップすれば、遅延は発生しません。
これがどのように機能するかを説明するために、簡単な例を挙げましょう。自転車の後ろに小包がくくりつけられており、川向こうの郵便局に届ける必要があります。残念ながら、橋が存在しないため、自転車で水上を渡ることはできません。ただし、フェリーに自転車を載せることはできます。そうすることで、パッケージやバイクを変更する必要はありません。旅のために、別のシステムでパッケージをラップするだけです。
コンピューティングにおけるGREプロトコルも、ほぼ同じように機能します(もちろん、はるかに多くのコーディングが必要です)。
GREおよびその他のネットワークシステム
パケットルールは豊富で広範囲に及んでいます。GREトンネルを実装するということは、これらのプロトコルに違反することを意味する場合があります。
たとえば、最大伝送ユニット(MTU)はデバイスレベルで設定され、パケットの最大サイズを決定します。最大セグメントサイズ(MSS)は、ペイロードサイズを測定します。
GREカプセル化プロセスを実行しても、ペイロードのサイズは変わりません。ただし、2つのヘッダーが追加されるため、MTUルールに違反する可能性があります。クリーンで再パッケージ化されたパケットは、配信される前にバラバラになる可能性があります。
GREカプセル化攻撃:定義と防御
GREプロトコルを使用すると、あるデバイスが別のデバイスと通信して、オープンフィルタリングシステムをバイパスできます。ハッカーはこのような設定を好みます。少し手を加えるだけで、分散型サービス拒否(DDoS)攻撃をセットアップして、サーバーをクラッシュさせ、オフラインにすることができます。
例えば、2016年には、ハッカーはGREを使用して、リオオリンピックのウェブサイトを攻撃しました。彼らはサーバーをクラッシュさせ、人々が自分のデバイスで試合を観戦できないようにすることを期待していました。ハッカーからのトラフィックが攻撃のピーク時に540Gb/秒に達したにもかかわらず、ブラジルと国際オリンピック委員会(IOC)はシステムを稼働させ続けることができました。
マスキング手法は、GREトンネルでは利用できません。ハッカーは、自分の発信元IPアドレスを開示する必要があります。セキュリティ技術者であれば、1つのソースから大量のトラフィックが発生しているのを見て、そのアドレスからの送信をブロックするでしょう。
ハッカーはボットネットを展開することで、この問題を回避します。通常はインターネットで購入されたものを介して接続されている数十万台もの感染したデバイスが、パケットをターゲットに向けます。このような攻撃は大規模であり、阻止することは非常に困難です。
GREに起因するDDoS攻撃に対する防御アプローチは、他のボットネット攻撃に使用するものと同じです。本質的に、あなたの仕事は、追加のトラフィックを処理するために容量をスケールアップするか、あなたの方向に到達するパケットを減らすためにアクセスをスケールバックするかのどちらかです。
当社では、DDoS攻撃に対処する方法に関するアイデアが満載の開発者向けプレイブックを作成しました。サポートが必要な場合は、こちらから始めてください。
参考文献
Generic Routing Encapsulation。(2000年3月)Network Working Group)
Nest製品と互換性のないWiFiルーター。Google Nestヘルプ。
540 Gb/Secの大規模なDDoS攻撃がリオオリンピックを台無しにするのに失敗した方法。(2016年9月)セキュリティの現状。