ポートスキャン
ポートスキャンとは
一般的にはターゲットのホスト上で開いているポートを探すこと。
広い意味では以下のものも含む。
バナーチェック(バナー取得)
アプリケーションが返す情報(=バナー)からアプリケーション名やバージョンを確認すること。
スタックフィンガープリンティング
ターゲットホストのOSの種類やバージョンを確認すること。
稼働しているアプリケーションの種類や応答の内容から推定する。
目的
ポートスキャンの手法
TCPコネクトスキャン
ターゲットのポートに対しTCP接続が確立するか確認する。(3wayハンドシェイクの最後まで行う)
接続を確立するのでサーバーのログに残る。
TCPハーフスキャン
TCP接続の確立はしない。そのためログに残らない。このようにログに残らないスキャンをステルススキャンという。
まずターゲットにSYNパケットを送る。応答がSYN/ACKならアクティブ、RST/ACKなら非アクティブである。
UDPスキャン
UDPはそもそもコネクションを確立しないため、次のような手順となる。
データを送り、応答がなければアクティブ、「ICMP port unreachable」が帰ってきたら非アクティブと判断する。
このような手順のため精度は低いが、アプリケーションによっては特定の応答を返すので、それを利用すれば制度は高まる。
その他のスキャン
以下はすべてステルススキャン。
TCP ACKスキャン | ACKフラグをONにしたパケットを送り、反応からポートの状態を判別する。 |
TCP FINスキャン | 標的にFINパケットを送信するスキャン手法。 標的ホストは、RFC793に基づき、 クローズした全てのポートにRSTを送り返さなければならない。この手法は、UNIXのBSDソケットにしか通用しない。 |
TCP クリスマスツリースキャン | 標的ポートに、FIN、URG、PUSHパケットを送信するスキャン手法。FINスキャン同様、標的ホストはクローズした全てのポートについてRSTを送り返さなければならない。 |
TCP NULLスキャン | 全てのフラグを"0"にするスキャン手法。FINスキャン同様、標的ホストはクローズした全てのポートについてRSTを送り返さなければならない。 |
対策
予防・防止
検知・追跡
- IDS(侵入検知)
- IPS(侵入防御-遮断まで行う)
- ログから検知する(ホストのシステム・ファイアーウォール)
IPS・IDSはステルススキャンに対しても効果的。ただし、連続したアクセスではなく、時間を空けつつランダムにポートをスキャンされた場合は検知が困難。
回復
ポートスキャンは攻撃の準備なのでそれだけで損害はない。したがって回復処置は特にない。予防・防止を確実に行うことが大切である。