ポートスキャン

別名:スタックフィンガープリンティング

概要

ターゲットのホストで開いている(通信可能な)ポートがどれかを探す。

目的

・セキュリティに問題があるサービスを探す。 [※1]

・既知のセキュリティホールがあるサービスを探す。

※1

インターネット上に公開スべきでないサービスを指す。以下、サービス名(ポート名)

telnet (23) 、pop3(110)、tftp(69) [簡易FTP]、rsh(514)[リモートシェル]、syslog(514)

snmp(161)、snmptrap(162)[ネットワーク管理] などなど

攻撃方法

nmapというポートスキャンツールなどを使う事で誰でも攻撃できる。

具体的な攻撃内容は、TCPの3wayハンドシェイクやUDPを使用したもの。

TCPコネクトスキャン

サーバはクライアントからのSYN(接続要求)に対してサーバがSYN/ASK(接続許可)を返す。つまり、サーバからSYN/ASKパケットが返されればそのポートは接続可能(ポートが開いている)と判断できる。攻撃者は、SYN/ASKパケットに対してACK(コネクション確立)パケットを返す。

コネクションを確立するため、サーバのログで攻撃を受けたことを確認できる可能性がある。

TCPハーフスキャン (ステルススキャン)

攻撃者がSYNを送るところまでは同じ。

サーバからSYN/ACKが返されれば、ポートが開いていると判断。

逆にRST/ACK(リセット要求)が返されれば、ポートが開いていないと判断する。

その後、攻撃者からサーバへACKを返す事はしない。(コネクション確立しない)

故にサーバのログに記録されないため、攻撃に気づかない。

UDPスキャン

 UDPでは通信の確立がない。

攻撃方法としてはターゲットポートにデータを送り、ICMP port unreachableが返されればポートが開いていないと判断する。何も返ってこなければポートが開いているとする。

他のステルススキャン

TCP FINスキャン

 FINフラグをONにしたパケットを送る。その反応で開いているか判断。

 ・TCP ACKスキャン

 ACKフラグをONにしたパケットを送る。その反応で開いているか判断。

TCP Nullスキャン

 全てのフラグをOFFにしてパケットを送る。同じく反応を見る。

TCP クリスマスツリースキャン

 全てONのパケット。反応を見る。

対策

 予防・防止

不要なサービスを停止。ポートを閉じる。

OSやアプリを最新に。パッチを適用。

脆弱性検査を行い、セキュリティホールがない事を確認する。

ファイアウォールで不要なポートへのアクセスを遮断する。

 検知・追跡

ネットワーク監視型IDS、ホスト監視型IDS、IPSで検知する。

ファイアウォールのログから検知する。

TCPコネクトスキャンならサーバのログから検知する。

回復

予防がしっかりしていれば、ポートスキャンでは被害ではないため問題ない。