インターネットに接続するということは、世界中のネットワークとつながることです。すなわち無防備な状態では、不特定の第三者に利用状況など秘匿すべき情報が筒抜けになってしまいます。
これはネットワークに接続する機器やパソコンのポート番号の利用状況も同様です。「ポートスキャン」について知り、不当なスキャンにどう対策すべきか検討しましょう。
また、LRMでは、企業のセキュリティインシデント対応を適切に進めることのできるインシデント管理台帳を無料で配布しています。ISMS規格に準拠、インシデントの対応から再発防止に至るまでカバーできます。
ポートスキャンとは
ポートスキャンとはネットワークに接続している機器や端末がどんなサービスやソフトウェアを利用しているか把握するため、どのポート番号と接続可能かを調べることです。ポートスキャンは対象の機器に特定のデータを送信し、それに対する応答の有無と内容から各ポートの利用状態を把握します。
ポートスキャン自体は管理の一環で行うこともあり、違法でも何でもありません。しかし、不当に他人の機器や端末を探り、サイバー攻撃の前段階として実行されるケースがあります。ポートスキャンのツール(ポートスキャナ)として、オープンソースの「Nmap」、またそのGUI版の「Zenmap」が有名です。いずれも無料で頒布されており、事実上、ポートスキャンは誰でも実施できます。
ポートとは
ポートスキャンのポートとは、インターネットで相手先と接続後、さらにどのサービス・ソフトウエアを利用するか指定する「ポート番号」のことです。それを単に「ポート」と称しています。
人はメールやWebサービスの利用など、何らかの目的があってインターネットを利用しています。それを実現するため、通信方式や情報の加工・表示方法が規定されており、数あるサービスやソフトウエアの中から適切なものを指定するのに「ポート番号」が用いられます。
ポート番号は0番から65535番まで存在し、目的別に割り当てられます。0から1023番までを特別に区分し、用途が明示的に指定されています。著名なポート番号には22番のSSH(セキュアログイン)、80番のHTTP(Webの通信方式)があります。
ポートスキャンの目的
ポートスキャンは正当な管理目的のほか、攻撃者が標的対象に脆弱性がないか、事前調査の手段として悪用している実態があります。ポートスキャンにより、ポートの利用状況から対象機器は外部にどんなサービスを提供しており、ソフトウエアがどう設定されているか、ある程度把握できます。そこに何らかの設定の不備や脆弱性が見つかれば、そこをとっかかりに攻撃される恐れがあります。
ポートスキャンの種類
ポートスキャンのやり方はいくつかありますが、ここでは2つのタイプを紹介します。通常の接続手続きにより相手方に通信ログを残し、ポートスキャンした事実が明るみになるやり方と、相手方にログを残さずポートスキャンを悟らせない方法です。
通常の転送方式によるスキャン
インターネットのデータ転送方式にはTCPとUDPがあり、それぞれに応じたパケットを送りポートスキャンを実行します。ただし、UDPはパケットロスによるログの取得不能がないとは限りません。
TCPスキャン
TCPスキャンは接続コネクションの手続きをしっかり踏んで、対象の各ポートとコネクションの確立を試みる方法です。通信相手とのコネクションが成立すれば、TCP方式のポートが利用できると判断できます。
TCPスキャンは相手方にログが残るほか、複数のポートスキャンをまとめて行おうにも、そのたびにコネクションを確立するため効率が悪い方法です。
UDPスキャン
UDPスキャンは対象がUDPでサービスを提供しているかを確認する方法です。パケットを送信し、応答がなければUDPを使うポートが稼働中、「ICMP Port Unreachable」のメッセージが返ってくればUDPを使うポートは稼働していません。
UDPは速度重視でパケットの到達保証がありません。そのため応答がない場合にポートが本当に稼働中なのか、そもそも他の要因でパケットが未達の可能性があるのか判断が困難です。それもあり、UDPスキャンの速度は遅くなります。
ステルススキャン
TCP接続の通信ログが残らぬよう、こちらにスキャンした事実を悟られずに実施されるのが「ステルススキャン」です。外部からのステルススキャンのパケットは、ほぼ攻撃者によるものと考えて差し支えないでしょう。
SYNスキャン
SYNスキャンとは、TCPのコネクション確立の「スリーウェイハンドシェイク」の手順を踏まず、いきなり「SYNパケット」を送信して、対象機器のポートの状態を探るものです。「SYN/ACKパケット」が返ってくればポートが稼働中、「RST/ACKパケット」ならばポートは非稼働と判断されます。
やや高度なスキャン方法
特定のファイアウォールやフィルタリングをすり抜け、ポートの稼働状態を識別できるスキャン方法もあります。
ここでは「FINスキャン」「Xmasスキャン」「NULLスキャン」を紹介します。この3つのスキャンの違いは送信パケットの中身が異なる点にあります。ただ、いずれも応答内容と診断結果は同じです。
スキャンの結果、何の反応もなければポートは稼働中で、「RSTパケット(通信拒否・強制切断)」が返ってくればポートは非稼働と判断されます。ただし、OSがWindowsだったり、ファイアウォールやフィルタリングシステムによっては、ポートの稼働の有無に関わらず「RSTパケット」を返すことがあります。
FINスキャン
FINスキャンとは、TCPのコネクションを確立していないのに、接続を終了する合図の「FINパケット」を送信して相手方のポートの状態を探ります。
Xmasスキャン
Xmasスキャン(クリスマスツリースキャン)とは、矛盾するフラグのパケットをポートに送りつけ反応をみるものです。具体的には「FINパケット」、緊急確認を伝える「URGパケット」、即時処理を要求する「PUSHパケット」を同時に送信します。
NULLスキャン
NULLスキャンとは、指示内容を表すパケットがまったく入っていないデータをポートに送りつけて稼働状況を探るものです。
ポートスキャンの対策方法
ポートスキャン対策として有用なのは、基本的なセキュリティ対策のほか、機器のポート管理、またセキュリティツールの導入です。
未使用のポートは閉じる
不要なポートを閉じることで、リスクを減らせます。未使用のポートを開放したままにしておくと、それだけサイバー攻撃の危険性が高まります。
管理対象の機器にポートスキャンして未使用のポートを特定し、不要であれば閉じます。もしくは最低限ファイアウォールを設置して、不審なパケット通信を遮断するようにします。
OSやソフトウェアの定期的なアップデート
ポートスキャンの目的は脆弱性の有無を探り、隙あらば攻撃を仕掛けるためです。攻撃リスクの回避と脆弱性の排除にはOSやソフトウエアの定期的なアップデートが欠かせません。自社システムの設定上、セキュリティ修正パッチを即適用できなくても、極力最短で適用するように努めましょう。
セキュリティソフトの導入
ファイアウォール機能のあるセキュリティソフトならば、ポートを制御してソフトウエアが許可なく外部と通信することを防ぎます。コンシューマ向けのパーソナルファイアウォールをパソコン等の端末に導入するのも有用です。もしくは市販のセキュリティソフトを導入し、そのファイアウォール機能を用いてもいいでしょう。
ファイアウォールの定期的なログ確認と対処
ポートスキャン対策にはファイアウォールの設置と適切な運用が有効です。ファイアウォールは不審なパケット通信を遮断して通信ログを残すので、ポートスキャンを受けたか判断できます。ポートスキャンでは特徴的なパケットが立て続けに送信されるため、拒否ログなどログの内容次第ではポートスキャンがあったと断定できます。
万一ポートスキャンが判明したら、ファイアウォールで不審なパケットの送信元のアクセス遮断を設定します。
不正侵入検知システム(IDS)の導入
IDS(不正侵入検知システム)を導入してポートスキャンを検知することも可能です。IDSは不正アクセスの検知と管理者通知ができ、脅威が発露する前に対処すれば被害発生を未然に防げるでしょう。IDSはファイアウォールを通過した通信を監視し、ポートスキャンやDDoS攻撃など、Webサービスの提供者にとって脅威となる兆候を検知可能です。
なお、不正アクセスの検知に加え、アクセス遮断もできるIPS(不正侵入防止システム)もあります。自社の環境や管理体制を考慮し、最適なシステムを選択しましょう。
まとめ
ポートスキャンは本来は管理目的で行うものですが、攻撃の調査目的に悪用されるケースがあります。ポートスキャンによる直接的な被害はほぼありませんが、被害の発生に発展しないよう対策に努めましょう。