BGPを使用したDDOS攻撃に対する保護

私が管理するネットワーク(AS)でホストされているサーバーは、多くの場合、さまざまなDDOS攻撃を受けます。 攻撃者の目標は、サーバー上にある別個のリソース、サーバー自体、およびサイト全体としての可能性があります。 攻撃の数、複雑さ、および威力は毎月増加しています。 300-400Mb / sでの攻撃は70-80Gb / sに増加しました。 この状況では、すべての攻撃がサーバーの調整によって撃退されるわけではなく、大規模な攻撃が作業全体およびサイト全体に干渉する可能性があります。 ホスティングチーム全体の助けを借りて、このような攻撃に対処する必要があります。 ネットワーク管理者には、ネットワークレベルでこのような攻撃に対処する手段も必要です。 そのようなツールは、カットの下で議論されます。



この記事では、ダイナミックルーティングによるDDOS攻撃に対する主要な保護方法について検討します。-ブラックホール(「ブラックホール」)方式。

この方法により、攻撃されたサーバーへのトラフィックの流れを完全に停止し、ASおよびプロバイダーチャネルから負荷を取り除くことができます。 高可用性仮想ホスティングサービスを提供する条件では、この方法は極端な手段ですが、他の手段に対処できない場合に大規模なDDOS攻撃に対処する有効な方法であり続けます。



記事に表示されるいくつかの用語を説明しましょう。

BGP(Border Gateway Protocol)は、グローバルインターネットの主要な動的ルーティングプロトコルです。 ルーターがルーティングテーブルを交換できるようにします。 柔軟なトラフィック管理ツールを提供します。

BGPコミュニティ -動的ルーティングプロトコルBGPの属性。これにより、送信されたルートに特定のラベルを設定できます。 この属性を使用すると、カスタム値を作成および設定し(推奨されるコミュニティ形式のみがインストールされます)、それらに基づいて、ルーターフィルターを柔軟に構成できます。

ピアリング -ルート交換のために確立されたBGPセッション。

ネットワークアナウンスメント -動的ルーティングプロトコルの用語では、ローカルルーティングテーブルから近隣ルーターにルートを送信します。

AS(自律システム) -グローバルインターネットの確立されたルールに従って1人のオペレーターが管理するIPネットワークのセット。

eBGP(外部ボーダーゲートウェイプロトコル)は、異なるASのルーター間のBGPルート交換の一種です。

iBGP(Internal Border Gateway Protocol) -AS内のルーター間のBGPルート交換の一種。

ポリシーステートメント -ルーター構成の一部として、ジュニパーは、動的ルーティングプロトコルを介して受信または送信されるルートのフィルタリング条件を決定する一連のルールです。

DDOS(Distributed Denial of Service)は、分散型サービス不能攻撃です。 トラフィックを生成したり、被害者を攻撃したりするマルウェア(ボットネット)に感染した世界中のコンピューターのネットワークを使用する攻撃。

UDP増幅は、開いているUDPポートとSNMP、NTP、DNSサービスを備えたサードパーティのサーバーを使用するDDOS攻撃の一種です。 通常、このタイプの攻撃は、被害者のチャンネルの帯域幅を目的としています。

ISP(インターネットサービスプロバイダー) -単にインターネットアクセスサービスを提供する組織-プロバイダー。



BGPブラックホール



Blackholeを使用すると、ASに入る前にプロバイダーレベルでトラフィックを管理できます。 帯域幅に対する大規模な攻撃(ほとんどの場合DNS Amplification )に対処するのに効果的です。 従来の方式では、この方法には、アドバタイズされたルートのネクストホップをプライベートネットワークからIPアドレスに設定することが含まれます。 バックボーンプロバイダーはプライベートネットワークへのルートを持っているため、ほとんどの場合、このネットワークからの宛先アドレスを持つNull0(Cisco用語では、破棄)にルーティングする必要があります。これらのパケットは、プロバイダーのネットワークでも「ブラックホール」に陥ります。 残念ながら、バックボーンプロバイダーの実際のネットワークでは、プライベートネットワークルートが常にNull0に設定されているわけではありません。プロバイダー自体がルーティングにこれらのアドレスを使用するか、RFCの推奨事項に単に従わないためです。 ブラックホールをインストールするには、ほとんどの場合、高度なBGPルート管理機能-BGPコミュニティを使用します。 この方法は、トラフィックを「ブラックホール」に誘導する必要があるルートの特別なグループ(コミュニティ)を作成することで実装されます。 攻撃の開始時に、攻撃を受けたASのネットワーク管理者は、長いマスク/ 32でルートを転送し、このコミュニティでそれを強化することができます。これにより、このIPアドレスの前にパケットを破棄する必要があることをISPルーターに通知します。 ISP側でのパケットフィルタリングは、ACLまたはNullインターフェイスのいずれかを使用して実行できますが、最も正しいアプローチには再帰的なブラックホールが含まれます。 概略的な再帰的ブラックホール法を以下に示します。



