Tales of Verifier

テストエンジニアが自分の将来に不具合が起こらないことを確かめ合うRPG

2.2 ポートスキャン

情報処理教科書 情報セキュリティスペシャリスト 2013年版

情報処理教科書 情報セキュリティスペシャリスト 2013年版

2.2 ポートスキャン

ポートスキャンとは

ターゲットとなるホスト上で開いている(通信可能な状態となっている)ポートをスキャン(探索)すること

なにがわかるの?

ポートに対応したアプリの情報や動いてるアプリの情報、OSの種類やらバージョンやら。

なにがうれしいの?

攻撃対象の情報を得られれば攻めどころがわかる(セキュリティ上問題のあるサービスが動いていることがわかればそこから攻められる)*1

どうやってやるの?

ツールがいろいろある。
ここではnmapというのが紹介されていたので、入れてみた。


nmapを使ってみよう

nmapのインストール

こちらから
Nmap - Free Security Scanner For Network Exploration & Security Audits.

f:id:yoshikiito_el:20130114163959j:plain
Mac用のをインストール

f:id:yoshikiito_el:20130114164011j:plain
特に変わった操作は必要ない。

localhostをポートスキャンしてみる

f:id:yoshikiito_el:20130114164018j:plain

nmap -v localhost

とすると、ずらずらっと結果が出てくる。
localhostにやってもつまらない気が・・・自分でサーバー用意してやってみたほうがいいのかな?

OSのバージョンも調べてみる

f:id:yoshikiito_el:20130114164023j:plain

sudo nmap -v -O localhost

ここではsudoなしで一度やって、rootになれって怒られた。
よくよく調べてみると、一部を除いてnmapでは管理者権限がいるらしい。
OSのバージョンが出てるんだけども、コレが今のOSのバージョンと違う・・・
MacOS 10.8.2を使っているのに、表示はMacOS 10.8.1になっている。
どういうことだろう。

ポートスキャンの種類

TCPコネクトスキャン

3-wayハンドシェイクでTCPコネクションが確立できるかを見る
コネクションが確立できると、相手にログが残るのでバレる

TCPハーフスキャン

コネクトスキャンと違い、相手サーバーからの応答に対してACKを返信しない。(RSTを返信)
コネクションを確立しないので相手のログに残らない。ステルススキャンとも。

UDPスキャン

精度低め

ポートスキャンへの対策

  • 要らないサービスの停止(ポートを閉じる)
  • 脆弱性への対応
  • IPS, IDSを使う

など

=>いろんなポートにランダムに、しかも時間を開けてポートスキャンをされると検知が困難

*1:でいいのかな?