ポートスキャンとは[情報処理安全確保支援士講座]
今回は情報処理安全確保支援士で問われる、ポートスキャンについて解説します。
ポートスキャン
ポートスキャンは、ターゲットとなるホスト上で空いているポートを探査することです。
ポートスキャンの目的と実行方法
TCPコネクションを確立する対応のポートスキャンでは、単にポートの状態を確認するだけでなくターゲットのホストが返すバナー情報から、そのポートに対応したサービスを提供しているアプリケーションの種類やバージョンなどを確認します。
また、稼働しているアプリケーションの種類や、ターゲットホストの振舞いからOSの種類やバージョンを確認することも可能です。
ポートスキャンの目的
ポートスキャンの目的として、以下のようなサービスを見つけられます。
セキュリティ上で問題のあるサービス
プロトコルやサービスのなかには、閉じたネットワーク内で利用することを前提としたものが多数あります。
それらのサービスがインターネットから利用できてしまうと、機能上の脆弱性から侵入・攻撃が可能となります。
代表例として23(telnet)・110(pop3)・161(snmp)などが該当します。
既知のセキュリティホールを持つサービス
一般的に利用されている市販ソフトウェアやフリーウェアには、既知の脆弱性が多数あります。
従来では開発元が提供しているパッチを適用したり、バージョンアップをしたりすることで対策が可能です。しかし、これらの対策をせずにインターネット上にサービスを公開しているホストも多いです。
ポートスキャンでは、ターゲットホストからのバナー情報を調べることで、セキュリティホールを持つサービスが稼働していることを確認できるケースもあります。
ポートスキャンの実行方法
ポートスキャンは、Telnetクライアントなどを使用して手作業で実施することも可能です。ただし無償で公開されているツールを使うケースが大半です。
ポートスキャンは、ツールの活用によって誰でも容易に実行可能です。
また、ワームやトロイの木馬に組み込まれている場合も多く、インターネット上では無差別的に実行されています。
ポートスキャンの種類と仕組み
ポートスキャンは、組み合わせによって種類がいくつかあります。
TCPコネクトスキャン
TCPコネクトスキャンは、TCPのポートを対象とした手法で、3ウェイハンドシェイクによりターゲットポートとTCPコネクションの確立を試行し状態を確認します。
ポートが空いていればコネクションを確立するため、ターゲットのサーバ上でログが記録されます。
SYNスキャン
SYNスキャンは、TCPコネクトスキャン同様にTCPポートを対象とした攻撃手法です。ただしコネクションは確立せず、ターゲットポートの状態を確認できます。
SYNスキャンでは、ターゲットポートにSYNパケットを送り、その結果がSYN/ACKであればアクティブ状態、RST/ACKであれば非アクティブ状態と判断します。
アクティブ状態でもACKは返信せず、RSTを返信するためコネクションは確立されません。そのため、ターゲットホストにログは記録されない特徴があります。
SYNスキャン以外のステルススキャンも確認しておきましょう。
種類 | 内容 |
FINスキャン | FINフラグがONのパケットを送り、その反応からポートの状態を判別する |
ACKスキャン | ACKフラグがONのパケットを送り、その反応からポートの状態を判別する |
Nullスキャン | コードビットの全てのフラグがOFFのパケットを送り、その反応からポートの状態を判別する |
クリスマスツリースキャン | FIN・PSH・URGの全てがONのパケットを送り、その反応からポートの状態を判別する |
UDPスキャン
UDPスキャンとは、通信にあたってコネクションを確立する手順が省略されています。したがって、TCPと比較して精度が低くなります。
UDPスキャンでは、ターゲットのポートにデータを送り、何も応答がなければアクティブ状態、「ICMP port unreachable」が帰ってくれば非アクティブと判断します。
ポートスキャンの対策
ポートスキャンは調査行為のため、ポートスキャンのみでシステムへの侵入を許したりデータが破壊されたりする心配はありません。
以下のような予防・防止対策を行うことで、一般的な対策としては十分です。
- 不要なサービスを停止する
- OSやアプリケーションのバージョンを最新化する
- 脆弱性検査を実施する
★検知・追跡策
- IDS・IPSを活用する
- ファイアウォールのログから検知する
- ホストのログから検知する
IPS・IDSの導入によって、SYNスキャンをはじめとするステルススキャンの対策も可能です。
ただし、各portへのアクセスを連続で行うのではなく、1ポートごとにある程度時間を空けポート番号をランダムに選択して攻撃された場合は検知が困難になります。
ポートスキャン・例題
実際に例題を解いて問題に慣れていきましょう。
問題
ア 対象ポートにSYNパケットを送信し,対象ホストから”RST/ACK”パケットを受信するとき,対象ポートが開いていると判定する。
イ 対象ポートにSYNパケットを送信し,対象ホストから”SYN/ACK”パケットを受信するとき,対象ポートが閉じていると判定する。
ウ 対象ポートにUDPパケットを送信し,対象ホストからメッセージ”port unreachable”を受信するとき,対象ポートが閉じていると判定する。
エ 対象ポートにUDPパケットを送信し,対象ホストからメッセージ”port unreachable”を受信するとき,対象ポートが開いていると判定する。
(ログイン後回答すると、ここに前回の正誤情報が表示されます)
ポートスキャン・まとめ
ポートスキャンは攻撃者が事前調査で実施する検査です。具体的な手法は午前試験で問われるので確認しておきましょう。
次回はバッファオーバーフロー攻撃について学習します。
福井県産。北海道に行ったり新潟に行ったりと、雪国を旅してます。
経理4年/インフラエンジニア7年(内4年は兼務)/ライター5年(副業)
簿記2級/FP2級/応用情報技術者/情報処理安全確保支援士/中小企業診断修得者 など
ディスカッション
コメント一覧
まだ、コメントがありません