ポートスキャン

用語はセキュアドの時に書いたとおり。
今回はその内訳について記述。
今後技術トピックは長くなるので省略することにします。
 
 

通常のスキャン(TCPコネクトスキャン)

基本スタンスは、「接続が確立されたらそのポートは有効
TCPポートに対して3way-hand-shakeを用いて接続を確立する。
確立すればそのポートは有効。
サーバーに接続ログが残るので発覚しやすい。
 

ステルススキャン

通常のスキャンはログを見ればすぐに行われたことが判明する。
そこでスキャンを行ったことが攻撃対象にばれないように、
可能な限り痕跡を残さない」ことと、
スキャン時に不振な挙動を示さない」事が目的となる。
 

TCPハーフスキャン

SYNパケットのみを送るスキャン手法。
返答がSYN/ACKなら有効。RST/ACKなら無効。
コネクションは確立しないのでログが残らない(可能性が高い)。
ただし、パケットの挙動を監視するIDSなどのセキュリティツールなら検知可能。
 

アイドルスキャン

スキャンした攻撃者が特定されないように踏み台を用いるスキャン手法。
アイドル(接続待ち)状態の第3者を踏み台として利用。
発信元を踏み台アドレスに偽装したSYNパケットをターゲットに送り、ターゲットと踏み台の間で通信を行わせる。
攻撃者は踏み台の挙動を監視し、通信が成功したか否かを確認する。
(具体的にはIPヘッダの32-47bit目にあるIDの増加を監視する)
実際の通信が踏み台と行われるため、攻撃者が特定されにくい。
 

FINスキャン

接続ログに残らないスキャン方法の一つ。
ターゲットにFINパケットを送る。
TCP/IPの仕様上、有効なポートはRSTパケットを送り返すので有効・無効がわかる。
(ちなみに無効なポートは何も返さない)
なお、同じ挙動のスキャン手法として、以下の2つがある。

TCPクリスマスツリースキャン

FINの代わりにFIN,URG,PUSHパケットを送信。

TCPnullスキャン

FINパケットの代わりに全てのフラグを0としたパケットを送る。
 

UDPスキャン

UDPポートは仕様上コネクションを確立できないので、ただデータを送るのみ。
ICMP port unreachableパケットが来たら無効。
応答なしだったら有効、若しくは接続ミスw
 

対策

スキャン自体は直接の被害をもたらさないので、スキャンにより攻撃者情報を与えても大丈夫な環境を作ることが重要となる。具体的には
 不要なサービスの停止
 最新パッチの導入
 ファイアウォールなどによるアクセス制限
が挙げられる。
またあるいは、スキャンを迅速に検知・追跡し、続く攻撃を事前に予知・対応するために
 ログを随時チェックし、不正な接続がないか確認する
 IDSを導入し、不正なパケットのやりとりを検知・追跡する
などの対策も重要となる。
 

覚え書き

 ポートスキャンで利用されているTCP/IPプロトコルの構造を確認。
 ポートスキャンが行われたときのログとか見られたらいいかも。
 nmapとか使って実際にポートスキャンをしてみたい。