ポートスキャン
別名:スタックフィンガープリンティング
概要
ターゲットのホストで開いている(通信可能な)ポートがどれかを探す。
目的
・セキュリティに問題があるサービスを探す。 [※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コネクトスキャンならサーバのログから検知する。
回復
予防がしっかりしていれば、ポートスキャンでは被害ではないため問題ない。