【ポートスキャン徹底入門】基礎知識から実行方法・対策まで徹底解説!

〝ポートスキャン〟って、結局何をしているの?

この記事では、「ポートスキャンとは何か」を初心者にも分かりやすく整理し、ポートスキャンの概要や目的実際のツール使用例対策方法を丁寧に解説しています。

本記事はポートスキャンの技術的な理解を深めることを目的としたものです。許可のない環境でのポートスキャンの使用は、法律に抵触する恐れがあります。許可なく実施することは、絶対にお控えください。

目次

ポートスキャンとは

ポートスキャン(Port Scan)とは、ネットワーク上のサーバーやデバイスに対して、通信に使用されるポートが開いているか、閉じているかを確認する手法のことです。ポートスキャンは、脆弱性診断やペネトレーションテストにおいて、システムの弱点を発見するための手段として活用されます。

ポートスキャンは、システムのセキュリティ状況を可視化し、適切なセキュリティ対策を講じるために欠かせないプロセスです。

ポートスキャンの目的

ポートスキャンの目的は、セキュリティエンジニアやネットワーク管理者がシステムの脆弱性を評価し、潜在的なセキュリティリスクを早期に発見することです。例えば、意図しないポートが開放されていると、不正アクセスやサイバー攻撃の経路として利用される可能性があるため、定期的なポートスキャンによってリスクを検出し、適切な対策を講じる必要があります。

ポートスキャンでできること
  • 開放ポートの確認 : 不要なポートが開放されていないか確認する。
  • サービスの稼働状況の確認 : 指定したポートで稼働しているサービスやバージョンを確認する。

一般に使用されるポートスキャンツールは、サーバーで稼働しているサービスの種類やバージョン情報を収集する機能も備えており、これにより脆弱なバージョンのサービスや未更新のソフトウェアを特定することができます。

ポートスキャンは本来、ネットワーク管理者がセキュリティ状況を把握したり、システムの正常性を確認したりするための手法です。しかし、その便利さが裏目に出ることもあり、サイバー攻撃の前段階としてポートスキャンを悪用するケースがあります。

ポートスキャンで得られる情報

開放されているポート

ポートスキャンを行うことで、対象システムで開放されているポート番号が分かります。開いているポートは、サービスやアプリケーションが外部との通信を許可していることを示します。

稼働中のサービスやアプリケーションの種類とバージョン情報

開放ポートが分かると、そのポートで稼働している具体的なサービス(例:Webサーバー、メールサーバーなど)を判別することができます。サービスの特定には、バナー情報を収集することが多く、これによりどのサービスがどのバージョンで動作しているかを確認できます。

OS情報

ポートスキャンの一部として行われるOSフィンガープリンティングにより、対象システムのOSを特定することができます。これにより、LinuxやWindowsといったOS種別や、場合によってはそのバージョンも判別することが可能です。

ネットワーク構成

各ポートの状態や応答を分析することで、Webサーバー、ルーター、データベースサーバー、ファイアウォールなど、デバイスの特性が明らかになり、内部ネットワークのトポロジー(構造)を把握することができます。

代表的なポート

ポート番号プロトコルサービス説明
20TCPFTP (データ転送)ファイル転送プロトコルのデータポート
21TCPFTP (制御)ファイル転送プロトコルの制御ポート
22TCP/UDPSSHセキュアなリモートログイン
23TCPTelnetテキストベースのリモートログイン
25TCPSMTPメール送信プロトコル
53TCP/UDPDNSドメインネームサービス
67UDPDHCP (サーバー側)IPアドレスの自動割り当て (サーバー)
68UDPDHCP (クライアント側)IPアドレスの自動割り当て (クライアント)
80TCPHTTPウェブページの標準通信プロトコル
110TCPPOP3メール受信プロトコル
119TCPNNTPニュースグループ用プロトコル
123UDPNTP時刻同期プロトコル
143TCPIMAPメール受信プロトコル (POP3の代替)
161UDPSNMPネットワーク管理プロトコル
194TCPIRCインターネットリレーチャット
443TCPHTTPSSSL/TLSによるセキュアなHTTP通信
465TCPSMTPSセキュアなSMTP (メール送信)
993TCPIMAPSセキュアなIMAP (メール受信)
995TCPPOP3SセキュアなPOP3 (メール受信)

ポートスキャンの種類

ポートスキャンにはさまざまな種類があり、それぞれ異なる目的や特性を持っています。以下では、代表的なポートスキャンの種類を詳しく解説します。

代表的なポートスキャンの種類
  • TCPスキャン
  • SYNスキャン
  • FINスキャン
  • Xmasスキャン(クリスマスツリースキャン)
  • NULLスキャン
  • UDPスキャン

TCPスキャン

TCPスキャンは、ポートスキャンの基本的な手法の一つで、ネットワーク上のデバイスにおけるTCPポートの開閉状態を確認するために用いられます。この手法では、標準的なTCP接続の手順に従ってスキャンを実行し、ターゲットホストがどのポートを開放しているかを特定することを目的としています。具体的には、TCPの「3ウェイハンドシェイク」を利用して、通信を確立するプロセスを踏むことで、ターゲットのポートが応答可能かを確認します。

SYNスキャン

SYNスキャンは、ハーフオープンスキャンとも呼ばれ、TCP通信の初期接続における「3ウェイハンドシェイク」の一部を利用して、対象ホストのポートの開閉状態を調べる手法です。

SYNスキャンでは、3ウェイハンドシェイクを最後まで完了させず、接続確立前にスキャンを終了させます。

