理論のビット
Syn Flood-サービス拒否などのネットワーク攻撃の一種で、かなり短時間で大量のSYN要求を送信します。 SYNパケット自体は小さく(リンクレベルヘッダーが54バイト以上)、1Gの帯域幅であっても、1秒あたり大量のパケットを生成できます。 一部のプロバイダーは、ネットワークからの送信元アドレスを偽装したパケットの送信を禁止していません。また、そのようなプロバイダーがホストする1G帯域を持つ1つのサーバーでさえ、多くの問題を引き起こす攻撃を生成できます。 エンドユーザー向けのほとんどのインターネットプロバイダーは、偽の送信元アドレスを使用してネットワークからパケットをリリースしないため、ほとんどの攻撃はDCクライアントから発生し、攻撃マシンの数は少ないです。
ルーターで何ができますか?
最初に、接続が良好であり、多くのトラフィック交換ポイントが接続されているという事実から進める必要があります。 もちろん、唯一のUPLINKがあり、Syn Floodが1台のマシンから来ていると仮定すると、トラフィックを分析できます。DDOSを編成する人が完全に怠け者で、異なるttlを処理しない場合は、ttl + dst ipでトラフィックをブロックできます。 この場合、このttlを持つすべてのトラフィックは遮断されます-これは、サーバーが完全に横たわっている場合よりも確かに優れていますが、最適ではありません。
現時点では、私の仕事では、バックボーンプロバイダーと不完全な接続を提供するプロバイダーに加えて、このようなトラフィック交換ポイントは次のように接続されています。
- DataIX
- クラウドIX
- パイリックス
- ウィックス
- SpbIX
- ムスキックス
- コディックス
- Globalix
- アイホーム
かなり多数のプロバイダー、データセンター、およびサービスプロバイダーがIXデータに接続されています。 ボトムのほとんどは、参加者間のL2接続を提供します。 これらの事実を使用すると、トラフィックがIXを通過する場合、攻撃のソースを簡単にローカライズできます。
方法
最初に、IXを別の仮想スイッチに接続する必要があります-MACアドレスでフィルタリングできるようにするため。 つまり、srcアドレスを置換する場合でも、パケットには境界ルーターのsrc MACアドレスが付きます。 たとえば、DataIXのみを接続し、異常なトラフィックが通過すると想定できます。
接続構成IX
interfaces { xe-0/3/0 { description "UPLINK_IX: DATAIX XX.XX.XX.XX 255.255.252.0 (path XXX);"; flexible-vlan-tagging; native-vlan-id 20; encapsulation flexible-ethernet-services; unit 0 { encapsulation vlan-bridge; vlan-id 20; } } irb { unit 20 { description "DataIX route interface"; family inet { filter { # } address XX.XX.XX.XX/22; } } } } firewall { family bridge { filter ix_mac_filter { # } } } protocols { bgp { group dataix { # BGP } } } routing-instances { switch_dataix { description "DATAIX - prometey XX.XX.XX.XX 255.255.252.0"; instance-type virtual-switch; bridge-domains { switch_dataix_bridge { domain-type bridge; vlan-id 20; interface xe-0/3/0.0; routing-interface irb.20; forwarding-options { filter { input ix_mac_filter; } } } } } }
次に、このIXから送信されたMACアドレスを確認できます。
また、このデータに基づいて、MACアドレスから攻撃されたサーバーに到達したパケットの数をカウントするフィルターを作成できます。root @ rt01> show bridge mac-table MACフラグ(S-静的MAC、D-動的MAC、L-ローカル学習、C-制御MAC SE統計が有効、NM-非構成MAC、RリモートPE MAC) ルーティングインスタンス:switch_dataix ブリッジングドメイン:switch_dataix_bridge、VLAN:20 MAC MAC論理NH RTR アドレスフラグインターフェイスインデックスID 00:01:e8:a3:ed:20 D、SE xe-0 / 3 / 0.0 00:03:fe:0a:ac:00 D、SE xe-0 / 3 / 0.0 00:04:80:f4:bc:00 D、SE xe-0 / 3 / 0.0 00:04:96:51:ba:84 D、SE xe-0 / 3 / 0.0 00:04:96:52:05:a4 D、SE xe-0 / 3 / 0.0 00:04:96:52:05:ea D、SE xe-0 / 3 / 0.0 00:04:96:52:06:14 D、SE xe-0 / 3 / 0.0 00:04:96:6d:13:a9 D、SE xe-0 / 3 / 0.0 00:04:96:6d:14:79 D、SE xe-0 / 3 / 0.0 00:04:96:6d:17:79 D、SE xe-0 / 3 / 0.0 00:04:96:6d:52:3e D、SE xe-0 / 3 / 0.0 00:04:96:6d:5b:26 D、SE xe-0 / 3 / 0.0 00:04:96:6d:6f:f0 D、SE xe-0 / 3 / 0.0 00:04:96:7d:bf:68 D、SE xe-0 / 3 / 0.0 00:04:96:7d:f8:99 D、SE xe-0 / 3 / 0.0 ...
Juniper MXシリーズルーターのドキュメントから判断すると、カウンターアクションには1024のルールの制限がありますが、この制限には達しませんでした。 このフィルターのカウンターの状態をリセットし、しばらくして(1〜2分)結果を確認します。フィルターix_mac_filter { 用語00:01:e8:a3:ed:20 { {から source-mac-address { 00:01:e8:a3:ed:20/48; } ip-destination-address { #攻撃されたサーバーのアドレス } } その後{ カウント00:01:e8:a3:ed:20; 受け入れる; } } 用語00:03:fe:0a:ac:00 { {から source-mac-address { 00:03:fe:0a:ac:00/48; } ip-destination-address { #攻撃されたサーバーのアドレス } } その後{ カウント00:03:fe:0a:ac:00; 受け入れる; } } 用語その他{ その後{ 他のカウント; 受け入れる; } }
root @ rt01>ファイアウォールフィルターix_mac_filterをクリア root @ rt01>ファイアウォールフィルターix_mac_filterを表示 フィルター:ix_mac_filter カウンター: 名前バイトパケット 00:01:e8:a3:ed:20 142632382856 288079929 00:02:4a:2f:a0:1a 5159885 75880 00:03:fe:0a:ac:00 14915791420 72085522 00:04:96:6d:6f:f0 2508125168 35985837 00:04:96:7d:f8:99 362692758 5352205 00:04:96:82:4d:57 216046092 2851369 ...
そして、異常がある場合、どのIPアドレスがこのMACアドレスに関連付けられているかを調べ、それが誰に属しているかを調べ、それがゲートウェイでない場合、拒否ポリシーを設定します。 したがって、攻撃の結果を最小限に抑えます。
もちろん、これは万能薬ではなく、インターネットの一部がブロックされていますが、ほとんどの場合、これらはデータセンターの境界です。トラフィック消費者ではありません。 ロックは非常に簡単です。たとえば、他の手段がない場合、この保護は完全に正当化されます。 プロセスが完全に自動化されると、攻撃の発生源と、複数のチームで対処できるかどうかを理解できるため、人生が大幅に簡素化されます。
追伸 DPCeとMPCを同じシャーシにインストールした後、このスキームはまったく正しく動作しなくなり、フィルター内のパケットの一部が単純に見えなくなりました。 誰かが理由を教えてくれたら、感謝します。