情報セキュリティマネジメント(4)
ポートスキャン
ネットワークを通じてサーバに連続してアクセスし、保安上の弱点(セキュリティホール)を探す行為。本来の目的は、使用したいポートが通信可能であること、あるいは、使用していないポートが通信不能であることをコンピュータやルータの管理者が確認すること
目的と実行方法
インターネット上で公開されているサーバコンピュータは「TCP/IP」と呼ばれる通信規約(プロトコル)に従って動作していて、通常は「ポート」と呼ばれる接続窓口を複数用意して、利用者からの接続を待っている
ポートスキャンは、このポートに順番にアクセスし、サーバ内で動作しているアプリケーションソフトやOSの種類を調べ、侵入口となりうる脆弱なポートがないかどうか調べる行為
ポートスキャンの結果、セキュリティホールが発見されると、侵入用のプログラムを使って不正侵入を行うことが多い
目的
以下のサービス(メールのやり取りやHPデータの送信等)を探す
- セキュリティ上問題のあるサービス
- 既知のセキュリティホールを持つサービス
サービス名 | ポート番号 | 概要 |
---|---|---|
telnet | 23 | Telnet |
tftp | 69 | 簡易FTPサービス |
pop3 | 110 | メール受信 |
sunrpc | 111 | SUN Remote Procedure Call |
epmap | 135 | DCE準拠のRPC |
netbios-ns | 137 | NETBIOS名前サービス |
netbios-dgm | 138 | NETBIOSデータ通信 |
netbios-ssn | 139 | NETBIOSセッション通信 |
snmp | 161 | SNMP(ネットワーク管理) |
sumptrap | 162 | SNMP(ネットワーク管理:異常報告) |
microsoft-ds | 445 | ダイレクトホスティングSMBサービス |
rexec | 512 | UNIX環境のリモートコマンド実行 |
rlogin | 513 | UNIX環境のリモートログインサービス |
rsh | 514 | リモートチェル(TCP) |
syslog | 514 | シスログ(UDP) |
ms-sql-s | 1433 | Microsoft SQL Server |
ms-sql-m | 1434 | Microsoft SQL Monitor |
nfs | 2049 | Network File System-Sun Microsystems |
実行方法
Telnetクライアントなどを使用して行うことも可能だが、無償で公開されているツールを使用するケースが大半。代表的なツールはNmap、Zenmapなど
Nmap(Network Mapper)
オープンソースで開発・提供されているポートスキャンツール。OSが提供するソケット機能を利用するだけでなく、ポートスキャンに使用するパケットを独自に生成することで、高速なポートスキャンやファイアウォール/IPS(侵入検知システム)で保護されたサーバに対するポートスキャンを可能にしているのが特徴。また、対象とするホストの挙動からそのOSやバージョンと行った情報を推測、稼働しているサーバーソフトウェアの種類やバージョンを取得する、いった機能も備えている。
スタックフィンガープリンティング
サーバOSを推測する手法のこと
バナー・チェック
サーバ上で利用されているアプリケーションの名称やバージョン番号を調査すること
種類と仕組み
方法 | TCP/UDP | 概要 |
---|---|---|
TCP スキャン | TCP | 標的ポートに接続し、3wayハンドシェークと呼ばれる SYN−SYN/ACK−ACKのシーケンスを実行する 被攻撃サイトにおいてスキャン行為の検出は容易 |
SYN スキャン | TCP | 完全なTCP接続を行わないスキャン手法 ハーフオープンスキャンまたはステルススキャンと呼ばれる 接続するかわりに、SYNパケットを標的のポートに送信する ターゲットホストのログには記録されない ・標的ポートからSYN/ACKを受信した場合、アクティブ状態 ・標的ポートからRST/ACKを受信した場合、非アクティブ状態 |
UDP スキャン | UDP | 標的ポートにUDPパケットを送信 パケットフィルタリングを施したディバイスに対するUDPスキャンは、比較的時間がかかる UDPの性質上、ネットワーク越しにスキャンを行う場合の信頼性は非常に低くなる ・応答なしの場合、アクティブ状態 ・"ICMP port unreachable"を受信した場合、非アクティブ状態 |
FIN スキャン | TCP | FINフラグをONにしたパケットを送信する手法 この手法は、UNIXのBSDソケットにしか通用しない ・標的ポートからRST/ACKを受信した場合、非アクティブ状態 |
ACK スキャン | TCP | ACKフラグをONにしたパケットを送信する手法 サービスが提供されていない場合、TCPヘッダーのウィンドウサイズが0となり、ポートが開いているかどうかを判断する ファイアウォールのフィルタリング状況を確認するために使われる |
クリスマス ツリー スキャン | TCP | 標的ポートに、FIN、URG、PUSHパケットを送信する手法 この手法は、UNIXのBSDソケットにしか通用しない ・標的ポートからRST/ACKを受信した場合、非アクティブ状態 |
NULL スキャン | TCP | 全てのフラグを"0"にするスキャン手法 この手法は、UNIXのBSDソケットにしか通用しない ・標的ポートからRST/ACKを受信した場合、非アクティブ状態 |
対策
予防・防止
- 不要なサービスを停止する(ポートを閉じる)
- OS・アプリケーションのバージョンを最新化し、パッチを適用する
- 脆弱性検査を実施し、セキュリティホールが塞がれていることを確認・対処する
- ファイアウォールなどによって不要なポートへのアクセスを遮断する
検知・追跡
- ネットワーク監視型IDS、ホスト監視型IDS、IPSなどを用いて検知する
- ファイアウォールのログから検知する
- ホストのログから検知する(TCPコネクトスキャンの場合)
※各ポートへのアクセスを連続ではなくある程度の時間を空け、かつポート番号をランダムに選択して行われた場合、検知が非常に困難である
回復
予防・防止対策が万全であれば特に問題なし
 

