分かりやす〜い
コンピュータ技術情報

TOPに戻る
▼Network
ポートスキャン
┣ 通信開始
┣ スリーウェイ・
┃ ハンドシェイク

┣ ポートNo.
┣ RST
┣ 実際に行ってみる
┣ SYNスキャン
┣ FINスキャン
┣ Nortonのログ
┗ 危険性

Copyright(C) 2001-2003.ugpop. All rights reserved.




■デジタル用語辞典:
■ 危険性 ■

前回はNortonPersonalFirewallが表示するメッセージについて
説明しました。

前回まででこの講座を終了しても良かったのですが、最後に
「ポートの情報を得たから何なんだ?」と思われた方もいらっ
しゃるかもしれません。

ポートスキャンとは、複数のポートに対して接続を試み、どの
サービスが稼動しているのかを判定する行為の事でした。

それでは、どのサービスが稼動しているのか判定されてしまう
と何が危険なのでしょうか?

今回はポートスキャンの危険性について説明します。

まず、ポートの情報を得る事により、非常に有効にクラック行
為が行なえます。


【注意】
以下にクラック行為を行う例を示しますが、あくまで1つの例
だという事を認識しておいてください。
また、以下の行為を悪用すると犯罪となる場合もありますので、
絶対に行わないようにしてください。


ある性格の悪いクラッカー^^;)がいて、どこかに存在している
コンピュータに嫌がらせを行なおうとしているとします。

このクラッカーは初めにどのサービスが稼動しているのかポー
トスキャンを試みます。

ポートスキャンを行う為のツールとしては「nmap」というのが
1番有名です。

Insecure NMAPダウンロードページ
>>> http://www.insecure.org/nmap/nmap_download.html


試しにポートNo1〜100番までポートスキャンを行なって
みたとしましょう。

この結果、ポートNo20・21・23が稼動していたとしま
す。

ポートNo20・21というのはFTP(File Transfer Protocol:
ファイルを転送するサービス)を表します。
また23はTELNET(TELecommunication NETwork:遠隔地からの
リモート操作を可能にするサービス)を表します。

クラッカーはこの結果を見てTELNETを起動します。
DOSプロンプトやSHELL等から「TELNET」と入力します。

> telnet xx.xx.xx.xx
     ~~~~~~~~~~~
       ↑
     相手のサーバーのIPアドレス

相手のサーバーのTELNETサービスが開始され、以下の様な応答
が返ってきます。


SunOS UNIX (xxxx)

login:


ここでクラッカーはログイン名に「root」と入力し、いくつか
のパスワードを入力して侵入を試みますが、失敗に終わります。
しかし、ただ失敗して諦めるわけではなく、TELNETの情報から
次の様な情報を入手できました。


SunOS UNIX (xxxx)
~~~~~~~~~~
login:↑
   │
サーバーが使用しているOS名


ポートスキャンによりFTPサービスが稼動している事が分かっ
ているので、次にクラッカーはFTPサーバーに進入を試みます。
DOSプロンプトやSHELL等から「FTP」と入力します。


> ftp xx.xx.xx.xx
   ~~~~~~~~~~~
    ↑
  ★相手のサーバーのIPアドレス


相手のサーバーのFTPサービスが開始され、以下の様な応答が
返ってきます。



Connected to xx.xx.xx.xx
220 xxxx FTP server (SunOS 4.1) ready.
User (xx.xx.xx.xx:(none)):


ここでクラッカーはいくつかのユーザー名とパスワードで侵入
を試みますが失敗に終わります。
しかし、ただ失敗して諦めるわけではなく、FTPの情報から次
の様な情報を入手できました。


Connected to xx.xx.xx.xx
220 xxxx FTP server (SunOS 4.1) ready.
User (xx.xx.xx.xx:(none)): ~~~
              ↑
          ★OSのバージョン


OS名とOSのバージョンが分かりました。

次にクラッカーはセキュリティ情報データベースに接続します。

セキュリティ情報データベースとは、過去に見つかったさまざ
まなソフトウェアの脆弱性情報を格納しているデータベースの
事で、一般に広く公開されています。

1番有名な所ではSecurity Focusがあります。

>>> http://www.securityfocus.com/


クラッカーが狙いをつけたサーバーは「SunOS」のバージョン
「4.1」という事が分かっています。

試しにこの情報をセキュリティ情報データベースで検索してみ
ます。

>>> 脆弱性情報検索

 http://www.securityfocus.com/bid


このサイトは「Vendor」「Title」「Version」を入力して検索
が行えるようになっています。

そこでポートスキャンにより得た情報からそれぞれの項目を以
下の様に入力します。

Vendor :Sun
Title :SunOS
Version:4.1

これにより検索が行われ、以下の様に検索結果が表示されまし
た。

─↓ここから──────────────────────

