ポートスキャン入門:目的・手法・見つけ方と安全な対処手順(初心者向け図解)

セキュリティ

1_本記事の全体像

本記事は、以下の流れで解説します。

  • ポートスキャン概要(目的・仕組み・誰が行うのか【攻撃者/調査者】など)
  • ポートスキャン種類
  • ポートスキャン実例(仮想環境を利用)
  • ポートスキャンへの対策(検出と防御)
  • まとめ
  • (参考)よくある質問例

ポートスキャンネットワーク上でどのポートが公開されているかを調べる基本的な診断行為であり、正しく行えば防御強化に役立ち、無許可では法的リスクがある

2_ポートスキャンとは(目的・仕組み・誰が行うのかなど)

ポートスキャンは、ネットワーク上のホストがどのTCP/UDPポートを開放しているかを調べる行為です。目的は、実施者の立場大きく2つに分かれます。

攻撃者の場合 → 「脆弱なサービスを発見して侵入の足がかりにする

管理者の場合 → 「サービスの公開状況を把握して不要なポートを閉じる

バグ太郎
バグ太郎

すいません・・・そもそもポートって何でしたっけ?

C-3PU
C-3PU

ポートとは各情報機器(端末やサーバ等)におけるネットワーク通信の受付窓口を指しています。ポートは各種機器に複数存在し、利用する通信(アプリケーション)ごとに番号が振られているため、このポート番号を見ることでどのような通信をしているか判別することが出来ます。

2-1_Web通信(https通信)における、ポート番号を利用する流れ
HTTPS通信で利用されるポート番号の流れを示す図解。ブラウザからサーバへ到達する過程を表示
C-3PU
C-3PU

補足として、IPアドレスが判明していれば、相手方の機器までに通信が届きます。ただし、実際の通信は機器の中で動いている特定のサービス(アプリケーション)と取る形になるので、各機器にIPアドレスで情報が届くだけでは通信が成立しません。機器は通常、複数のサービスが同時に稼働しているため、どのサービスと通信を取ろうとしているのか特定する必要があり、そのための識別子がポート番号だと思ってください。

なおポート番号に関する記事は、下記で解説しています。

2-2_スキャンの基本的な仕組み(ポートの状態:open/closed/filtered)

ポートスキャンは送信元から各ポートへパケットを送り受け取る応答により状態を判定します。
各状態の意味は次のとおりです。

  • open → サービスがそのポートでリッスン(=待ち受けている)していることを示し、実際の接続(正当な通信)や攻撃の足がかり(不正な通信)になります。
  • closed → 到達するがサービスが動作していない状態で、通常のリスクは低めです。
  • filtered → ファイアウォール等などで通信が遮断・破棄され応答が無い状態(到達不明)であり、ポートの先でサービスが待ち受けているかどうかは判断が出来ません。
ポートの状態(open/closed/filtered)を説明する図。各状態の意味をアイコンで示すイメージ

UDP通信はステートレスなため応答がない=openとは限らず、誤検知に注意してください。

2-3_なぜスキャンするのか(攻撃の足がかり、脆弱性把握、運用確認)

スキャンは攻撃者にとって侵入の第一歩である一方、運用者にとってはセキュリティ強化健全性確認の有力手段です。

攻撃者 → openポートで稼働するサービスの脆弱性を発見し、サービスの権限を乗っ取る等の本命の攻撃に移行する。

openポートの例を示す図。攻撃者による悪用リスクを説明するビジュアル

管理者 → 定期的なスキャン想定外の公開ポートを見つけ、不要なサービス停止アクセス制御パッチ適用を行い、攻撃者側に侵入されるリスクを減らす。

運用者向けの対策図。定期スキャンで不要ポートを特定して閉じる手順を示す図

3_ポートスキャンの主な種類(手法比較・図表)

ポートスキャンは、TCPプロトコルの前提である「3ウェイハンドシェイク」の通信を利用して実施されます。

3-1_3ウェイハンドシェイクとは?
バグ太郎
バグ太郎

TCPは、信頼性順序制御に重点を置いている通信方法だったと気がするのですが、3ウェイハンドシェイクって何でしたっけ?

C-3PU
C-3PU

3ウェイハンドシェイクは、通信を行える状態にあるかを事前に確認する通信のことを指します。送る側が「①SYN」という合図を送って接続を要求します。受け取った側は「②SYN+ACK」で受け取りと準備完了を伝えます。最後に送る側が「③ACK」で受け取りを確認すると接続が確立し、データの送受信が可能となります。

SYN(3ウェイ)ハンドシェイクを示すタイムライン図。SYN→SYN/ACK→ACKの流れを表示
3-2_ポートスキャンの具体的な種類について

