ポートスキャン
概要
ポートとは、インターネットで現在普遍的に使われている通信プロトコルであるTCPおよびUDPに用いられる、0から65535までの番号が振られた仮想的な情報の送受信口である。
通信の目的によって、利用されるポートは決まっている。例えば、ウェブサイトの閲覧では、パソコンとサーバはPort80で情報をやりとりしている。また、POP3で電子メールを受信する際にはPort110が用いられ、SMTPによるメールの送信にはPort25が用いられている。一方で、用いられていないポート番号もあるし、ソフトウェア開発者が勝手気ままに使っているポートも存在している。そのポートで送受信を行うプログラムに欠陥があるために、コンピュータセキュリティ上の危険性をはらんでいるポートも存在する。
これら多種多様なポートが通信可能な状態にあるかどうかを外部から調べるのが、いわゆる「ポートスキャン」と呼ばれる操作である。
欠陥のあるポート
有名な例としては、Windows95が動作しているパソコンでNETBIOS Session Serviceが使っているPort139にプログラム上で処理不能な文字列を送信するとOS自体がフリーズする問題と、WindowsXP/NT/2000の脆弱性（MS03-026）によりPort135にバッファオーバーランを引き起こして感染するMSBlastウイルスが爆発的な流行を見せた事件が挙げられる。現在は、これらの問題を回避する修正プログラムの適用が推奨されている。
OSの欠陥は、OS用の修正パッチによって改訂されるが、特定のポートを利用するソフトウェア（インターネットラジオのプレーヤーやインスタントメッセンジャークライアント等）に欠陥がある場合もある。
ポートスキャンとセキュリティ
ポートスキャンの本来の目的は、使用したいポートが通信可能であること、あるいは、使用していないポートが通信不能であることをコンピュータやルータの管理者が確認することである。例えば、Webサーバの管理者であれば、Port80で通信が可能であることを確かめる必要がある。また、使用していないポートを開けておくと、外部からの侵入を許す可能性がある。