TCP SYN OR ICMP Flood攻撃が検出された場合に、これらの攻撃を阻止できるかどうかを知りたい。最も正確なプロセスはボットネットのIPアドレスをブロックする唯一の方法である場合は、これらのアドレスをフィルタリングします。
これらの攻撃はIPスプーフィングを使用して行われる可能性が高く、防御の最前線はISPがIPスプーフィングを回避するように BCP38 を採用することを奨励することです。
サービス拒否攻撃の問題は、悪意のあるトラフィックが最初から届かないようにする必要があることが多いことです。ローカルで多くのことを行うことはできませんが、CloudFare(BCP38も実装)などのサービスは、これらの種類のパケットが届く前にスクラブできるため、いつでもオプトインできます。
SYNフラッドは SYN Cookies を有効にすることで軽減できます。 SYN Cookieは、攻撃者がSYNキューをいっぱいにして、正当なユーザーがサービスにアクセスできないようにすることを防ぎます。
Linuxでは、SYN Cookieを有効にして効率的にセットアップするために使用できるいくつかの設定があります。
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
echo 2048 > /proc/sys/net/ipv4/tcp_max_syn_backlog
echo 3 > /proc/sys/net/ipv4/tcp_synack_retries
起動時にこれらの設定を自動的にロードするには、これらの行をファイル/etc/sysctl.conf
に追加します。
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_synack_retries = 3
Microsoftによるこの記事 で説明されているように、Windowsボックスを保護することもできます。 Windows Vista以降では、SYN攻撃保護がデフォルトで有効になっています。
UDPフラッドの時点では、残念ながらそれについてできることは多くありません。ただし、ICMP/Pingフラッドでは、Pingを無視するようにサーバーを設定できます。これにより、サーバーは受信する何千ものPingに応答する帯域幅を消費しないため、攻撃の効果は半分になります。
これを行うには、次の構成を実行します。
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
そして当然、この行をファイル/etc/sysctl.conf
に追加します。
net.ipv4.icmp_echo_ignore_all = 1
ただし、一部のウォッチドッグシステムでは、動作するためにICMPエコーを有効にする必要があります。そのため、一部の賃貸サーバーではICMPエコーを有効にしておく必要があります。ただし、一部のインターフェイスでのみiptables
を使用してPingを無効にできます。
Windowsでは、これは次のコマンドで実行できます。
netsh firewall set icmpsetting 8 disable
Windowsファイアウォールがアクティブである必要があります。
深刻なUDP攻撃の例として、私はカリフォルニア大学のシニアネットワーク管理者です。2日前に、世界中の553以上の個別のホストからの深刻なUDPフラッド攻撃がありました。プロバイダーからの(大規模な)着信パイプを抑制し、一部の着信パイプと、結果として得られる応答UDPの一部をフィルターすることができただけです。これは、非常に厄介な攻撃ベクトルです。これが再び発生したときに展開する対策スイート。