AS3およびAS4からの攻撃者は、AS2にあるIPアドレス1.1.1.1でWebサーバーを攻撃します。 AS2ネットワーク管理者は、コミュニティ666を使用して自分のIPアドレスにルートを送信することにより、ブラックホールにサーバーアドレスを設定します。 さらに、ISP(AS1)は、独自のチャネルから負荷を取り除くために、提供されたブラックホールコミュニティをインストールすることにより、このルートをプロバイダにさらに渡します(図では、コミュニティ3:666および4:666)。 この保護方法は、AS1プロバイダーのeBGPチャネルだけでなく、AS1とAS2間のチャネルから負荷を取り除くため、AS2ルーターでの単純なパケットフィルタリングよりもはるかに効果的です。 IPアドレス1.1.1.1に向けられたパケットのドロップは、攻撃者が直接接続しているプロバイダーのルーターで発生します。 攻撃者が別のASに接続している場合(プロバイダーのASに属していない場合)、AS3およびAS4プロバイダーのそれぞれは、ブラックホールコミュニティからの経路をさらにプロバイダーおよびその順番にアドバタイズできます。 したがって、バックボーンプロバイダーのすべてのネットワークは、DDOSトラフィックからオフロードされます。



BGP練習ブラックホール



この記事は、実用的な実装の例がなければ完成しません。 実際の適用方法は、ジュニパーのルーターの例に示されていますが、どのベンダーの機器にも実装できます。



プロバイダー側​​のセットアップ


最初に、ブラックホールにインストールされているプレフィックスを示す特定のコミュニティを作成する必要があります。

set policy-options community TEST_blackhole members 1:666
      
      





ここで、1はプロバイダーのAS番号(他のISPネットワークを介して転送される場合でもコミュニティを一意に保つことができます)、666はコミュニティの一意の番号です(任意の番号ですが、666をお勧めします)。 次に、ピアからプレフィックスをインポートするためのポリシーを作成し、コミュニティブラックホールからプレフィックスを選択し、それらをNullでラップします(Juniperではこれは破棄されます)。

 [edit policy-options policy-statement Blackhole-import] term to-blackhole { from community TEST_blackhole; then { community add ISP-community; #  blackhole community  ISP      next-hop discard; accept; } }
      
      





クライアントからインポート(受信)されたプレフィックスのeBGPセッションにこのポリシーステートメントを割り当てます。



クライアント側のセットアップ


同様に、最初に、ブラックホールにインストールされているプレフィックスを示すコミュニティが作成されます。

  set policy-options community TEST_blackhole members 1:666
      
      





値はプロバイダー側​​と同じですが、唯一の違いは、AS番号がプロバイダーのAS、つまりコミュニティを発行し、その指定を設定する必要があることです。 次に、ISPルーターに渡す必要があるプレフィックスにコミュニティを追加するポリシーステートメントを作成します。

 policy-statement Blackhole-export { term blackhole { from { protocol static; tag 666; } then { community set TEST_blackhole; accept; } } then reject; }
      
      





プレフィックスは静的ルートから選択されます。 ルーターは最初は/ 32より大きいネットワークのみを認識するため、特定のプレフィックスを個別に作成する必要があります。 fromルールからわかるように、このポリシーステートメントは、666タグを持つすべての静的ルートを選択します(タグ番号は任意です)。 このポリシーステートメントを、プロバイダーへのeBGPセッションへのエクスポートフィルターとして割り当てます。 ここで、サーバーアドレスをブラックホールに配置する必要がある場合は、ルーターに静的/ 32ルートを作成します。

たとえば、図で指定されたアドレスをブラックホールに設定するには、次のコマンドを実行します。

 set routing-options static route 1.1.1.1/32 discard tag 666
      
      





1.1.1.1は、ブラックホールに設定されたIPアドレスです。



おわりに



説明した方法を使用すると、サイト全体の正しい操作を妨げる攻撃に対処できます。 このような攻撃は数百ギガビット/秒に達する可能性があり、バックボーンプロバイダーでさえ常にそれらに対処できるとは限りません。 BGPコミュニティ属性は、トラフィックの分類と運用管理のためにバックボーンプロバイダーによって広く使用されています。 多くのISPは、コミュニティ全体を提供します。これにより、ブラックホールに特定のアドレスを設定できるだけでなく、ASに着信するトラフィックを制御できます。つまり、プロバイダーのチャネルでもトラフィックを管理できます。 コミュニティプロバイダーの分析により、ネットワーク管理者はDDOS攻撃に対抗するためのスキームを開発し、場合によっては攻撃を排除するプロセスを自動化することができます。



All Articles