TCPを利用したポートスキャンについて、以下代表的な方法があります

種類原理検出性
❶TCPコネクトスキャン3ウェイハンドシェイクを最後まで実施し、ポートの状況を把握する。
※3-1の図で説明すると、「③ACK」まで実施する
3ウェイハンドシェイクによるコネクションが確立されるため、ログに記録が残る。
SYNスキャン
 (=ステルススキャン
3ウェイハンドシェイクの内、「①SYN」送信のみ行う。サーバからの通信が「②SYN/ACK」であればopen状態と判断し、「RST/ACK」であればclosed状態と判断する。コネクションが確立しないためログに残らない。

4_ポートスキャンの実例(代表的なツールと基本コマンド)

ポートスキャンもそうですが、ネットワークを学習するには、実際の設定画面を確認したり、コマンドを実行したりするのが一番です(百聞は一見に如かず!)。ただし、実際のネットワーク環境で実行するのは、リスクがあるため注意が必要です。本ブログでは、PC内に仮想環境をに作成して、安全に各種検証を行います。
※公開ネットワークや他者環境で実行には、法的倫理的リスクが存在します。

4-1_本記事で使用する検証環境及びコマンド

本検証環境では、一台の物理WindowsPC上にLinuxのOS環境を作成し、さらにLinuxOS上で コンテナ型の仮想マシンを稼働させてネットワークを構築しています。(下記図参照)

学習用の検証環境構築イメージ。VMやDockerでローカル検証する構成図

物理スペック
 PC CPU:Intel Core i5、メモリ16GB、SSD:256GB
各種ソフトウェア
 WSL2 → WindowsOSの中でLinuxOSを動かすツール
 Ubuntu24.04 → Linux系のオペレーティングシステム【OSS】
 Docker → コンテナ型仮想ツール

使用するのはnmapマンドになります。(Ubuntu VMを起動し内部のみでnmap実行)。

基本コマンド例:PC1からサーバ1にポートスキャンを実施
nmap -sS -p1-1024 192.168.1.2(SYNスキャン、ポート範囲指定)。
4-2_スキャン結果の読み方(open/closed/filtered の実務解釈)
Starting Nmap 7.80 ( https://nmap.org ) at 2025-11-03 11:00 JST

Nmap scan report for 192.168.1.2
Host is up (0.0012s latency).
Not shown: 1018 closed ports

PORT     STATE    SERVICE
22/tcp   open     ssh
80/tcp   open     http
111/tcp  open     rpcbind
139/tcp  filtered netbios-ssn
443/tcp  open     https
631/tcp  open     ipp
---------------------------------------------------
  • Host is up … ターゲットが応答していることを示す(応答時間も表示される)。
  • Not shown: 1018 closed ports … 結果のうち表示していない「closed」ポート数。
  • PORT / STATE / SERVICE … 各ポート番号、状態、推定サービス名を示す

5_検出と防御(運用と技術)ポートスキャンやSPA

検出はログ収集とSIEM(ログ分析ツール)のアラートで行います。典型的なサインは短時間に多数ポートへ接続試行する行動で、閾値を設定してアラート化します。防御技術としては最小公開原則(必要最小限のポートだけ開放)で運用することが大事です。

5-1_よくある運用課題と対処例(ケーススタディ)

例1(攻撃)
外部からの大量スキャンでサーバ負荷が上がった場合は、まずトラフィックの緩和策(WAFの一時ルール等)を実施し、攻撃元IPをブラックリスト化して調査を進めます。

例2(管理)
社内サービスで不審なopenポートが見つかった場合は、該当サービスの正当性を確認し不要なら即時停止、必要であればアクセス制御と速やかなパッチ適用を行います。いずれも証跡(スキャンログ、タイムスタンプ、運用判断)を残し、対応手順をドキュメント化して再発防止に繋げることが重要です。

(参考)よくある質問

Q1
ポートスキャンは違法ですか?
A1

権限のない相手のネットワークや公開サービスへのスキャンは法的・契約上問題になることがあるため、実施前に必ず権限確認や利用規約を確認してください。社内や自分の環境での検査は通常許容されます。

Q2
open と filtered の違いは何ですか?
A2

openはサービスがポートでリッスンしている状態、filteredはファイアウォール等でパケットがブロックまたはフィルタされている可能性を示します。filteredは到達性が不確定なため追加確認が必要です。

Q3
ポートスキャンの検出方法は?
A3

ログ監視、接続試行のレート監視で検出できます。特に複数IP/ポートへの短時間の接続試行はスキャンの典型的シグナルであり、閾値を設けてアラート化します。

コメント

タイトルとURLをコピーしました