ポート スキャンとは
ポート スキャンとは、ネットワーク上の開いているポートを特定する方法です。コンピュータのポートは情報が送受信される場所であるため、ポート スキャンはドアをノックして誰か居るか確認する行為と似ています。ネットワークまたはサーバに対してポート スキャンを実行すると、どのポートが開いていてリッスン(情報を受信)しているかだけでなく、送信元と送信先の間にファイアウォールなどのセキュリティ デバイスが存在するかもわかります。この手法はフィンガープリントと呼ばれます。また、ネットワーク セキュリティやシステムのファイアウォールの強度をテストするのにも役立ちます。この機能のため、攻撃者がコンピュータへの侵入に利用できる脆弱なアクセス ポイントを探すための偵察ツールとしても一般的です。
ポートが提供するサービスはそれぞれ異なります。0~65535の番号が付けられていますが、特定の範囲がよく使用されます。ポート0~1023は「Well-known Port」または標準ポートとされており、Internet Assigned Numbers Authority (IANA)によってサービスが割り当てられています。主要なポートと割り当てられているサービスは次のとおりです。
- ポート20 (udp) – データ転送のためのファイル転送プロトコル(FTP)
- ポート22 (tcp) – 安全なログイン、ftp、およびポート フォワーディングのためのセキュア シェル(SSH)プロトコル
- ポート23 (tcp) – 暗号化されていないテキストの通信のためのTelnetプロトコル
- ポート53 (udp) – インターネット上のすべてのコンピュータの名前をIPアドレスに変換するドメイン ネーム システム(DNS)
- ポート80 (tcp) – ワールド ワイド ウェブHTTP
また、1023以降のポートで提供される標準サービスや、広範囲にわたるトロイの木馬やウイルスに広く利用されていることから開いている場合は感染されたシステムであることを示すポートもあります。
ポート スキャンでは、入念に準備されたパケットを各宛先ポート番号に送信します。ポート スキャン ソフトウェアが対応している基本的な手法は次のとおりです。
- バニラ – 最も基本的なスキャンで、65,536個の全ポートに1つずつ接続を試みます。バニラ スキャンはフル コネクト スキャンです。つまり、SYNフラグ(接続要求)を送信し、SYN-ACK (接続確認)応答を受信次第、ACKフラグを送り返します。このSYN、SYN-ACK、ACKのやり取りによりTCPハンドシェイクが構成されます。フル コネクト スキャンは正確ですが、常にファイアウォールでログ記録されるため、極めて容易に検出されます。
- SYNスキャン – ハーフオープン スキャンとも呼ばれ、SYNのみを送信し、送信先からのSYN-ACK応答を待機します。応答を受信してもスキャナは応答しません。TCP接続が完了していないため、そのやり取りはシステムでログ記録されませんが、送信者はそのポートが開いているかどうかがわかります。
- XMASおよびFINスキャン – 標的システムでログ記録されることなく情報を収集するために使用される一連のスキャンの例です。FINスキャンでは、一方的なFINフラグ(通常は確立されたセッションを終了するために使用)がポートに送信されます。このランダムなフラグに対するシステムの応答から、ポートの状態やファイアウォールの状況がわかります。たとえば、一方的なFINパケットを受信すると、閉じたポートはRST (即時終了)パケットで応答しますが、開いているポートは無視します。XMASスキャンはすべてのフラグ一式を送信し、無意味なやり取りを引き起こします。システムの応答を解釈することで、そのシステムのポートやファイアウォールについて理解を深めることができます。
- FTPバウンス スキャン– – FTPサーバを介してパケットをバウンスさせることによって送信者の位置を偽装できます。また、送信者が検出されないようにすることも目的としています。
- スイープ スキャン – 多数のコンピュータの同じポートにpingを送信して、ネットワーク上のアクティブなコンピュータを特定します。この場合、ポートの状態に関する情報はわかりませんが、ネットワーク上のどのシステムがアクティブなのかがわかります。そのため、これは予備スキャンとして使用できます。
送信者が受信側システムのログによって検出されないように開発されたスキャンはステルス スキャンと呼ばれ、特に攻撃者の関心を集めています。ポート スキャンは、この分野での知名度にもかかわらず、ネットワークのフィンガープリントや、侵入テスターによるネットワーク セキュリティの強度の評価に役立つツールです。