web-dev-qa-db-ja.com

TCP対DDoSに対するUDPの回復力

TCPまたはUDPを使用して同等に実装できるサービスを構築しています。TCPを使用している場合、SYNフラッドおよびTCP =プロトコル。UDPを使用する場合、正当なトラフィックをブロックせずにアップストリームのUDPフラッドをブロックすることは困難です。ここで明確な選択肢はありますか?帯域幅枯渇攻撃がネットワーク上の他のユーザーに影響を与えるため、UDPに傾倒しているため、たとえば、アドレスのなりすましに対する許容度が低くなり、トラフィックを増幅するために利用できるサービスが少なくなるなど、ますます困難になります。

3
user1055568

TCPおよびUDPを選択する場合は、単にセキュリティを超えて考える必要があります。設計しようとしているものの詳細を知らなければ、どのプロトコルを使用するかを推奨することは不可能です。

これらの基本的な事実を考慮してください。

  • TCPは、接続をセットアップするために3ウェイハンドシェイクを必要とし、IPアドレスに基づく多くのスプーフィング攻撃を防ぎます。

  • 暗号化を追加する必要がある場合、TCPはSSL接続を使用できます。

  • UDPは、追跡するためにサーバー側で必要なリソースが少なくなります。
    ソケット。

5
Steve Sether

UDPとTCPのどちらを選択するかは、ユースケースとDDoの種類によって異なります。単純な帯域幅を消費するDDosの場合、攻撃によってすべての帯域幅が使用される場合、UDPまたはTCPに基づくかどうかに関係なく、アプリケーションのトラフィックがなくなるため、問題はありません。この場合、UDP自体が接続の確立に複数のパケットを必要としないため、UDPにはわずかな利点があります(ただし、アプリケーションプロトコルで必要になる場合があります)。

システム上のリソースを食べる攻撃(SYNフラッディングまたは単に多数の接続を開いたままにするなど)に関心がある場合、UDPはシステムでTCPほど多くのリソースを使用しないため、最初は見栄えが良いかもしれません。しかし、アプリケーションが接続、信頼性、および順序付けられたデータ転送について何らかのアイデアを必要とする場合、アプリケーション内にすでにTCPが持っているすてきなものすべてを実装することになります。また、OSカーネル内の最適化された実装よりも多くのリソースを使用することになるため、単にTCPを使用する場合よりも、DDoの影響を受けやすくなります。

また、独自のアプリケーションレベルのネットワーク処理を行う代わりに、確立されたテクノロジーを使用することで、既存のAnti-DDosソリューションを使用できます。代わりに独自の特別なプロトコルを使用する場合は、独自の特別なAnti-DDosソリューションも発明する必要があります。

私は、TCPまたはUDPのどちらでも同等に実装できるサービスを構築しています。

UDPとTCPで同じサービスを実装できる場合同じ信頼性でであり、UDP実装はTCP実装(つまりカーネルユーザー空間のリソースを組み合わせた場合)DDosに直面した場合は、使用するリソースを少なくすることをお勧めします。

1
Steffen Ullrich

私はあなたが考えすぎていると思います。 DDOSに関しては、UDPかTCPのどちらかを選ぶのは面倒です。フラッドをサービスに到達する前に止めるアンチDDOSアプライアンスまたはサービスがない場合、ローカルでパケットをドロップする以外にできることはありません。アプリケーションの要件を指定しなかったため、一般的な答えを提供しました。

  • アプリケーションが長い通信を必要とせず、パケットを失っても構わない場合はUDPを使用してください。クライアントがリクエストを送信し、応答すると、完了します(例:chargen)。不要なハンドシェイクによって追加されるオーバーヘッドが少なくなります。
  • セッション情報を交換する必要があり、信頼性が必要な場合は、TCP(HTTPなど)を使用してください。

すべてに適合するワンサイズはありません。私があなたに提供したソリューションでさえ、十分に一般的ではありません。UDPを使用して、HTTPを使用して通信することができます(なぜでしょうか)。

私が提案するのはあなたの毒を選ぶことです:TCPまたはUDP、次にファイアウォールを使用して制限を使用してSynリクエストの量を制限します: http://www.cyberciti.biz/ tips/howto-limit-linux-syn-attacks.html

Linuxで有効にできるこの種の問題を防ぐために、SYN Cookieと呼ばれる手法があります。 http://www.cyberciti.biz/faq/enable-tcp-syn-cookie-protection/

それでも、私が言ったように、DDOSトラフィック(ブラックホール)をシンクしている外部アプライアンスがないか、ISP /サービスプロバイダーがフラッドを防止している場合は、自分でアプリケーション/マシンを保護することさえ気にしないでください。パケットをドロップしてもアプリケーションがクラッシュしないように保護しますが、DDOS(Distributed Denial of Service)の本質である要求に応えることはできません。

おげんきで ;)

0
BrunoMCBraga