ジュニパーMX + IX + SynFlood

この記事では、Juniper MXシリーズルーターに対するSyn Flood攻撃から保護するための非常に簡単な方法について説明します。 この方法は、以下で説明するいくつかの条件下で役立ちます。 もちろん、ハードウェアおよびソフトウェアソリューション、 Syn Cookies 、Syn Proxyテクノロジーなどがあります。 ただし、場合によっては、追加のメカニズムや高価なデバイスを使用せずに、ルーター上のほとんどのトラフィックをブロックすることがあります。 同僚のいくつかの記事を使用してルーターを構成したため、経験を共有することにしました。これは非常に具体的ですが、役に立つことを願っています。 そのような攻撃の例を下のグラフに示します。





理論のビット



Syn Flood-サービス拒否などのネットワーク攻撃の一種で、かなり短時間で大量のSYN要求を送信します。 SYNパケット自体は小さく(リンクレベルヘッダーが54バイト以上)、1Gの帯域幅であっても、1秒あたり大量のパケットを生成できます。 一部のプロバイダーは、ネットワークからの送信元アドレスを偽装したパケットの送信を禁止していません。また、そのようなプロバイダーがホストする1G帯域を持つ1つのサーバーでさえ、多くの問題を引き起こす攻撃を生成できます。 エンドユーザー向けのほとんどのインターネットプロバイダーは、偽の送信元アドレスを使用してネットワークからパケットをリリースしないため、ほとんどの攻撃はDCクライアントから発生し、攻撃マシンの数は少ないです。



ルーターで何ができますか?



最初に、接続が良好であり、多くのトラフィック交換ポイントが接続されているという事実から進める必要があります。 もちろん、唯一のUPLINKがあり、Syn Floodが1台のマシンから来ていると仮定すると、トラフィックを分析できます。DDOSを編成する人が完全に怠け者で、異なるttlを処理しない場合は、ttl + dst ipでトラフィックをブロックできます。 この場合、このttlを持つすべてのトラフィックは遮断されます-これは、サーバーが完全に横たわっている場合よりも確かに優れていますが、最適ではありません。



現時点では、私の仕事では、バックボーンプロバイダーと不完全な接続を提供するプロバイダーに加えて、このようなトラフィック交換ポイントは次のように接続されています。





かなり多数のプロバイダー、データセンター、およびサービスプロバイダーが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アドレスを確認できます。

  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      
 ... 
また、このデータに基づいて、MACアドレスから攻撃されたサーバーに到達したパケットの数をカウントするフィルターを作成できます。

 フィルター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;
            受け入れる;
         }
     }
    用語その他{
        その後{
            他のカウント;
            受け入れる;
         }
     } 
Juniper MXシリーズルーターのドキュメントから判断すると、カウンターアクションには1024のルールの制限がありますが、この制限には達しませんでした。 このフィルターのカウンターの状態をリセットし、しばらくして(1〜2分)結果を確認します。

  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を同じシャーシにインストールした後、このスキームはまったく正しく動作しなくなり、フィルター内のパケットの一部が単純に見えなくなりました。 誰かが理由を教えてくれたら、感謝します。



All Articles