2002-08-01: Multiple Vendor PCNFSD Remote Command Execution Vulnerability
2002-08-01: Multiple Vendor PCNFSD Symbolic Link chmod Vulnerability
1999-06-01: SunView selection_svc Vulnerability
1999-06-01: SunOS TIOCCONS Vulnerability
1999-06-01: SunOS /bin/mail Vulnerability
1999-06-01: SunOS in.telnetd Vulnerability
1999-06-01: SunOS /usr/release/bin/makeinstall Vulnerability
1999-06-01: SunOS /usr/release/bin/winstall Vulnerability
1999-06-01: SunOS rpc.mountd Vulnerability
1999-06-01: SPARC integer division Vulnerability
1999-06-01: Multiple Vendor rdist(1) Vulnerability (1991)
1999-06-01: SunOS LD_LIBRARY_PATH and LD_OPTIONS Vulnerability
1999-06-01: SunOS ypserv domain guessing Vulnerability
1999-06-01: SunOS NFS large uid mismatch Vulnerability
1999-06-01: SunOS SPARC integer division Vulnerability
1999-06-01: SunOS SPARC integer multiplication Vulnerability
1999-06-01: SunOS ICMP Redirect Vulnerability
1999-06-01: SunOS kmem setgid /etc/crash Vulnerability
1999-06-01: SunOS arp(8c) Memory Dump Vulnerability
1999-06-01: Multiple Vendor rpc.ypupdated Vulnerability

─↑ここまで──────────────────────

検索の結果、このデータベースには「SunOS」のバージョン
「4.1」について過去に見つかった脆弱性情報が20件登録さ
れている事が分かりました。

それぞれの脆弱性情報を見ていくと、脆弱性のあるサーバーの
乗っ取り方法が詳細に書かれている物もあります。

例えば以下の様なものがありました。

SunOS LD_LIBRARY_PATH and LD_OPTIONS Vulnerability
─↓ここから──────────────────────

$ mkdir /tmp/mylib
$ cp libevil.so /tmp/mylib
$ export LD_LIBRARY_PATH=/tmp/mylib
$ /bin/login
#

─↑ここまで──────────────────────

UNIXに詳しい方は上記の例を見ただけで、この脆弱性の危険度
の高さが分かると思います。
(よく分からないという方の為に、1番左端にある「$」はプ
ロンプトと呼ばれており、UNIXの場合はプロンプトを見ると、
その人の持っている権限が分かります。「$」は一般ユーザー
で、誰でもなれるゲストユーザーの様なものだと思ってもらえ
れば良いと思います。途中でプロンプトが「#」に変わってい
ますが、「#」というのはスーパーユーザを表しています。ス
ーパーユーザというのは、何でも出来る権限を持った人の事で、
Windowsでは「Administrator」の権限を持った人の事です。)

また、この他にもサーバー乗っ取りを行う為のプログラムが掲
載されている例もありました。

他にもさまざまな乗っ取り例が掲載されていましたが、この講
座では紹介しません。


あなたはこれらの情報をどう利用するでしょうか?

ポートスキャンを起点として収集されたOS名やバージョン情
報等は、この様に脆弱性の情報を得る為の手段となってしまう
のです。

ポートスキャンによりOS名やバージョン情報等を収集されな
いようにするには、「バナー」を表示しない設定にしておく必
要があります。

「バナー」というのはTELNETやFTP等の各種サービスが開始さ
れる時に表示される情報の事です。


SunOS UNIX (xxxx) ←●バナー
login:


Connected to xx.xx.xx.xx        ←●バナー
220 xxxx FTP server (SunOS 4.1) ready. ←●バナー
User (xx.xx.xx.xx:(none)):


これらバナー情報を表示しないように設定するだけで、ある程
度情報が漏れてしまうのを防ぐ事が出来ます。

ただし、バナーを表示しないようにするだけでは不十分です。
何故かと言うと、ポートの使用状況を見るだけで、ある程度サ
ーバーが何のOSを使用しているのかが特定できるからです。

例えば、「FINスキャン」というのは、実はBSD系UNIXでし
か行えませんが、逆に言うと「FINスキャン」によるステル
ススキャンが行えた場合、それだけでそのOSはBSD系UNIXな
のだな、と分かる事になります。

また、ポートNo.137がサービス提供中だったとすると、それだ
けでそのOSはWindowsなのだな、と分かる事になります。
ポートNo.137はNETBIOSという、Windows上でファイル共有を行
う為のポートだからです。

この様に、ポートの使用状況に特徴がある事を、「スタック・
フィンガー・プリンティング」といいます。

「フィンガー・プリンティング」とは「指紋」という意味です。

ポートの使用状況は指紋の様に各種OSで異なっており、その
使用状況の特徴を見る事でOSが特定できる場合があるのです。

「スタック・フィンガー・プリンティング」でOSを判定され
るのを防ぐには、そのOS特有のサービスを停止するか、ファ
イアウォール等で特定の人からのアクセスだけを許可するよう
に設定する等の方法があります。

また、最近では「Ping」に応答しないようにする設定を行える
サーバーもあり、これによりサーバーの存在自体をある程度隠
してしまう事も出来ます。


以上のようにしてクラッカーはターゲットとなるコンピュータ
をのっとってしまいます。

ここで、当然こんな事をするクラッカーは悪いのですが、クラ
ッカーに対して止めてくれ、と言ったところで止めるのでしょ
うか?
第一、そんな事誰に言えば良いのでしょうか?

セキュリティ業務に携わっている管理者は、一般ユーザーに対
しセキュリティ意識を啓発していく義務があります。

逆にこれを行っていない場合、悪意を持ったクラッカーからセ
キュリティ意識の低い会社、だとして狙われやすくなってしま
うかもしれません。

あなたの会社はセキュリティについての教育など、何らかの啓
発が行われた事があるでしょうか?



 参考文献: http://www.zdnet.co.jp/help/howto/security/j02/index.html



▲このページの上へ

▲このページの上へ

←前に戻る    ▲このページの上へ

▲このページの上へ