dooo

得意分野よりも、勉強中の内容を書きたい

ポートスキャン

ポートスキャンとは

一般的にはターゲットのホスト上で開いているポートを探すこと。

広い意味では以下のものも含む。

バナーチェック(バナー取得)

アプリケーションが返す情報(=バナー)からアプリケーション名やバージョンを確認すること。

スタックフィンガープリンティング

ターゲットホストのOSの種類やバージョンを確認すること。

稼働しているアプリケーションの種類や応答の内容から推定する。

目的

  • 侵入・攻撃に使用できるサービスが、インターネットから利用可能になっているか調べる。たとえばイントラでは使うTelnetなど。
  • 既知の脆弱性をもつソフトウェアが稼働しているか調べる。

ポートスキャンの手法

TCPコネクトスキャン

ターゲットのポートに対しTCP接続が確立するか確認する。(3wayハンドシェイクの最後まで行う)

接続を確立するのでサーバーのログに残る。

TCPハーフスキャン

TCP接続の確立はしない。そのためログに残らない。このようにログに残らないスキャンをステルススキャンという。

まずターゲットにSYNパケットを送る。応答がSYN/ACKならアクティブ、RST/ACKなら非アクティブである。

UDPスキャン

UDPはそもそもコネクションを確立しないため、次のような手順となる。

データを送り、応答がなければアクティブ、「ICMP port unreachable」が帰ってきたら非アクティブと判断する。

このような手順のため精度は低いが、アプリケーションによっては特定の応答を返すので、それを利用すれば制度は高まる。

その他のスキャン

以下はすべてステルススキャン。

TCP ACKスキャン ACKフラグをONにしたパケットを送り、反応からポートの状態を判別する。
TCP FINスキャン 標的にFINパケットを送信するスキャン手法。 標的ホストは、RFC793に基づき、 クローズした全てのポートにRSTを送り返さなければならない。この手法は、UNIXBSDソケットにしか通用しない。
TCP クリスマスツリースキャン 標的ポートに、FIN、URG、PUSHパケットを送信するスキャン手法。FINスキャン同様、標的ホストはクローズした全てのポートについてRSTを送り返さなければならない。
TCP NULLスキャン 全てのフラグを"0"にするスキャン手法。FINスキャン同様、標的ホストはクローズした全てのポートについてRSTを送り返さなければならない。

対策

予防・防止
検知・追跡
  • IDS(侵入検知)
  • IPS(侵入防御-遮断まで行う)
  • ログから検知する(ホストのシステム・ファイアーウォール)

IPS・IDSはステルススキャンに対しても効果的。ただし、連続したアクセスではなく、時間を空けつつランダムにポートをスキャンされた場合は検知が困難。

回復

ポートスキャンは攻撃の準備なのでそれだけで損害はない。したがって回復処置は特にない。予防・防止を確実に行うことが大切である。