TCPによるスリーウェイハンドシェイクを実行し、コネクションが確立できたかどうかによって使用できるポートを探す手法です。
TCPのスリーウェイハンドシェイクではSYN(接続要求)フラグをオンにしたパケットを送り、相手が接続を許可するのであればACK(確認応答)とSYNがオンになったパケットが返ってきます。これにACKパケットを返すことでコネクションが確立します。
C言語を使ってこのプログラムを書く場合はconnect()関数を使うだけで、スリーウェイハンドシェイクの処理がすべて行われます。
このような手軽さから、多くのポートスキャンツールではTCPコネクションスキャンが使われます。
ただし、この手法を使うと一時的でもコネクションが確立するので、サーバーログに記録が残ります。
このようなポートスキャンに対する対策では一定時間に受け取るSYNパケットの数を制限しておくことが有効です。
このページのトップへ