Overview
ポートスキャン(Port Scanning)とは、ネットワーク上のホスト(サーバーやPC)に対して、どの通信ポートが開放されているか(リスニング状態にあるか)を調査する技術です。TCPやUDPの各ポート(0〜65535番)に対して接続を試み、応答の有無や種類から、そのポートでサービスが稼働しているかどうかを判別します。
ポートスキャンは、セキュリティの文脈では「両刃の剣」です。セキュリティ管理者にとっては、自組織のサーバーやネットワーク機器に不要なポートが開いていないかを確認する重要な脆弱性評価ツールです。一方、攻撃者にとっては、攻撃対象の偵察(リコネサンス)を行うための最初のステップであり、開いているポートからサービスの種類やバージョンを特定し、既知の脆弱性を悪用する攻撃につなげます。
最も有名なポートスキャンツールはNmap(Network Mapper)です。1997年にGordon Lyon氏によって開発され、現在もオープンソースで活発に開発が続けられています。ペネトレーションテストやセキュリティ監査で標準的に使用されるツールであり、情報セキュリティの専門家にとって必須のスキルです。
Details
ポートスキャンの種類
- TCP SYNスキャン(ハーフオープンスキャン):TCPの3ウェイハンドシェイクの最初のSYNパケットのみを送信し、SYN/ACK応答があればポートが開いていると判断する。完全な接続を確立しないため高速で、ログに残りにくい。Nmapのデフォルトスキャン方式。
- TCP Connectスキャン:OSの接続機能を使って完全なTCP接続を確立するスキャン。確実だがログに記録されやすく、速度も遅い。root権限なしで実行可能。
- UDPスキャン:UDPポートの開放状態を調査するスキャン。UDPはコネクションレス型プロトコルのため、応答がない場合にポートが開いているのか、パケットがフィルタされたのかの判断が難しい。TCPスキャンより時間がかかる。
- FINスキャン / NULLスキャン / Xmasスキャン:TCP仕様のエッジケースを利用したステルススキャン。FINフラグのみ、フラグなし、FIN+PSH+URGフラグを設定したパケットを送信し、RSTの応答有無でポートの開閉を判断する。ファイアウォール回避に使用されるが、Windows系OSでは正確に機能しない場合がある。
- ACKスキャン:ファイアウォールのルールセットを調査するために使用される。ポートの開閉ではなく、パケットがファイアウォールでフィルタされているかどうかを判別する。
ポートの状態
Nmapではポートの状態を以下の6種類に分類します。
- open:ポートでアプリケーションがアクティブにTCP/UDP接続を受け付けている
- closed:ポートにアクセス可能だが、リスニングしているアプリケーションがない
- filtered:ファイアウォール等でパケットがフィルタされ、ポートの状態を判別できない
- unfiltered:ポートにアクセス可能だが、open/closedの判別ができない(ACKスキャンで使用)
- open|filtered:openかfilteredか判別できない(UDPスキャン等で発生)
- closed|filtered:closedかfilteredか判別できない
サービスとバージョンの検出
Nmapの-sVオプションを使用すると、開いているポートで稼働しているサービスの種類とバージョンを特定できます。さらに-OオプションでOS検出、NSE(Nmap Scripting Engine)で脆弱性チェックやより詳細な情報収集が可能です。
Security Measures
- 01不要なポートとサービスの停止:サーバーやネットワーク機器で、業務上必要のないサービスを停止し、対応するポートを閉じる。定期的にポートの棚卸しを行う。
- 02ファイアウォールによるポートフィルタリング:許可されたポートのみを開放し、それ以外のポートへのアクセスをファイアウォールでブロックする。デフォルトはすべて拒否(deny all)とし、必要なポートのみ許可する。
- 03IDS/IPSによるスキャン検知:IDS/IPSにポートスキャン検知ルールを設定し、短時間に大量のポートに対する接続試行を検知・アラート・ブロックする。
- 04自組織への定期的なポートスキャン:管理者自身がNmapなどのツールを使用して定期的にポートスキャンを実施し、意図しないポートが開いていないか確認する。外部と内部の両方からスキャンする。
- 05バナー情報の隠蔽:サービスが返すバナー情報(ソフトウェア名やバージョン)を変更または非表示にし、攻撃者が脆弱なバージョンを特定することを困難にする。
- 06ポートノッキングの導入:特定のポートに対して事前に決められた順序でアクセスした場合にのみ、管理用ポートを開放する仕組み。SSHなどの管理ポートの保護に有効。
Incidents
📋 Shodan検索エンジンによる脆弱デバイスの大量発見(継続的)
インターネット上のデバイスを常時スキャンする検索エンジン「Shodan」の存在により、インターネットに露出した脆弱なデバイス(WebカメラやIoT機器、産業制御システムなど)が容易に発見できることが問題視されています。Shodanにより、デフォルトパスワードのまま運用されている管理画面や、パッチ未適用のサーバーが数千件単位で特定されており、ポートスキャンの自動化がもたらすリスクを象徴しています。
📋 WannaCryランサムウェアの拡散(2017年)
2017年5月に世界中で猛威を振るったWannaCryランサムウェアは、SMBプロトコルのポート445を悪用して拡散しました。攻撃者はWindowsのSMBv1の脆弱性(EternalBlue / MS17-010)を利用し、ポート445が開いているすべてのマシンに自動的に感染を広げました。不要なポートを閉じていた組織は感染を免れたケースが多く、ポート管理の重要性を世界的に示した事例です。
📋 RDPポート露出によるランサムウェア被害の急増(2020年〜)
コロナ禍でリモートワークが急拡大した2020年以降、RDP(Remote Desktop Protocol)のポート3389をインターネットに直接公開する企業が急増し、これを狙ったブルートフォース攻撃やランサムウェア攻撃が激増しました。攻撃者はShodanやMasscanなどのツールで大規模なポートスキャンを実施し、RDPが公開されたサーバーをリスト化して攻撃に利用しています。