相手ホストにダメージを与える、もしくは侵入するといったとき、事前の準備として、ポートスキャンと呼ばれる調査を行います。これは「外部から対象サーバへアクセスが可能か?」「脆弱性のあるサービスが動いていないか?」を調べる作業です。
サーバにはいくつものサービス(メールのやり取りやホームページデータの送信等)がありますが、中には脆弱性を含むサービスがあり、これらを不用意に稼動すると、それらを突かれて侵入を許す場合があります。
攻撃を目論むクラッカは、まず対象サーバでどのサービスが稼動しているかを調べます。サービスはポートと呼ばれる接続口(実際にサーバに穴があるわけではないのですが、概念として1番から65535番までの接続口が開いていると考えてください)を通して提供されおり、基本的にどのサービスが何番のポートで提供されているかが決まっているため、アクティブになっている(開いている)ポートを見つければ、稼動中のサービスが何であるかの判断がつきます。たとえば、80番が開いていれば、そのサーバはhttpサービスが稼動しているとか、110番ならばPOP3のメール受信サービスが稼動していることが分かります。
そして、アクティブなポートを見つけるために、通例ポートスキャンと呼ばれる調査を行います。
ポートスキャンを実施して、アクティブになっているポートが見つかり、それが既知の脆弱性を持つサービスであれば、侵入や破壊行為へクラッキング行為は移行します。逆に言えば不要なサービスを全部停止してしまえば(不必要なポートを塞いでしまえば)、ポートスキャン対策になります。
元来ネットワーク管理者がポートの状態確認のために行う調査ですが、クラッカは侵入前調査のためにこれを悪用しているのです。
では実際にポートスキャンはどのようにして行われるのでしょうか。
ポートスキャンツールがアンダーグラウンドで出回っており、多くのクラッカ及びクラッカ予備軍はこれらのツールを使っています。こうしたツールはインターネットに公開されているサーバ群をIPアドレス番号順に「ポートスキャン」し、脆弱性を抱えたサーバを見つけるとアラートを出します。
例:
201.1xx.4xx.xx1
201.1xx.4xx.xx2
201.1xx.4xx.xx3 ・ ・ ←グローバルIPアドレスの順番にスキャンする
産業スパイや怨恨によるクラッキングのような、攻撃対象を決めて攻撃を行うクラッキングだけでなく、以前から「クラックできそうなサーバをクラックする」傾向もあり、あまりサイトの質や企業名を気にして攻撃はしていません。こうした考えのクラッカは、IPの数字の列を狙ってポートスキャナを自動モードで作動させ、セキュリティの甘いサーバが引っかかるのを待ちます。
ポートスキャンツールは、IPアドレスを無差別スキャンするので、サイトの規模や有名性、公共性とは無関係に攻撃を受けるのです。
ポートスキャンにはいくつかの方法があります。どれもTCP/IPの特性を利用したものです。
「TCPスキャン」は対象サーバのポートに接続するためにアクセスログが残ってしまいます。スキャンツールの多くがこのタイプになります。これを避ける手法に「スティルススキャン」があります。
「スティルススキャン」はスキャニングをした際のサーバの応答を見てポートの状態を確認します。接続を行わない手法のため、アクセスログが残らず発見されにくいという特徴があります。SYNスキャン、FINスキャンと呼ばれる手法等がこれにあたります。
|
ポートスキャンの主な方法 |
||
|
方法 |
TCP/UDP |
概要 |
|
TCPスキャン |
TCP |
標的ポートに接続し、3wayハンドシェークと呼ばれるSYN-SYN/ACK-ACKのシーケンスを実行します。 |
|
SYNスキャン |
TCP |
完全なTCP接続を行わないスキャン手法です。ハーフオープンスキャンまたはスティルススキャンと呼ばれています。接続するかわりに、SYNパケットを標的のポートに送信します。
|
|
FINスキャン |
TCP |
標的にFINパケットを送信するスキャン手法です。 標的ホストは、RFC793に基づき、 クローズした全てのポートにRSTを送り返さなければなりません。 |
|
クリスマスツリースキャン |
TCP |
標的ポートに、FIN、URG、PUSHパケットを送信するスキャン手法です。FINスキャン同様、標的ホストはクローズした全てのポートについてRSTを送り返さなければなりません。 |
|
NULLスキャン |
TCP |
全てのフラグを"0"にするスキャン手法。 |
|
UDPスキャン |
UDP |
標的ポートにUDPパケットを送信。標的ポートが "ICMP port unreachable" というメッセージで応答したポートはクローズされているとみなします。 |
スタックフィンガープリンティングとは、ホストのOSを特定する行為です。
OSが特定されるとその攻撃方法の範囲が決まります。以下で紹介するnmap は元々管理用として作成されたものであり、自組織内部で利用するものです。管理用のツールによってポートがオープンされていなくてもOS特定が可能となります。
サーバ側でポートスキャンの状況をロギングしにくい方法があります。この方法の一つがAnonymous FTPを使用したポートスキャンです。
FTPは、コマンドとデータの通信では異なるポートを利用します。これによって、ロギング上ではFTPの利用として見える訳なのです。
しかし、下記のように500番代のエラーを返すFTPサーバのソフトウェアを使用するか、 設定を加えることでFTPによるポートスキャンは回避することができます。
このようにあらゆる手法によってポートスキャンが行われています。
注意してログ等を確認しないと気づかないこともあります。そして、ポートスキャンを受け発見された弱点から攻撃や踏み台として利用されるのです。
(1)UNIX、Linux、MacOS X Server
MacOS XもBSD系のOSであるため、UNIXやLinuxと同様の注意が必要です。これらUNIX系のOSの場合、不要なポートは当然すべて閉じなくてはなりませんが、特に111番ポートのrpcサービスは管理者権限を奪われる危険性があります。また79番ポートのfingerもサーバのユーザ情報を抜き取られる脆弱性を持っています。
(2)Windows 2000 Server、XP Server
Windows OSで留意すべきポートは、やはり137番と139番のNetBIOSでしょう。このポートが開いていると、サーバ名やIIS情報、稼動中サービス、ドメイン等、ほとんどのサーバ情報を閲覧される危険性があります。
| 前へ | ホームへ | 次へ |
© 2002 Information-technology Promotion Agency, Japan. All rights reserved.