Dos攻撃とは、サーバに負荷を集中させるなどしてサーバを使用不能に陥れる攻撃です。
Dos攻撃の厄介なところは通常のアクセスと区別しにくいところです。
今回は代表的なDoS攻撃である下記について、詳細を解説していきます。
- TCP SYN Flood
- Connection Flood
- UDP Flood
- Ping Flood
TCP SYN Flood
TCP SYN Floodは、攻撃者が大量のTCP接続要求(SYNパケット)を被害者のサーバーに送信することで、サーバーのリソースを消耗させる手法です。通常のTCP接続の手順では、クライアントがSYNパケットを送信し、サーバーがSYN/ACKパケットを返し、最後にクライアントがACKパケットを返します。しかし、SYN Flood攻撃では、攻撃者が大量のSYNパケットを送信した後、ACKパケットを返さずに接続を放棄します。これにより、サーバーは未完了の接続を保持し続け、リソースが枯渇して正規のクライアントからの接続を受け付けられなくなります。
TCP SYN Flood対策
一定時間を過ぎた不成立コネクションは強制的に終了させることでリソースの枯渇を回避することができます。また不正なアクセスを行っているIPアドレスを特定できる場合は、該当IPとの通信遮断も有効です。
またTCP SYN Cookieと呼ばれる技術を使用することも有効です。これは、サーバーがSYNパケットを受信した際に、クライアントの情報を保存せずに、後で正当な接続要求かどうかを確認する仕組みです。これにより、サーバーが不要なリソースを消費することなく、SYN Flood攻撃から保護されます。
※もちろん、不要なTCPポートを閉じておくことも重要です
Connection Flood
攻撃者が大量のTCP接続を目標とするシステムに送信し、そのシステムのリソースを枯渇させる攻撃です。TCP SYN Floodとよく似た攻撃手法ですが、Connection Foodでは実際にコネクションを成立させる点が異なります。そのため、TCP SYN Floodよりも確実にコンピュータの資源を浪費させることができます。
Connection Food対策
特定ノードや特定グループからのコネクション数を制限するなどの設定が有効です。コネクション数を制限することでコンピュータ資源の浪費を防ぐことができます。また、攻撃元のコンピュータ・IPを特定することができれば、攻撃者からの通信を遮断することも効果的です。
UDP Flood
UDP Floodも攻撃手法としてはTCP SYN Floodと同様ですが、攻撃に利用するプロトコルがUDPである点が異なります。TCPはコネクションの準備をさせることで標的コンピュータ資源を浪費させますが、UDPはコネクションレス型の通信であるため、UDPで同様のことをする場合はUDPパケットを送り続ける必要があります。標的コンピュータの資源枯渇という点ではTCP SYN Floodに劣りますが、UDPはコネクションレスであるが故にパケットに含まれる情報が少ないので送信元アドレスの偽装も容易です。そのため、攻撃開始難易度が低いです。またデータを送り続けることから標的コンピュータの資源枯渇よりもネットワークを圧迫させることを目的にする場合も利用されます。
UDP Flood対策
コネクションレスであるため、コネクション数を制限するという対策不可です。そのため、不要なUDPポートを閉じることで対策します。また不審な通信を検出できるIDSやIPSの導入も有効です。
Ping Flood
Ping Floodは名前の通りpingを大量に送り付けて、その返事を送ることに相手のコンピュータを忙殺さえることで他のサービスを妨害する攻撃です。
pingに利用されるICMPはIPの下位プロトコルでコネクションレス型であり、攻撃者を特定しにくいという特徴があります。
Ping Flood対策
pingに応答しないことが有効です。pingは外部にネットワーク構成の手がかりを示す可能性があるため、Ping Flood対策以外の観点からもWAN側からのpingには応答しないことが一般的です。
また不審な通信を検出できるIDSやIPSの導入も有効です。
コメント