この手法は、高速かつ効率的にポート状態を把握できるため、Nmapなどのスキャンツールのデフォルトスキャンに採用されています。

FINスキャン

通常のTCP接続では、通信を開始する際にSYNパケットを送信し、サーバーからの応答によって接続が確立されます。しかし、FINスキャンではこの手順を踏まず、いきなり終了信号であるFINパケットを送信します。

Xmasスキャン(クリスマスツリースキャン)

Xmasスキャン(クリスマスツリースキャン)は、TCPパケットにおいて通常とは異なるフラグを複数設定することでターゲットシステムの反応を引き出す方法です。Xmasスキャンでは、TCPヘッダの複数のフラグ(FIN、PSH、URG)を同時に設定することで「点灯している」状態を作り出します。

この設定状態が、まるでクリスマスツリーのライトが点灯しているように見えることから、Xmasスキャンという名前が付けられました。

NULLスキャン

NULLスキャンは、TCPフラグが一切設定されていない状態(フラグがNULLの状態)でパケットを送信し、ポートの状態を判断するスキャン手法です。通常、TCPパケットにはフラグが設定され、通信の目的や状態を示しますが、NULLスキャンではフラグが何も指定されていない異常なパケットを利用します。

UDPスキャン

UDPスキャンは、ターゲットのUDPポートの開放状況を確認するスキャン手法です。UDPは接続確立のハンドシェイクが不要で、送信先からの応答が期待できない非接続型のプロトコルです。こうしたコネクションレスな特性により、スキャン精度が低くなりやすい特徴があります。

ポートスキャンの実行方法

ポートスキャンの流れ

  1. ターゲット選定
    • まず、調査対象のデバイスのIPアドレス、またはネットワーク範囲を選定する。
  2. ポート番号の選定
    • どのポートをスキャンするかを選ぶ。
  3. パケット送信
    • 指定したポートにパケットを送信し、応答を待つ。
  4. 応答解析
    • ターゲットからの応答を解析し、各ポートの状態を判断する。

この流れに従って、以下に記載しているツールを用いて、ポートスキャンを実施します。

ポートスキャンができるツール

最も一般的で多機能なツールとして「Nmap」が挙げられます。Nmap(Network Mapper)は、ネットワークスキャンやポートスキャンに特化した強力なツールであり、世界中のセキュリティエンジニアに広く利用されています。このツールは、TCPやUDPのポートスキャン、OSの特定、さらにはサービス検出やバージョン検出も可能です。Nmapの高度な機能により、スキャン方法や検出精度を細かく調整できるため、セキュリティ診断の現場で非常に重宝されています。

ツールの一例

各ツールの特徴や使い方は、個々の記事で詳しく解説しています。

ポートスキャンの実行例(Nmapの場合)

Nmapは、CLI(コマンドライン・インタフェース)のため、ターミナルからnmapコマンドを実行します。

Nmapの実行コマンドの一例

nmap -sT -p 1-1024 -sV -O -oN output.txt 192.168.1.0/24
  • -sT:スキャン手法(TCPスキャン)
  • -p 1-1024:対象ポート
  • -sV:サービス・バージョン検出を行う
  • -O:OS識別を行う
  • -oN output.txt:スキャン結果をファイル出力する
  • 192.168.1.0/24:対象ホスト

Nmapの特徴や使い方は、以下の記事で詳しく解説しています。

ポートスキャンで検出された脆弱性の対策

不要なポートやサービスを停止したり、OS・ミドルウェアを常に最新バージョンに保つことで、セキュリティリスクを最小限に抑えることができます。

不要なポートを閉じる

不要なポートを閉じることは、サーバーやネットワーク機器を外部からの不正アクセスや攻撃から保護するための基本的かつ重要な対策です。多くのシステムには、初期設定で複数のポートが開いていることがあり、その中には実際には使用されていない、もしくは業務上必要ないポートも含まれています。これらの不要なポートを開いたままにしておくと、外部からの侵入や攻撃者による探索の対象となり、不正アクセスの足掛かりに利用されるリスクが高まります。

システム管理者は定期的なポートスキャンを実施し、新たに開かれてしまった不要なポートや誤って開いてしまったポートがないか確認することが重要。こうしたポートの管理が適切に行われることで、システム全体の攻撃面が縮小され、セキュリティの強化が図られます。

不要なポートを閉じることで、システムが外部からアクセスされる経路を減らし、セキュリティリスクを大幅に軽減できます。

不要なサービスを停止する

多くのOSやミドルウェアでは、初期設定で複数のサービスが有効化されており、その中には業務に直接関係しない機能が含まれていることもあります。

特に、古いサービスやアップデートが適用されていないサービスが稼働していると、既知の脆弱性を狙われるリスクが高まります。

このような事態を防ぐためにも、業務に不要なサービスを事前に確認し、停止しておくことが肝要です。

OSやミドルウェアのバージョンを最新にする

OSやミドルウェアには、日々新しい脆弱性が発見され、それを悪用する攻撃手法も多岐にわたります。攻撃者は、特定のバージョンの脆弱性を利用してシステムへの侵入を図るため、古いバージョンを使用しているとそのリスクが高まります。

こうした脆弱性は、ポートスキャンによって発見され、侵入の手がかりにされることが少なくありません。

最新バージョンに更新することにより、既知の脆弱性が修正され、攻撃者が悪用できる余地が減少します。特にOSやミドルウェアのアップデートでは、セキュリティパッチが頻繁にリリースされているため、迅速に適用することが重要です。

デフォラボ

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
目次