SYNフラッド攻撃とは
SYNフラッド攻撃とは、DoS攻撃の一種で、インターネット上にオープンで公開されているサーバーなどに対して、SYNパケットを大量に送りつけることによって過大な負荷を掛け、利用不能に追い込むことを目的として行われている行為を指します。
一般的なサーバーの動作を例にすると、ユーザーがホームページにアクセスしようとした場合、通常はTCP SYNパケットの要求に対して、サーバー側が接続を許可して、データの転送が行われ、ユーザーの端末に、ホームページが表示されるという仕組みになっています。
これは、言わばキャッチボールが行われているようなもので、常に1対1のやりとりが行われることが想定されているのですが、そこへ連続的に大量なパケットが送信されると、接続許可の動作が滞ることで次の「ボール」を返す動作ができず、サーバーの動作が極端に遅延したり、接続が途切れてリトライが発生します。
そして、その「ボール」を返すことができなくなった処理は、処理待ちの状態でメモリ上に蓄積し続け、さらにSYNフラッド攻撃が続けば上乗せされて蓄積し、最終的には、メモリがオーバーフローを起こし、オペレーティングシステムがリセットされたり、最悪の場合は、フリーズして、サーバーダウンが発生することになります。
SYNフラッド攻撃への対処法としては、ターゲットとされたポートの中でも、利用しないポートをブロックしたり、ステルスにより、外部からは存在を見つけられなくするのが、まずは簡単にできる方法ですが、ウェブサーバーやメールサーバーなど、常時オープンにする必要があるポートでは、そのような訳にもいきません。
ただし、いくつかのSYNフラッド攻撃によるパケットは判別ができるため、悪意のあるパケットはフィルタリングによりブロックしたりスルーする方法があります。
偽装されるなどで攻撃か否かを判別できないパケットが送信された場合は、マルチコアCPUや大容量メモリを搭載した高スペックのルーターにより、処理能力を加速させる方法や、分散処理が行えるルーターまたは分散型コンピューティングにより負荷を分散させることで、オーバーフローを避けるという方法があります。