ポートスキャンとはターゲットとなるホスト上で開いているポートをスキャン(探査)することである。 ここでは、ポートスキャンについて、その仕組みと対策を解説する。
2.2.1 ポートスキャンの目的と実行方法
TCPコネクションを確立するタイプのポートスキャンでは、単にポートの状態を確認するだけではなく、ターゲットホストが返すバナー情報からそのポートに対応したサービスを提供しているアプリケーションの種類やバージョンなどを確認する。また、稼働しているアプリケーションの種類や、ターゲットホストの振る舞い(アクセス要求に対する応答の仕方など)からOSの種類やバージョンまで確認することも可能である。このような手法を「スタックフィンガーブリンティング」とも呼ぶ。
ポートスキャンの目的
ポートスキャンを行うことによって、次のようなサービスを見つけることができる。
セキュリティ上問題のあるサービス
元々イントラネットなどの閉じたネットワークの中で使用することを前提としたプロトコルやサービスは数多くある。仮にそうしたサービスがインターネットから利用可能であれば、その機能上の脆弱さから侵入や攻撃が容易に行える可能性があるため、侵入者に取っては非常に好都合である。
機能上の脆弱さからインターネットに公開すべきではないとされているサービスの一例を次の表に示す。
インターネットに公開すべきではないサービスの例 |
---|
ポートスキャンの実施方法
ポートスキャンはTelnetクライアントなどを使用して手作業で行うことも可能だが、無償で公開されているツールが使われるケースが大半である。代表的なポートスキャンツールとしてnmapがある。
2.2.2 ポートスキャンの種類と仕組み
ポートスキャンにはTCPコネクトスキャンとSYNスキャンUDPスキャンの種類がある。
TCPコネクトスキャン
TCPのポートを対象とした手法であり、3ウェイハンドシェイクによってターゲットポートとTCPコネクションを確立できるかどうかによって状態を確認する。 多くのツールが存在することから最もよく使われている手法である。ポートが開いている場合にはコネクションを確立するため、ターゲットサーバのログに記録される。したがって、サーバのログを分析することによってポートスキャンを受けたことを確認できる可能性がある。
SYNスキャン(TCPハーフスキャン)
TCPコネクトスキャンと同時にTCPのポート(サービス)を対象とした手法だが、コネクションは確立せずにターゲットの状態を確認する方法である。SYNスキャンではターゲットポートにSYNパケットを送り、その対応結果がSYN/ACKであればアクティブ状態、RST/ACKであれば非アクティブ状態と判断する。アクティブ状態であった場合でもACKは返信せず、RSTを返信するため、コネクションは確立されない。そのため、ターゲットホストのログには記録されない。侵入者が自身の行動を発見されにくくするために用いる手法である。ステルススキャンとも呼ばれる。
UDPスキャン
UDPでは通信にあったコネクションを確立する手順が省略されている。そのため、TCPに比べポートスキャンの手段が限られ、かつ精度も低くなる。UDPではターゲットポートにデータを送り、その結果、何も応答もなければアクティブ状態、「ICMP port unreachable」が返ってきたら非アクティブ状態と判断する。また、UDPアプリケーションの仕組みによっては特定の応答を返すものもあるため、それを利用してUDPスキャンの精度を高めることも可能である。
2.2.3 ポートスキャンへの対策
ポートスキャンは調査行為であり、ポートスキャンのみでシステムへ侵入を許したり、データを破壊されたりすることはない。したがって、次にあげる予防・防止対策が行われていれば特に問題ない。しかし、そうでない場合には、ポートスキャンを受けることによって多くの脆弱性を露呈し、本格的な攻撃を受けることにつながることも十分あり得る。
予防・防止
- 不要なサービスを停止する(ポートを閉じる)
- OS及びアプリケーションのバージョンを最新化し、パッチを適用する
- 脆弱性検査を実施し、セキュリティホールが塞がれていることを確認する
- ファイアウォールなどによって不要なポートへのアクセスを遮断する
検知・追跡
- ネットワーク監視型IDS、ホスト監視型IDS、IPSなどを用いて検知する
- ファイアウォールのログから検知する
- ホストのログから検知する
IDSやIPSを用いると、SYNスキャンなどのステルススキャンについても検知することが可能である。一方、各ポートへのアクセスを連続して行うのではなく、1ポートごとにある程度時間をあけ、かつポート番号をランダムに選択して行われた場合などは、検知が非常に難しい。
回復
予防・防止対策が万全であれば、ポートスキャンを受けても特に問題はないため、回復処置は不要。予防・防止策に不十分な箇所があれば対処する。
Check!
- TCP、UDPにポートスキャンの違いは何か
- 検知されやすポートスキャン手法と検知されにくポートスキャンの方法があるが、後者はなぜ検知されにくいのか
- 検知されにくポートスキャンへの対処方法にはどのようなものがあるか
確認問題
TCPのコネクション確立方法である「3ウェイハンドシェイク」を表す図はどれか
3ウェイハンドシェイクを表す図はどれか |
---|
TCPの3ウェイハンドシェイクとは「3ウェイ」の名が示すように、次の1から3の2回のパケット送信によってコネクションを確立する方式である。
1. SYN(要求元が送信)
2. SYN+ACK(要求先が送信)
3. ACK(要求元が送信)
したがってアが正解。