ポートスキャン(ポートスキャン)とは | 意味や読み方など丁寧でわかりやすい用語解説
ポートスキャン(ポートスキャン)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。
読み方
日本語表記
ポートスキャン (ポートスキャン)
英語表記
port scan (ポートスキャン)
用語解説
ポートスキャンとは、ネットワークに接続された機器の特定のポートが開放されているか、どのようなサービスが稼働しているかを調査する技術である。これは主にセキュリティ診断やネットワークの状況把握のために用いられるが、悪意のある攻撃者によってシステムの脆弱性を探る目的で利用されることも少なくない。IPアドレスがネットワーク上の機器を識別するのに対し、ポート番号はその機器上で動作する特定のアプリケーションやサービスを識別するために使われる。
ネットワーク通信において、データはIPアドレスで指定された機器に到達した後、さらにポート番号によってその機器のどのアプリケーションに送られるべきかが決定される。例えば、Webサーバーが提供するHTTPサービスは通常80番ポートを、HTTPSサービスは443番ポートを使用する。ポートスキャンは、このポート番号の仕組みを利用し、ターゲットの機器に対して順次接続要求を送信し、その応答を分析することで、どのポートが通信可能か、あるいはどのようなサービスが待ち受けているかを洗い出す。
ポートスキャンでは、特定のIPアドレスに対し、0番から65535番までの広範囲なポート番号に対して接続要求を試みる。この接続要求に対するターゲットからの応答パターンを解析することで、各ポートの状態を判断する。ポートの状態は主に三つに分類される。一つは「オープン(Open)」で、そのポートでサービスが稼働しており、接続を受け入れている状態を示す。次に「クローズ(Closed)」で、そのポートではサービスが稼働していないが、通信自体は可能な状態を示す。最後に「フィルタリングされている(Filtered)」は、ファイアウォールなどによってポートがブロックされており、外部からの接続要求が遮断されている状態を意味する。
ポートスキャンには複数の手法が存在し、それぞれ異なる特性を持つ。代表的なものとして、TCP SYNスキャン、TCP Connectスキャン、UDPスキャンなどがある。 TCP SYNスキャンは「ハーフオープンスキャン」とも呼ばれ、完全なTCPコネクションを確立せずにポートの状態を判断しようとする。具体的には、スキャナーはターゲットのポートへSYN(同期)パケットを送信する。ターゲットがSYN-ACK(同期-応答)を返せばポートはオープン、RST(リセット)を返せばクローズと判断し、スキャナーはRSTを送信してコネクションをリセットする。これにより、ターゲットのOSのログに完全なコネクション確立の記録が残りにくいため、ステルス性が高いとされる。 一方、TCP Connectスキャンは、OSの標準的なネットワークソケットAPIを使用し、ターゲットのポートへ完全なTCPコネクションを確立しようとする。成功すればポートはオープン、失敗すればクローズと判断する。この手法はSYNスキャンよりも検出されやすいが、実装が容易であるという特徴がある。 UDPスキャンは、TCPとは異なりコネクションレスなプロトコルであるUDPポートに対して行われる。UDPパケットをポートに送信し、ターゲットからICMP Port Unreachableメッセージが返されなければポートはオープン(またはフィルタリング)、返されればポートはクローズと判断される。UDPサービスはTCPほど一般的ではないが、DNSやSNMPなどの重要なサービスがUDPを使用するため、これも重要な調査対象となる。 他にも、TCPフラグを操作するNULLスキャン、FINスキャン、XMASスキャンといった手法も存在する。これらは、特定のTCPフラグ(ACK、FIN、RSTなど)を設定したパケットを送信し、ターゲットからの応答を解析することで、ファイアウォールやIDS/IPSによる検出を回避しつつポートの状態を探ることを目的とする。
ポートスキャンによって得られる情報は多岐にわたり、セキュリティ診断やネットワーク管理において非常に有用である。具体的には、稼働しているサービスの種類やバージョン、場合によっては使用されているOSの種類まで特定できることがある。これらの情報から、古くなったサービスバージョンが稼働していないか、不必要なポートが開放されていないか、あるいは既知の脆弱性を持つサービスが動作していないかなどを確認できる。これにより、セキュリティリスクの特定と対策の立案が可能となる。また、ネットワークに接続されている機器とその役割を把握するためのネットワークマッピングにも利用される。
ポートスキャンが悪意のある攻撃者によって利用されるリスクがあるため、適切な対策を講じることが重要である。最も基本的な対策はファイアウォールを導入し、外部からの不必要なポートへのアクセスを制限することである。具体的には、必要なサービスが利用するポートのみを開放し、それ以外のポートはすべて閉鎖するか、特定のIPアドレスからのアクセスのみを許可するように設定する。また、不要なサービスは停止し、そのポートを閉鎖することも重要である。侵入検知システム(IDS)や侵入防止システム(IPS)を導入することで、ポートスキャンなどの不審なアクティビティを検知し、場合によっては自動的に遮断することも可能となる。さらに、システムやネットワーク機器のログを定期的に監視し、異常なポートスキャンの兆候がないかを確認することも、セキュリティを維持する上で欠かせない。