ポートスキャン
対象のホストの各ポート番号にパケットを送り、その応答から、ポートが開いているか(どのサービスが動いているか)を調べること。攻撃の下調べにも、脆弱性検査にも使われる。
イマシルちゃんの解説
大きなお屋敷に、たくさんのドアがあるとするよ。
ドアを一つずつノックして、「はーい」って返事があれば開いている、
「入れません!」って言われたら閉まっている、なんにも返事がなければ…わからない。
こうやって、どのドアから入れそうかを調べるのが、ポートスキャンなんだ。
より深い解説
定義
ポートスキャンは、ホストのTCPやUDPのポートに順に接続を試み、応答の種類から、ポートの状態を判定する手法である。攻撃者が侵入口を探すのに使うほか、管理者が不要なポートが開いていないかを確かめる脆弱性検査にも使う。
TCPのスキャンの判定
| 送るパケット | 応答 | 判定 |
|---|---|---|
| SYN | SYN/ACK | ポートは開いている(接続を受け付ける) |
| SYN | RST/ACK | ポートは閉じている(接続を拒否された) |
| SYN | 応答なし | ファイアウォールなどで遮断されている(フィルタされている) |
| スキャンの種類 | 内容 |
|---|---|
| TCPコネクトスキャン | 3ウェイハンドシェイクを最後まで行う。相手のログに残りやすい |
| SYNスキャン(ハーフオープンスキャン) | SYN/ACKを受けたら、ACKを返さずにRSTで打ち切る。接続が完了しないため、ログに残りにくい |
| FIN、Xmas、Nullスキャン | 通常ではない組合せのフラグを送り、応答の違いから判定する |
UDPのスキャンの判定
UDPには接続の手続きがないため、応答から判定する。
| 応答 | 判定 |
|---|---|
| ICMPの port unreachable(宛先到達不能、コード3) | ポートは閉じている |
| UDPの応答 | ポートは開いている |
| 応答なし | 開いている、またはフィルタされている(区別できない) |
UDPのスキャンは、応答がないことも多く、時間がかかる。
対策と検知
許可なく他人のシステムにポートスキャンを行うことは、攻撃の準備とみなされるおそれがある。脆弱性検査は、管理者の許可を得て行う。