ポートスキャンをスキャンしてみた


概要

ポートスキャンについて調べてまとめてみた。

ポートスキャンとは

ネットワークに繋がっているポートのうちどれが通信可能になっているかを見つけることである。

ポートとは

データがネットワークからパソコンに入るときのドア。
機器の接続口。

ポートは0~65535番まで存在する。

ウェルノウンポート番号

0~1023番をウェルノウンポート番号といい、IANAによって管理されている。すでに振り分けられている。

レジスタードポート番号

1024~49151番はレジスタードポート番号といい、これもIANAで管理されている。IANAが登録を受け付けている。

その他のポート番号

ユーザが自由に使用できるのは49152~65535番

有名なポート番号

こちらによくまとまっている。
http://e-words.jp/p/r-wellknownports.html

ポートスキャンの種類

TCPスキャン(Vanilla Scan)

3ウェイハンドシェイクを確立することで、ポートの状態を確認する。
コネクションが確立するため、ターゲットサーバのログに記録される。

SYNスキャン

コネクションを確立しないでポートの稼働状態を確認する方法。
ステルススキャン、ハーフオープンスキャンともいう。ターゲットホストのログには記録されない。応答結果がSYN/ACKのときは、アクティブ状態で、RST/ACKの時は非アクティブ状態であると判断する。

FINスキャン

FINパケットを送り、RSTパケットを受信したらアクティブ、何も受信しなかったら非アクティブと判断する。

クリスマスツリースキャン(XMAS scan)

FIN,PSH,URG(緊急確認)のフラグを全てONにしたパケットを送信し、RSTを受信したら非アクティブ、何も受信しなかったらアクティブとする。

NULLスキャン

全てのフラグをOFFにしたパケットを送信し、RSTパケットを受信したら非アクティブ、何も受信しなかったらアクティブとする。

UDPスキャン

ターゲットにUDPパケットを送信し、応答なしならアクティブ、ICMP port unreachableを受信すると非アクティブと判断する。

FTP Bounce Scann

FTPサーバを中継して指定のホストへアタックやポートスキャンを実施する手法。現状ではほぼ利用不可能。

実際にしてみる

MACのネットワークユーティリティでポートスキャン

今回はnmapを使わずに、macのネットワークユーティリティでポートスキャンしてみます。
ローカルアドレス127.0.0.1を入力し、scanを押す。

次にLINEとSkypeを開けて再度ポートスキャンしてみる。

10400ポートが開いたので、ターミナルを分かる起動し、lsofコマンドで調べてみる。

% lsof -i:10400
COMMAND   PID   USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
LINE    19523 Tomoki   11u  IPv4 0xa2dbb30cec7973c1      0t0  TCP localhost:10400 (LISTEN)

10400ポートをLINEが使っているということが分かる。

kill <PID>と入力すると対象のプロセスが入力する。

% kill 19523

LINEが終了した。

ポートスキャンの対策

予防、防止

  • 不要なサービスを停止し、ポートを閉じる。
  • OS、アプリケーションを最新化し、パッチを適用する。
  • 脆弱性検査を実施し、セキュリティホールが塞がれているかを確認する。
  • ファイアウォールなどで不要なポートへのアクセスを遮断する。

検知,追跡

1ポートごとにある程度の時間を空け、ポート番号をランダムに選択して行われると検知は非常に困難。

  • ネットワーク監視型IDS,ホスト監視型IDS,IPSの利用
  • ファイアウォールのログから検知する。
  • ホストのログから検知する。