対象ポートの状態を判定する方法|情報処理安全確保支援士 平成27年 秋期午前Ⅱ試験 問15

出典:平成27年秋期 午前Ⅱ 問15 分野:セキュリティ / 情報セキュリティ対策
脆弱性検査で,対象ホストに対してポートスキャンを行った。対象ポートの状態を判定する方法のうち,適切なものはどれか。
  • ア:対象ポートにSYNパケットを送信し,対象ホストから"RST/ACK"パケットを受信するとき,対象ポートが開いていると判定する。
  • イ:対象ポートにSYNパケットを送信し,対象ホストから"SYN/ACK"パケットを受信するとき,対象ポートが閉じていると判定する。
  • ウ:対象ポートにUDPパケットを送信し,対象ホストからメッセージ"port unreachable"を受信するとき,対象ポートが閉じていると判定する。
  • エ:対象ポートにUDPパケットを送信し,対象ホストからメッセージ"port unreachable"を受信するとき,対象ポートが開いていると判定する。
解説

ポートスキャンは、対象ホストのTCP・UDPポートに通信を送り、その応答からポートが開いているか、閉じているかを調べる方法です。

UDPパケットを送信し、応答の有無を確認する方法をUDPスキャン、対象ホストにSYNパケットを送信し、その応答内容を確認する手法をTCPハーフスキャンと呼びます。

スキャン方式 送信するもの 主な判定方法
TCPハーフスキャン TCPのSYNパケット SYN/ACKが返れば開いている、RST/ACKなどが返れば閉じていると判断する。SYN/ACK受信後に接続を最後まで確立せず、RSTなどで終了する。
UDPスキャン UDPパケット ICMPのport unreachableが返れば閉じていると判断する。応答がない場合は、開いている可能性もあるが、フィルタリングされている可能性もある。

UDPスキャンでは、対象ポートにUDPパケットを送信します。対象ポートが閉じている場合、一般に対象ホストからICMPのport unreachable(ポート到達不能)が返されます。そのため、この応答を受信した場合は、そのUDPポートが閉じていると判断できます。

したがって、ウが適切です。

❌他選択肢が誤りの理由
ア:対象ポートにSYNパケットを送信し,対象ホストから"RST/ACK"パケットを受信するとき,対象ポートが開いていると判定する。
⇒TCPポートが閉じている場合には、RST/ACKなどのリセット応答が返されます。開いている場合はSYN/ACKが返されるため、判定が逆です。
イ:対象ポートにSYNパケットを送信し,対象ホストから"SYN/ACK"パケットを受信するとき,対象ポートが閉じていると判定する。
⇒SYN/ACKが返されるのは、対象TCPポートが接続を受け付けている、つまり開いている場合です。閉じている場合はRST/ACKなどが返されます。
エ:対象ポートにUDPパケットを送信し,対象ホストからメッセージ"port unreachable"を受信するとき,対象ポートが開いていると判定する。
⇒ICMPのport unreachableは、そのUDPポートで待ち受けているサービスがなく、到達できないことを示します。そのため、ポートが閉じていると判断します。
TSUNAGARU-ADVICE

まず押さえたいこと

ポートスキャンでは、送信したパケットに対して対象ホストがどのような応答を返すかを見て、ポートの状態を判断します。UDPでは、閉じているポートへパケットを送ると、ICMPのport unreachableが返ることがあります。

迷ったときの判断軸

TCPでは、SYNに対してSYN/ACKが返れば開いている可能性が高く、RST/ACKなどが返れば閉じていると判断します。UDPでは、応答がない場合は開いているかフィルタされている可能性があり、port unreachableが返れば閉じていると整理しましょう。

科目Bにつなげるために

科目Bでは、ポートスキャン・TCPフラグ・ICMP・FWログ・侵入兆候などと組み合わせて問われることがあります。単にポート番号を見るのではなく、どのパケットを送り、どの応答が返り、その結果から何を推測できるかという通信のやり取りを追う視点を持ちましょう。