浸入の事前調査での作業はスキャン(scan:調べる。走査する)と呼ぶことがあります。
ネットワークから浸入する場合であれば、
サーバーのIPアドレススキャンと、
ポートスキャンがあります。
(調べるだけなら違法行為になりません。
Javaで作成した実験用スキャナ)
また、バナーチェックも、浸入の事前調査に使われる場合があります。
なお、ポートスキャンやバナーチェックを含めた
ターゲットサイトの脆弱性一連の調査では
セキュリティスキャナと呼ばれるソフトが使われます。
しかし、それらは悪意を持つ者にも使われているのが現状です。
公開されている情報を手がかりに、ドメイン名から、IPアドレスを調べます。
例えば、Unixのwhoisコマンドで、ドメイン登録者情報が得られます。
(whoisは、WHOISサーバに接続して検索するものです。これは、RFC 3912
のWHOIS Protocol Specificationが利用されています。)
また、nslookupコマンドでもドメイン名からIPアドレスが得られます。
そして、得られたIPアドレスに近いアドレスへ、pingなどのコマンドで
パケットを送り、応答メッセージから公開していないマシン見つける方法などがあります。
実験用や、古いサーバーが接続可能なままになっていると絶好のターゲットに
なるので、放置しないようにしなければなりません。
特定のIPアドレスのサーバーマシンに対して、接続可能なポートがあるか調べるものです。
具体的には、接続を試みるTCPのパケットの接続先ポートを変化させて順次に送り、
その応答パケットから利用できるソフトが動いているかを調べます。
この時、接続完了まで行わないで行うスキャンを、
ステルススキャンやハーフオープンスキャンと呼びます。
なお、セキュリティ対策として、不用意に空いているポートがないかを
調べるポートスキャン用ツール、
Nmap
(“Network Mapper”)が有名です。
これはネットワーク調査およびセキュリティ監査を行うためのオープンソースツールで、
スタックフィンガープリンティング(Stack Finger Printing)の機能も持っています。
スタックフィンガープリンティングとは、
ホストに使われているOSの種類を特定する行為で、
不正なパケットを受信した場合の応答の仕方の違いなどにより、
OSの種類や候補を絞り込みます。
なお、UDPにおけるスキャンも存在します。
UDPではコネクションは確立出来ません。ですが、ICMP
を利用したスキャンができます。
ターゲットポートにパケットを送って、
「あて先port到達不能( port unreachable )」が戻れば、ポートは開いていないと判断する手法です。
応答がなければ、相手で何かが動作していると判断できます。
サーバーは接続に対して、自身のプログラム名やバージョンを、
応答メッセージに含めます。
このメッセージをチェックすることをバナーチェックと呼びます。
WEBサーバーに接続して、デフォルトページを要求した時の応答メッセージ例を示します。
この場合は、Microsoft-IISサーバーで、バージョン5.0であることが分かります。
HTTP/1.1 200 OK Server: Microsoft-IIS/5.0 Content-Location: http://192.168.10.101/Default.htm Date: Tue, 04 Jul 2006 08:10:01 GMT Content-Type: text/html Accept-Ranges: bytes Last-Modified: Tue, 24 Jan 2006 02:03:27 GMT ETag: "a4fe915d8a20c61:a57" Content-Length: 1915
この応答メッセージに記載されるサーバーのバージョンが、 仮にセキュリティホールがある場合は、そこが狙われることになります。