著者:田中麻維
大手電機メーカー系のSierに入社後、インフラエンジニアとしてLinuxサーバーの構築や保守・運用、ソフトウェアの開発業務を経験。アイティベル入社後は、IT領域の執筆などを行う。
サイバー攻撃から自社のネットワークやシステムを守るうえで、ポートスキャンの仕組みや対策を理解することは極めて重要です。
ポートスキャンとは、サーバーやシステムといったターゲットに対して通信を行い、ポートの状態を確認することです。悪意のある第三者が、サイバー攻撃を行う際の事前準備として実施します。また、脆弱性診断の一部として行われることもあります。企業にとっては、セキュリティを強固にするうえで必要不可欠な検証作業のひとつであるといえるでしょう。
本記事では、ポートスキャンの種類や仕組み、検出方法と対策を解説します。
1. ポートスキャンとは?
ポートスキャンは、特定もしくは不特定のターゲットにフラグを送信し、その応答によってポートの状態を確認する行為です。そのターゲットは、システム、サーバー、機器と多岐に渡り、TCP/IPコネクションで使用されるフラグの応答によってポートの状態や稼働サービスの把握・推測を行います。
ポートスキャンの目的
実施者によってポートスキャンの目的は大きく異なり、悪用されることもあれば有効な用途で使用されることもあります。
悪意のある第三者が行う場合、ポートスキャン自体に違法性はありませんが、ポートスキャンによって発見された脆弱性が攻撃の手がかりになってしまうでしょう。一方、企業が自社システムに対して行う場合は、脆弱性を発見しセキュリティを強化することを目的としています。
ポートスキャンによって取得される情報
ポートスキャンによって攻撃者に取得される情報としては、以下のものが挙げられます。
- オープンしているポート
- フィルタリングされているポート
- 稼働中のサービス
- 応答速度と通信状況
- MACアドレス
上記の情報を取得することで、攻撃者は新たな攻撃手段のヒントを得られます。
ポートスキャンによるリスク
ポートスキャンによって発生するおそれのあるリスクの一例としては、以下のものが挙げられます。
- システムの乗っ取り
- 情報漏えい
- システムの破壊
- 踏み台としての悪用
- マルウェア感染
上記のリスクは一例にすぎませんが、いずれも企業の活動にとって重大な影響を与えかねないリスクといえるでしょう。
ポートスキャンを未然に防ぐ、あるいはポートスキャンを受けた場合でもリスクにつながらないよう対策をとることが極めて重要です。
2. ポートスキャンの種類
ポートスキャンは、ターゲットに送信するプロトコルとフラグによって、いくつかの種類に分かれます。
本章では、代表的なポートスキャンの方法や手法と、その特徴を解説します。
スキャン方法の違い
代表的なポートスキャンの方法は、以下のとおりです。
- TCPスキャン
- UDPスキャン
- SYNスキャン
- FINスキャン
- NULLスキャン
- クリスマススキャン
それぞれのスキャン方法を解説します。
TCPスキャン
TCPスキャンは、コネクション確立時の反応によって、ポートがオープンもしくはクローズしていることを確認できます。
TCP/IPでコネクションを確立する「3ウェイハンドシェイク」と呼ばれる方法を利用しており、3つのステップによってコネクションを確立します。具体的には、SYNフラグの送信、SYN/ACKの応答、ACKの返信による3ステップです。
SYN/ACKの応答があれば、ポートがオープンしていると判断できます。また、SYN/RSTの応答があった場合は、ポートがクローズしているとわかります。
このように、TCPスキャンは、ポートの状態を確実に把握できるスキャン方法です。ただし、コネクションを確立してしまうため、通信記録がログに残るという特徴もあります。
UDPスキャン
UDPスキャンは、ターゲットにUDPを送信して反応を確認する方法です。応答がICMP port unreachableの場合、ポートが閉じていると判断できます。
UDPはコネクションレスなため、ポートスキャンの形跡を残しにくいという特徴があります。ただし、UDP自体が簡素なプロトコルであるため、信頼性が低く、確証のある情報とはいえないでしょう。
SYNスキャン
SYNスキャンは、対象にSYNフラグを送信して、ポートがオープンしているか確認する方法です。SYNフラグを送信してターゲットからSYN/ACKの応答を確認したあと、RSTフラグを送信してコネクションをキャンセルします。
SYNスキャンの場合、TCPスキャンと異なりコネクションを確立しないため、通信そのものがログに残りません。そのため、SYNスキャンをステルススキャンと呼ぶこともあります。
FINスキャン
FINスキャンは、接続終了を意味するFINフラグを送信する方法です。FINフラグを受信したターゲットは、ポートのクローズをRSTフラグとともに送信元に送り返します。これにより、ポートが使用されていると判断します。
FINスキャンはコネクションを確立しないため、ログに残りにくい点が特徴です。
NULLスキャン
NULLスキャンは、フラグを何も立てずに(フラグ設定を0にして)スキャンを行います。RSTフラグが返信された場合はポートがクローズしており、応答がなければポートがオープンしていると判断します。
特定のフラグを送信しないため、SYNスキャンやFINスキャンと同様に、通信記録がログに残らない点が特徴です。
クリスマススキャン
クリスマススキャンは、クリスマスツリースキャンとも呼ばれる方法で、FINフラグ、URGフラグ、PSHフラグをターゲットに対して一斉に送信します。
URGフラグは緊急、PSHフラグは受信データを上位のプロトコル、あるいはアプリケーションに渡す要求のフラグです。
RSTフラグが返信された場合は、ポートはクローズしています。応答がないときは、ポートがオープンしていると判断します。
スキャン手法の違い
ポートスキャンの手法には、すべての機器やポートにスキャンを行うフルスキャンと、検知されにくい低速でスキャンを行うスロースキャンがあります。それぞれの手法の特徴を解説します。
フルスキャン
フルスキャンは、すべてのポートに対してスキャンを行う手法です。ターゲットからSYN/ACKフラグを受信後、ACKを返します。すべてのポートに対する詳細な情報を取得できますが、ログに残るため検知しやすいスキャン手法です。
スロースキャン
スロースキャンは、長時間にわたりスキャンに時間をかける手法です。時間をかけて低速でスキャンを行うため、フルスキャンに比べてポートスキャンとみなされず、検知しづらい特徴があります。
気付かれにくい一方でスキャンの完了に時間がかかるため、攻撃される前に対策を行うことでシステムに対する被害を最小限に抑えられます。
3. ポートスキャンの流れ
方法や手法によって若干の違いはあるものの、ポートスキャンの大まかな流れは以下のとおりです。
- ターゲットに対してフラグ送信
- 送信したフラグに応じて応答
- 攻撃者が状況を把握
本章では、ポートスキャンの流れを解説します。
1. ターゲットに対してフラグ送信
攻撃者は、フラグのついたパケットをターゲットに送信します。送信するフラグには、先ほど解説したSYNフラグ、FINフラグ、URGフラグなど、いくつかの種類があります。
2. 送信したフラグに応じて応答
ターゲットサーバーが応答可能な状態、つまり稼働している場合は、送信元に応答を返します。攻撃対象のサーバーは、フラグの内容に応じて応答する場合もあれば、応答しないこともあります。
3. 攻撃者が状況を把握
攻撃者は、レスポンスの状況によって、ポートやサービスの稼働状態を把握します。決定的な情報を得られなかった場合は、別の方法でターゲットの状況を調べることもあるでしょう。
その後、得られた情報をもとにターゲットの脆弱性を調べ、攻撃を計画・実行します。
4. ポートスキャンの検出手法
ポートスキャンを検出できるセキュリティ製品には、以下のものがあります。
- IDS/IPS(不正侵入検知システム/不正侵入防御システム)
- ファイアウォール
- SIEM
各製品について、一つずつ解説していきます。
IDS(不正侵入検知システム)/IPS(不正侵入防御システム):スキャンの検出
IDS/IPSは、シグネチャにもとづき、異常な通信を検知・遮断できます。IDSはポートスキャンの検知とアラート通知、IPSは検知後に通信を遮断するシステムです。
ファイアウォール:フィルタリングとロギングによる保護
ファイアウォールを使用することで、ポートスキャンからシステムを防御します。攻撃対象のサーバーに対する通信そのものを拒否できるため、ポートの状態を隠蔽できるだけでなく、サーバーへのアクセス全般も制御できます。
また、ログの監視によって不審な通信を把握できる点も、ファイアウォールのメリットです。
SIEM:ログの統合とリアルタイムの脅威分析
SIEM(Security Information and Environment Management)は、ネットワーク機器やサーバーのログを収集し、一元的に管理できるシステムです。ファイアウォールやIDS/IPSといったネットワーク製品、あるいはサーバーのログを収集することで、ポートスキャンの形跡を分析できます。リアルタイムでモニタリングできるため、脅威の検知と対策を即座に実施することが可能です。
5. ポートスキャン対策
外部からのアクセス制限と不要なポートの閉鎖は、ポートスキャンへの対策として極めて重要です。加えて、セキュリティ製品の多層化による防御を施すことで、さらなる効果が期待できます。
本章では、ポートスキャンに有効な対策を解説します。
不必要なポートへのアクセス制限
ファイアウォールで不要なIPアドレスやアクセスの必要がないポートに制限をかけ、外部からのアクセスを制御することは、有効なポートスキャン対策になります。
ファイアウォールポリシーですべてのアクセスを拒否設定にしたうえで、必要な通信のみを許可設定にしましょう。漏れがなく確実に不要なアクセスを制御できます。
使用していないポートの閉鎖
不要なポートを閉じておけば、ポートスキャンを受けても応答を返すことがなく、攻撃の対象になりません。
ポートを閉鎖する際には、ウエルノンポートのうち、FTPやHTTPといったポートの閉鎖やハイポート(49152~65535、32768~61000)の停止を行います。ただし、アプリケーションによってはハイポートを使用するものもあるため、十分に注意しなければなりません。
ネットワークを多層的に防御する対策
ポートスキャンから自社ネットワークを防御するうえで、複数のセキュリティ製品を用いて多層的に防御を構成することが効果的です。
たとえば、以下のセキュリティ製品の導入が挙げられます。
- ファイアウォール
- IDS/IPS
- UTM(統合脅威管理ツール)
- WAF(Wepアプリケーションファイアウォール)
各セキュリティ製品を適切に設定し、ログ監視を行うことで、ポートスキャンに対してリアルタイムに対応できます。
通常、ポートスキャンは、TCP/IPやUDPといったネットワークレベルで行われます。アプリケーションレベルで対応するためにWAFやUTMを併用し、検知や防御手段としてIDS/IPSを使用すると、よりセキュリティを強固にすることが可能です。
まとめ
ポートスキャンは、システムに対して通信を行い、ポートの状態や稼働中のサービスを確認する行為です。攻撃者によってサイバー攻撃の事前準備として行われる一方で、脆弱性診断として実施されることもあります。
ポートスキャンは、TCP/IPコネクション時の通信を利用して行われますが、さらにセキュリティを強固なものとするためにはネットワークレベル以外にも十分な対策をとらなければなりません。たとえば、複数のセキュリティ製品による多層的な防御のほか、不要なポートの閉鎖、サービス停止といった対策が挙げられます。こうした対策をとり、サイバー攻撃を未然に防ぐことが極めて重要です。