ポートスキャンとは[情報処理安全確保支援士講座]

2024年4月29日

今回は情報処理安全確保支援士で問われる、ポートスキャンについて解説します。

アカリ
アカリ
実際に攻撃者がサイバー攻撃をするときって、どうやって攻撃するの?
トモル
トモル
まずはターゲットと通信できる場所を調べることが一般的だよ!

ポートスキャン

ポートスキャン

ポートスキャンは、ターゲットとなるホスト上で空いているポートを探査することです。

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

TCPコネクションを確立する対応のポートスキャンでは、単にポートの状態を確認するだけでなくターゲットのホストが返すバナー情報から、そのポートに対応したサービスを提供しているアプリケーションの種類やバージョンなどを確認します。

また、稼働しているアプリケーションの種類や、ターゲットホストの振舞いからOSの種類やバージョンを確認することも可能です。

キュー
キュー
アプリの種類やホストの振舞いからOSの種類やバージョンを確認することはスタックフィンガープリンティングと呼ぶで

ポートスキャンの目的

ポートスキャンの目的として、以下のようなサービスを見つけられます。

セキュリティ上で問題のあるサービス

プロトコルやサービスのなかには、閉じたネットワーク内で利用することを前提としたものが多数あります。

それらのサービスがインターネットから利用できてしまうと、機能上の脆弱性から侵入・攻撃が可能となります。

代表例として23(telnet)・110(pop3)・161(snmp)などが該当します。

既知のセキュリティホールを持つサービス

一般的に利用されている市販ソフトウェアやフリーウェアには、既知の脆弱性が多数あります。

従来では開発元が提供しているパッチを適用したり、バージョンアップをしたりすることで対策が可能です。しかし、これらの対策をせずにインターネット上にサービスを公開しているホストも多いです。

ポートスキャンでは、ターゲットホストからのバナー情報を調べることで、セキュリティホールを持つサービスが稼働していることを確認できるケースもあります。

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

ポートスキャンは、Telnetクライアントなどを使用して手作業で実施することも可能です。ただし無償で公開されているツールを使うケースが大半です。

キュー
キュー
ポピュラーどころではnmapがあるで

ポートスキャンは、ツールの活用によって誰でも容易に実行可能です。

また、ワームやトロイの木馬に組み込まれている場合も多く、インターネット上では無差別的に実行されています。

ポートスキャンの種類と仕組み

ポートスキャンは、組み合わせによって種類がいくつかあります。

TCPコネクトスキャン

TCPコネクトスキャンは、TCPのポートを対象とした手法で、3ウェイハンドシェイクによりターゲットポートとTCPコネクションの確立を試行し状態を確認します。

TCPコネクトスキャン

ポートが空いていればコネクションを確立するため、ターゲットのサーバ上でログが記録されます。

アカリ
アカリ
つまり、TCPコネクトスキャンの場合ログ情報からポートスキャンを受けたかどうか確認できるんだね!

SYNスキャン

SYNスキャンは、TCPコネクトスキャン同様にTCPポートを対象とした攻撃手法です。ただしコネクションは確立せず、ターゲットポートの状態を確認できます。

SYNスキャン

SYNスキャンでは、ターゲットポートにSYNパケットを送り、その結果がSYN/ACKであればアクティブ状態、RST/ACKであれば非アクティブ状態と判断します。

アクティブ状態でもACKは返信せず、RSTを返信するためコネクションは確立されません。そのため、ターゲットホストにログは記録されない特徴があります。

トモル
トモル
SYNスキャンは自身のポートスキャンを発見しにくくすることからも、ステルススキャンと呼ばれるよ

SYNスキャン以外のステルススキャンも確認しておきましょう。

種類 内容
FINスキャン FINフラグがONのパケットを送り、その反応からポートの状態を判別する
ACKスキャン ACKフラグがONのパケットを送り、その反応からポートの状態を判別する
Nullスキャン コードビットの全てのフラグがOFFのパケットを送り、その反応からポートの状態を判別する
クリスマスツリースキャン FIN・PSH・URGの全てがONのパケットを送り、その反応からポートの状態を判別する

