脆弱性検査

  • URLをコピーしました!
目次

問題文

脆弱性検査で,対象ホストに対してポートスキャンを行った。対象ポートの状態を判定する方法のうち,適切なものはどれか。

ア 対象ポートにSYNパケットを送信し,対象ホストからRST/ACKパケットを受信するとき,接続要求が許可されたと判定する。
イ 対象ポートにSYNパケットを送信し,対象ホストからSYN/ACKパケットを受信するとき,接続要求が中断又は拒否されたと判定する。
ウ 対象ポートにUDPパケットを送信し,対象ホストからメッセージICMP port unreachableを受信するとき,対象ポートが閉じていると判定する。
エ 対象ポートにUDPパケットを送信し,対象ホストからメッセージICMP port unreachableを受信するとき,対象ポートが開いていると判定する。

解説

解答

この問題は ポートスキャンによる対象ポートの状態判定 を理解しているかを問うものです。

TCPとUDPで判定方法が異なるので、それぞれ整理しましょう。

TCPポートスキャンの場合

  • SYNスキャン(半開スキャン)が代表例です。
    • ポートに SYNパケット を送信
    • 相手が SYN/ACK を返してきたら「ポートが開いている」と判断(接続許可)
    • 相手が RST/ACK を返してきたら「ポートが閉じている」と判断(接続拒否)

→よって、選択肢ア・イの説明は逆になっており、不適切です。

UDPポートスキャンの場合

UDPはコネクションレスなので、TCPのようにSYN/ACKで状態を判定できません。そのため ICMPエラーメッセージ が重要な手掛かりとなります。

  • UDPパケット送信 → ICMP Port Unreachableが返ってきた場合
    → そのポートは「閉じている」と判定できる。
  • UDPパケット送信 → 応答なし or UDPアプリケーション応答あり
    → ポートが「開いている」可能性あり。

→この仕組みが、まさに選択肢 の説明です。

各選択肢の整理

  • ア:RST/ACKを受信 → 実際は「閉じている」ことを示すので誤り
  • イ:SYN/ACKを受信 → 実際は「開いている」ことを示すので誤り
  • ウ:UDP+ICMP Port Unreachable → 「閉じている」と判定 → 正解
  • エ:UDP+ICMP Port Unreachable → 「開いている」と判定 → 誤り
スキャン種別送信するパケット応答判定結果
TCPスキャンSYNSYN/ACKポートが 開いている
TCPスキャンSYNRST/ACKポートが 閉じている
TCPスキャンSYN応答なしフィルタリングされている可能性あり(FWなど)
UDPスキャンUDPICMP Port Unreachableポートが 閉じている
UDPスキャンUDPUDPアプリケーションから応答ありポートが 開いている
UDPスキャンUDP応答なし開いている可能性あり(FWでドロップのケースも)
学びをSNSで共有しよう
  • URLをコピーしました!
目次