ポートスキャン
対象ホストのTCPやUDPの各ポートへ通信を試み、応答の有無や内容からポートが開いているか閉じているかなどの状態を調べる手法。攻撃の下調べにも、管理者による不要な通信の入口の点検にも使われる。
イマシルちゃんの解説
ポートスキャンは、コンピュータがどの通信を受け付けているかを外から調べる手法だよ。
アプリケーションの通信の入口を区別するポート番号を変えながらパケットを送り、応答の有無や内容を確かめるんだ。
ただし返事がなくても、通信が遮断されたのかなどを判断できない場合があるよ。
管理者はこの結果を使って、不要なサービスが外部から利用できる状態になっていないか点検するの。
攻撃者も下調べに使うため、自分の管理下にない機器を調べるときは管理者の許可が必要だよ。
この解説はわかりやすかったですか?
より深い解説
定義
ポートスキャンは、ホストのTCPやUDPのポートに順に接続を試み、応答の種類から、ポートの状態を判定する手法である。攻撃者が侵入口を探すのに使うほか、管理者が不要なポートが開いていないかを確かめる脆弱性検査にも使う。
機器の発見とポートの調査
複数のIPアドレスへ通信を試し、応答する機器を探す調査をホストスキャンという。ICMPのエコー要求などを使う方法があるが、機器がICMPへ応答しなくてもTCPの通信は受け付ける場合がある。
| 調べる観点 | 主に変える対象 | 分かること |
|---|---|---|
| ホストスキャン | 宛先IPアドレス | その確認方法で応答する機器があるか |
| ポートスキャン | TCPやUDPのポート番号 | 対象機器がどのサービスの入口を受け付けるか |
ホストの発見とポートの調査は組み合わせて使われるが、目的が異なる。どちらも無応答だけで「機器がない」「安全である」とは断定できない。監査では許可された対象に範囲を限定する。
TCPのスキャンの判定
| 送るパケット | 応答 | 判定 |
|---|---|---|
| SYN | SYN/ACK | ポートは開いている(接続を受け付ける) |
| SYN | RST/ACK | ポートは閉じている(接続を拒否された) |
| SYN | 応答なし | フィルタによる遮断、経路の障害、対象の停止などが候補になる |
| スキャンの種類 | 内容 |
|---|---|
| TCPコネクトスキャン | 3ウェイハンドシェイクを最後まで行う。相手のログに残りやすい |
| SYNスキャン(ハーフオープンスキャン) | SYN/ACKを受けたら、ACKを返さずにRSTで打ち切る。接続が完了しないため、ログに残りにくい |
| FIN、Xmas、Nullスキャン | 通常ではない組合せのフラグを送り、応答の違いから判定する |
UDPのスキャンの判定
UDPには接続の手続きがないため、応答から判定する。
| 応答 | 判定 |
|---|---|
| IPv4のICMP Port Unreachable(タイプ3・コード3) | ポートは閉じていると判断できる |
| UDPの応答 | ポートは開いている |
| 応答なし | 開いている、またはフィルタされている(区別できない) |
UDPのスキャンは、応答がないことも多く、時間がかかる。
受信側の設定やレート制限によりICMPエラーが返らない場合もある。エラー応答の有無と、UDPサービスの開閉状態が常に一対一に対応するわけではない。
対策と検知
許可なく他人のシステムにポートスキャンを行うことは、攻撃の準備とみなされるおそれがある。脆弱性検査は、管理者の許可を得て行う。