UDPスキャン

UDPスキャンとは、通信にあたってコネクションを確立する手順が省略されています。したがって、TCPと比較して精度が低くなります。

UDPスキャン

UDPスキャンでは、ターゲットのポートにデータを送り、何も応答がなければアクティブ状態、「ICMP port unreachable」が帰ってくれば非アクティブと判断します。

ポートスキャンの対策

ポートスキャンは調査行為のため、ポートスキャンのみでシステムへの侵入を許したりデータが破壊されたりする心配はありません。

以下のような予防・防止対策を行うことで、一般的な対策としては十分です。

ポートスキャンの対策
★予防・防止策
  • 不要なサービスを停止する
  • OSやアプリケーションのバージョンを最新化する
  • 脆弱性検査を実施する

★検知・追跡策

IPS・IDSの導入によって、SYNスキャンをはじめとするステルススキャンの対策も可能です。

ただし、各portへのアクセスを連続で行うのではなく、1ポートごとにある程度時間を空けポート番号をランダムに選択して攻撃された場合は検知が困難になります。

スポンサーリンク

ポートスキャン・例題

実際に例題を解いて問題に慣れていきましょう。

問題

脆弱性検査で,対象ホストに対してポートスキャンを行った。対象ポートの状態を判定する方法のうち,適切なものはどれか。(H.27/秋)

ア 対象ポートにSYNパケットを送信し,対象ホストから”RST/ACK”パケットを受信するとき,対象ポートが開いていると判定する。
イ 対象ポートにSYNパケットを送信し,対象ホストから”SYN/ACK”パケットを受信するとき,対象ポートが閉じていると判定する。
ウ 対象ポートにUDPパケットを送信し,対象ホストからメッセージ”port unreachable”を受信するとき,対象ポートが閉じていると判定する。
エ 対象ポートにUDPパケットを送信し,対象ホストからメッセージ”port unreachable”を受信するとき,対象ポートが開いていると判定する。

(ログイン後回答すると、ここに前回の正誤情報が表示されます)

問の正解を表示

問の解説を表示

ア 対象ポートにSYNパケットを送信し,対象ホストから”RST/ACK”パケットを受信するとき,対象ポートが開いていると判定する。
→SYNパケットを送信し,対象ホストから”RST/ACK”パケットを受信するとき,対象ポートは閉じていると判定します。記述が逆で不正解です。

イ 対象ポートにSYNパケットを送信し,対象ホストから”SYN/ACK”パケットを受信するとき,対象ポートが閉じていると判定する。
→SYNパケットを送信し,対象ホストから”SYN/ACK”パケットを受信するとき,対象ポートは開いていると判定します。記述が逆で不正解です。

ウ 対象ポートにUDPパケットを送信し,対象ホストからメッセージ”port unreachable”を受信するとき,対象ポートが閉じていると判定する。
→記載の通りです。したがって正解です。

エ 対象ポートにUDPパケットを送信し,対象ホストからメッセージ”port unreachable”を受信するとき,対象ポートが開いていると判定する。
→ウより、対象ポートにUDPパケットを送信し,対象ホストからメッセージ”port unreachable”を受信するとき,対象ポートは閉じていると判定します。

ポートスキャン・まとめ

ポートスキャンは攻撃者が事前調査で実施する検査です。具体的な手法は午前試験で問われるので確認しておきましょう。

アカリ
アカリ
まずは3ウェイハンドシェイクのおさらいが必要だね!

次回はバッファオーバーフロー攻撃について学習します。


本気で支援士を狙うなら・・・
支援士ゼミがおすすめです!
  • ベテラン講師による手厚いサポート
  • モチベーションを保てるセキュリティコラムが満載!
  • マンツーマン形式で個別相談もできる!

スポンサーリンク