特集「社内不正ユーザ撃退法」


Windows Server World 2003年8月号


本文書は、Windows Server World誌に寄稿した記事の原稿を、IDGジャパン編集部殿の許可を得た上で掲載したものです。




日夜不正アクセスと戦い続けるシステム管理者にとって、憎むべき敵は必ずしも外部の第三者とは限らない。さまざまな不正アクセス手法や、それを実現するためのツールが簡単に手に入る今日では、社内の一般ユーザが何らかの目的を持って、突如社内システムに対する攻撃を始めたとしてもなんら不思議ではない。

特に社内ネットワーク環境は、利便性を優先させるがためにセキュリティがおろそかになっている場合が多い。これはネットワークセキュリティに限らず、入退室等の物理的なセキュリティにもいえる。

社内的な不正アクセスにはさまざまな動機が考えられる。単なる出来心や好奇心の場合もあるだろうし、会社や上司に対する不満が引き金になることもあるだろう。あるいは明らかに金銭目的で機密情報を入手しようとするケースも想定される。このような不正行為をなくすためにまず必要なことは、心理的な歯止めをかけることだ。つまり、やってはいけないということ、やった場合にどのようなペナルティがあるかということを認識させなければならない。そのためには、社内におけるセキュリティポリシーを確立し、それを周知徹底させることが重要となる。

その上でシステム管理者には、社内的な不正アクセスに対する技術的な対策を検討し、実施することが求められる。

本特集では、社内Windowsネットワークシステムを内部的な不正アクセスから保護するための方策について、成りすましアクセス編、ネットワーク盗聴編、不正アクセスツール編の三つに分けて解説する。




成りすましアクセス編


通常、保護すべき情報資産はアクセスを許可するユーザやPCを限定することにより、権限の無いユーザからのアクセスを防いでいる。そのためには、アクセス元を正しく識別し、認証することが重要となる。「成りすましアクセス」とは、このような情報システムの認証機構をあたかも正規のユーザであるかのごとく装って回避し、それにより本来アクセスすることのできない情報資産にアクセスすることを指す。

ここではユーザアカウントの成りすまし、および、PC(IPアドレス)の成りすましに関する話題を取り上げ、システム管理者が実行できる対策について述べる。

ユーザ認証の種類

一般的にコンピュータシステムのユーザ認証には次の三種類が存在する。

    1) その人が知っている「情報」に基づく認証  ... 暗証番号、パスワード、等
    2) その人が持っている「物」に基づく認証    ... ICカード、USBトークン、等
    3) その人の「身体的特徴/特性」に基づく認証 ... 指紋、掌形、網膜、虹彩、筆跡、等
    
Windowsシステムにおけるユーザ認証で最も一般的な手法は、上記の1に該当する「パスワード認証」である。パスワード認証では、システムのユーザアカウントに対して固定のパスワード文字列を登録しておき、ユーザはログオン時にパスワード文字列をシステムに対して与える。ユーザが入力したパスワード文字列がシステム上に登録されているものと合致した場合、システムはそのユーザのログオンを許可する。

「物」に基づく認証は、Windows 2000でスマートカード認証を標準的にサポートするようになってから、かなり導入のハードルが低くなったのではないだろうか。この場合、物理的にカードやUSBトークン等を所持していなければ認証を通過することができないため、成りすましてアクセスするためにはその「物」を何らかの方法で入手する必要がある。つまり「物」を奪われたり紛失したりしないかぎり、比較的強固な認証機構だといえよう。一般的には「物」に基づく認証は、暗証番号(PIN)と組み合わせて行う場合が多い。

3番目の「身体的特徴/特性」による認証は、コンピュータのログオンにおいては指紋認証が最も一般的だ。最近は指紋認証のための装置も低価格になってきているので、それなりに幅広く普及している。精度の問題、ユーザの抵抗感の問題と、解決すべき課題はまだあるが、一つの有効な認証手段としてますます定着していくだろう。

今後、PKI(公開鍵基盤)が普及していけば、秘密鍵の保管場所としてスマートカードやUSBトークンを使った認証機構がさらに広まっていくと考えられる。その場合、秘密鍵に対するアクセスにPINを使うのではなく、例えば指紋を使うといった具合に、「物」と「身体的特徴」を組み合わせた認証の仕組みがセキュリティ的には好ましい。

パスワード認証は手軽に低コストで導入できるため、古くから多くのシステムで採用されてきた。しかしパスワード認証のセキュリティは、基本的にはパスワードの複雑さに依存する。容易に推測できるようなパスワード(例えばユーザ名と同じパスワード)をユーザが設定した場合、第三者がそのユーザに成りすましてシステムに簡単にアクセスすることができてしまう。そのような単純なパスワードを設定することは稀だと思われるかもしれないが、特に社内システムにおいては、単純なパスワードを設定しているユーザというのは結構いるものだ。

ユーザ認証を確実なものにする一つの解決策は、パスワード認証をやめて、物あるいは身体的特徴/特性に基づく認証に切り替えることである。しかしコスト的な問題もあり、実際には難しい。それではどのようにしてパスワード認証のセキュリティを確保していけばよいであろうか。

パスワードポリシーを強制せよ

パスワード認証で成りすましを防ぐには、パスワードを他人に知られないようにする必要がある。稀ではあるがパスワード入力時に、声に出しながらキーボードをたたく人がいる。また覚えられないのか、付箋紙に書いてモニタに貼り付けているケースもある。こういうのは論外であるが、たとえ本人が秘密にしていても、そのパスワードが容易に推測可能なものであった場合、結果的に他人に知られてしまうことになる。

多くの場合、組織のセキュリティポリシーにはパスワードポリシーに関する規程がある。例えばパスワードは8文字以上、英数字と記号の組み合わせで、月に一度はパスワードを変更する、といった具合だ。しかしこのようなルールは、ユーザにとっては単に面倒なものであり、積極的に遵守しようという強い意志がない限り守れるものではない。つまり何らかの形で、ポリシーの遵守をシステム的に強制する必要があるのだ。

ここでは、Windows 2000においてパスワードのポリシーを強制させる方法について説明する。この手順は、Windows XP Professionalにおいても同様である。

スタンドアロンのWindows 2000でパスワードポリシーを設定するには、「コントロールパネル→管理ツール→ローカルセキュリティポリシー」を起動し、「アカウントポリシー」の中の「パスワードのポリシー」を選択する(図1)。


図1 パスワードのポリシーの設定ウィンドウ


「パスワードのポリシー」では、次の6項目について設定することができる。

1) パスワードの長さ
    パスワードの最低文字数を指定する。ユーザはこの文字数以上の長さのパスワードを設定しなければならない。
2) パスワードの変更禁止期間
    パスワードを変更してから次の変更までの最低日数を指定する。この期間内にはパスワードを変更することができない。
3) パスワードの有効期間
    パスワードを変更してからそのパスワードが有効である日数を指定する。この期間が経過するとユーザはパスワードの変更を強制される。
4) パスワードの履歴を記録する
    過去に使用したパスワードをいくつ記録しておくかを指定する。ここで記録されている間はそのパスワードを再び設定することができない。
5) パスワードは要求する複雑さを満たす
    この項目を「有効」に設定すると、それ以降に変更するパスワードは次の条件を満たさなければならなくなる。

    a) パスワードは6文字以上でなければならない
    b) パスワードはユーザ名やフルネームの一部を含んではならない
    c) パスワードは以下の4つの文字クラスのうち最低3つを含まなければならい

      - 英字の大文字(A, B, C, ...)
      - 英字の小文字(a, b, c, ...)
      - 数字(0, 1, 2, ...)
      - 記号(!, @, #, ...)
6) 暗号化を元に戻せる状態でドメインのすべてのユーザのパスワードを保存する
    この項目を「有効」に設定すると、パスワードはハッシュ化されず、もとの平文に戻せる形で保存されるようになる。(注:特に必要でない限り「有効」にすべきではない)
これらのパスワードポリシー設定は、ドメイン環境下ではグループポリシーオブジェクトにより、ドメイン全体、コンピュータごと、ユーザごとといったように柔軟に適用することができるので、社内のセキュリティポリシーに応じて適切に設定すればよいだろう。

また「アカウントポリシー」では「アカウントロックアウトのポリシー」として、ロックアウトのしきい値、ロックアウトカウントのリセットまでの分数、ロックアウト期間の分数を指定できる(図2)。これも社内ポリシーに応じて設定することにより、オンラインでのパスワードクラックを防ぐことができる。


図2 アカウントロックアウトのポリシーの設定ウィンドウ


パスワードを監査せよ

前述したようにシステム的に複雑なパスワードを設定することが強制されている場合、ユーザは単純なパスワードを選択することができないため、かなりの強度のパスワードが期待される。しかしシステム的な強制がない場合、パスワードの複雑さはそれを設定するユーザ個人個人に依存することとなる。そのようなケースでは、システム管理者による定期的なパスワード監査が有効である。

Windowsシステムにおけるログインアカウントのパスワードは、一方向関数によって処理(ハッシュ)した形式で保存されており、システム管理者といえども通常は元のパスワード文字列を知ることができない。そのため、パスワード監査には専用のツールを用いる必要がある。ここではWindowsのパスワード監査で比較的手軽に使用することができるLC4とCain & Abelを紹介しよう。

LC4
http://www.atstake.com/research/lc/
有償製品(評価版あり)

    LC4は@Stake社が開発・販売するパスワード監査製品である。もともとはL0phtCrackと呼ばれていたソフトウェアで、L0pht Heavy Industriesが開発していた。L0phtCrackの初期バージョンが公開されたのが1997年であるので、かれこれ6年前になる。L0phtCrackバージョン1.0は、Windowsのパスワードデータベース(SAMデータベース)から抽出したパスワードハッシュに対して、辞書攻撃およびブルートフォース(総当り)攻撃で元のパスワード文字列を探り出す機能のみを持っていた。次に公開されたバージョン1.5では、Windowsネットワークログオンの際にクライアントとサーバ間で交換される、チャレンジ・レスポンスの情報に対するパスワードクラック機能が追加された。その後、ネットワークスニッフィング機能の追加やGUIの改良などが行われ、現在のバージョン4に至っている。

    LC4の実行例を図3に示す。


    図3 LC4の実行結果の例


    最新版のLC4は、次のような機能を持つ。

      - パスワードハッシュの取り込み機能
          . ローカルマシンからのインポート
          . リモートマシンのレジストリからのインポート
          . SAMファイルからのインポート
          . ネットワーク認証のスニッフィング
          . 旧バージョンのLCファイルのインポート
          . PWDump形式ファイルのインポート
      - パスワードクラッキング機能
          . ユーザ名での試行(デフォルトで常に実行)
          . 辞書を用いたクラック
          . 辞書の単語の前後に数字や記号を付けたハイブリッドクラック
          . 英字、数字、記号によるブルートフォースクラック
      - 分散処理機能
          . 複数のPCを使用してクラックする分散処理機能
    
    LC4がインストールされているマシンのパスワードハッシュをクラックするには、メニューの「Import」から「Import From Local Machine」を選択すればよいのだが、リモートホストのパスワードハッシュを調べる場合は、そのマシンがWindowsのSYSKEY機能を使ってパスワードハッシュを保護しているかどうかでインポートの方法が異なる。リモートホストがSYSKEY機能を使っていない場合(Windows NT4.0以前のデフォルト)、リモートホストに管理者権限でネットワークログオンした状態でメニューの「Import」から「Import From Remote Registry」を選択し、IPアドレスを指定することでそのホストからパスワードハッシュを取得することができる。しかしSYSKEY機能を使っている場合(Windows 2000、XP、2003のデフォルト)はこの方法では取得できない。別途、PWDump3[1]等のツールを使い、パスワードハッシュを取得してテキストファイルに保存してから、メニューの「Import From PWDUMP File」を用いてインポートすることになる。ちなみにPWDump3を使ってリモートホストからパスワードハッシュを取得する場合は、ネットワークを流れるパスワードハッシュを第三者に盗聴されないようにするため、暗号化機能が追加されたPWDump3eを使用することが推奨される(図4)。


    図4 PWDump3eを使用してリモートホストのパスワードハッシュを取得


    LC4のパスワードクラッキング機能のうち、「ハイブリッドクラック」は例えば単語の後に数字の「00」を付けたようなパスワードを検出してくれる。一般的にユーザは、覚えやすくかつ数字や記号が混ざったパスワードを設定する際に、このように単語の前後に1〜3文字程度の数字や記号を付ける場合が多い。このようなパスワードは、システム的なパスワードの制限(英数記号を取り混ぜる、等)はパスするものの、実際は推測が比較的容易であるため好ましくない。ハイブリッドクラックはこういったパスワードを短時間で検出するため、非常に有効である。

    図5はクラッキングのオプションとして、辞書クラックとハイブリッドクラック(後置2文字)を指定したところを示している。(注:LC4ではブルートフォースクラックは製品版でのみ使用できる)


    図5 辞書クラックとハイブリッドクラック(後置2文字)を指定


Cain & Abel
http://www.oxid.it/cain.html
フリーソフトウェア

    Cain & Abelはフリーのパスワードクラックツールだが、Windowsのログインパスワード以外にも、Cisco IOS、APOP、VNC等、非常に数多くのパスワード情報のクラッキングに対応している。また各種のパスワードに特化したネットワーク盗聴機能や、ARPキャッシュ・ポイゾニング機能(後述)も持っており、さらにWindowsのLSAシークレット(ダイアルアップのパスワード等)やProtected Storage(IEのオートコンプリート等)の情報を表示することもできる。

    Cain & Abelの「Cain」の方はツール本体で、「Abel」はリモートエージェントプログラムだ。CainはAbelを管理者権限のあるリモートホストに送り込み、Abelはリモートホストのパスワードデータ等を取得してCainに転送する。このようにしてCainは複数のリモートホストからデータを受け取り、パスワードをクラックすることができるのである。

    図6はCainでローカルホストのパスワードハッシュをクラックした実行結果を表している。Cainは複数のアカウントを一括してクラックすることができないため、一つ一つアカウントを選択して実行する必要がある。


    図6 Cain & Abelの実行結果の例


    CainにはLC4と同様に、ネットワークトラフィックをモニタリングしてWindowsネットワークログオンのチャレンジ・レスポンスデータを取得し、そのデータを基にパスワードクラックを実行する機能がある。図7はネットワークモニタリングにより、Windowsネットワーク認証(SMB認証)のチャレンジ・レスポンスデータを検出したところである。

    ちなみにCainは、普通のPCでもSMB認証のチャレンジ・レスポンスデータを1秒間に数十万回の速度でクラックすることができる。例えばパスワードの文字列が英数記号とりまぜたランダムな場合であったとしても、文字数が5文字のように短かった場合、ブルートフォースにより1時間もあればクラックできてしまうのだ。パスワードの「長さ」がいかに重要であるかがわかる。


    図7 ネットワークモニタリングによりSMB認証のチャレンジ・レスポンスを取得


    Cain & Abelはフリーソフトウェアであるにも関わらず、このように多機能なツールであるが、クラッキング性能自体はLC4にはかなわない。また複数のパスワードデータを一度に効率よくクラックすることができないため、多数のアカウントのパスワード監査を行うには適していないだろう。

IPアドレスの成りすましを防げ

さて今まではユーザアカウントの成りすましにまつわる話題であったが、次にIPアドレスの成りすまし、いわゆるIPアドレス・スプーフィングを取り上げてみよう。

Windowsサーバには、クライアントPCのIPアドレスに基づいてアクセスの許可/拒否を決定する機能がいくつか存在する。例えばIISの「IPアドレスとドメイン名の制限」機能がそれにあたる。これはWebサーバに対して、特定のIPアドレスからのアクセスのみを許可する、あるいは特定のIPアドレスからのアクセスを拒否する、といった制約を設定するものだ。


図8 IIS5.0でIPアドレスによるアクセス制限を行う


図8はIIS5.0で「IPアドレスとドメイン名の制限」を設定し、「192.168.183.1」以外のIPアドレスからのアクセスを拒否するように設定した例である。このIISに対して「192.168.183.1」以外のIPアドレスを持つPCからIEを使ってアクセスすると、図9のようにエラーになる。

図9 IPアドレスの制限によりアクセスが拒否される


このようなIPアドレスによるアクセス制御は、ソースルーティングを用いたIPアドレスの成りすまし(詐称)によって回避される危険性がある。

ソースルーティングとはIPのオプション機能の一つであり、経由するルータをIPパケットの送信元が明示的に指定するために用いられる。図10を見てほしい。ホストAからホストBに対して普通にアクセスした場合、途中のルータをR1→R2→R3のように経由するとする。この経路は通常、ルータ間で動的に設定されるものであり、ホストAやホストBが関知するものではない。ところがソースルーティング機能を用いることにより、経由するルータをR1→R4→R5→R3のように変更することができる。そのためにはホストAは、IPパケットを送り出す際に「R4とR5を通ってホストBへ」というソースルーティングオプションを設定する(ルーズ・ソースルーティングと呼ばれる)。ホストBからの戻りのIPパケットは、往路と逆の道筋、つまりR3→R5→R4→R1をたどってホストAへ到達する。


図10 ソースルーティングの仕組み


図11は、このソースルーティング機能を用いてIPアドレスの成りすましを行っている例である。ホストBは、ホストAのIPアドレス(IP-A)からのみアクセスを許可しているとする。つまりホストC(IP-C)からは、通常、ホストBに対してアクセスすることはできない。ところがホストCの、別のネットワークインターフェイスにホストAのIPアドレス(IP-A)を設定し、IP-AをソースアドレスとしてIP-C→IP-Bのようにソースルーティングすることにより、ホストCはホストBに対してアクセスすることが可能になる。


図11 ソースルーティングを使用してIPアドレスを詐称


Windows 2000はデフォルトでソースルーティングされたIPパケットを受け入れるようになっているが、以下のレジストリの値を「2」に設定することにより、ソースルーティングを拒否することができる。

    キー    :  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
    値の名前: DisableIPSourceRouting
    データ型: REG_DWORD
    有効範囲:
      0 : ソースルーティングを有効にする
      1 : ソースルーティングされたパケットを転送しない(デフォルト値)
      2 : ソースルーティングされた着信パケットをすべて破棄(推奨値)
    



ネットワーク盗聴編


アクセスする権限を持たない情報を不正に入手する手法として、ネットワーク盗聴があげられる。一昔前まで、Windows OS上でネットワーク盗聴を行うためには、ネットワークモニタリング用の専用ソフトウェア製品を使用する必要があったため、それほど手軽に行えるものではなかった。しかし、UNIXのlibpcap互換のパケットキャプチャドライバ「WinPcap[2]」が公開されてから、それを使用したさまざまなネットワークモニタリングツール(Windump[3]、Ethereal[4]、等)が無償で提供されるようになり、今では誰でも非常に簡単にネットワーク盗聴を行うことができるようになった。また、Windows 2000以降では「raw socket」を用いてネットワーク上を流れる任意のIPパケットをキャプチャすることができるため、WinPcap等のドライバをインストールしなくても、多少のプログラミング知識があれば簡易なネットワークモニタリングツールを作成することが可能である。

ここでは社内環境におけるネットワーク盗聴について、その脅威を述べるとともに、システム管理者が実行できる対策方法を解説する。ただし、ネットワーク盗聴を完全に防ぐことは非常に困難である。というか、不可能だといってもいいだろう。最善の策は、ネットワーク通信は盗聴されうるということを前提にして、IPSec等により通信の暗号化を行うことである。

リピータ・ハブ環境下におけるネットワーク盗聴

さてそれでは実際の社内ネットワーク環境において、ネットワーク盗聴はどのように行われるのであろうか。まず第一に考えられるのは、リピータ・ハブ環境下におけるネットワークモニタリングツールを使用した盗聴だ。

リピータ・ハブ(あるいはシェアード・ハブ、ダム・ハブ)とは、OSI参照モデルの物理層(レイヤー1)に対応したネットワーク接続機器である。リピータ・ハブは図12に示すとおり、接続されたポートすべてに対してデータが転送されるため、ネットワークモニタリングツールを利用すれば任意のホスト間の通信を盗聴することができる。


図12 リピータ・ハブによる通信


例えば図12でホストAがホストFに対し、データを送ったとする。確かにホストFはホストAからのデータを受信するが、リピータ・ハブはポートに接続している他の機器(ホストB、ホストC、...)にも公平にデータを流すため、仮にホストCでネットワークモニタリングツールを動作させると、ホストAからホストFへの通信を盗聴できるのだ。

最近ではスイッチング・ハブが比較的安価になったため、かつてほどリピータ・ハブは使われていないが、特に古くからあるネットワークの末端部では、未だに多くの環境で使用されている。

スイッチング・ハブ環境下におけるネットワーク盗聴

スイッチング・ハブ(あるいは単にスイッチ)は、OSI参照モデルのデータリンク層(レイヤー2)に対応しており、EthernetのMACアドレス(ネットワークインターフェイスに割り当てられた固有のアドレス)を使って通信を制御する。スイッチング・ハブでは各ポートごとに接続されている機器のMACアドレスを記憶し、そのMACアドレス宛のデータのみをそのポートへ流す(図13)。つまり、1対1の通信では、通信に無関係の機器が接続されているポートにはデータを流さない仕組みになっているのだ。


図13 スイッチング・ハブによる通信


そのためスイッチング・ハブの場合は、リピータ・ハブの場合のようにホストAからホストFへの通信データをホストCがモニタする、というようなことは通常はできない。しかしだからと言って、スイッチング・ハブ環境でネットワーク盗聴ができないわけではない。

スイッチング環境下での代表的なネットワーク盗聴手法として、以下があげられる[5]。

    - MACアドレス・スプーフィング
    - MACアドレス・オーバーフロー
    - ARPキャッシュ・ポイゾニング
    
MACアドレス・スプーフィングは、ネットワークインターフェイスのMACアドレスを他のホストのMACアドレスと同じものに変更する[6]ことにより、他のホストに対する通信を自分自身に向けさせるものである。このような場合にスイッチング・ハブがどう振舞うかは、スイッチング・ハブの仕様に依存するが、ものによっては両方のホストがつながっているポート二つともにデータを送り出す。それによって、他のホストに対する通信を盗聴できることになる。

MACアドレス・オーバーフローは、スイッチング・ハブのメモリをオーバーフローさせることで、スイッチング・ハブに適切なデータ転送を行わせないようにする。スイッチング・ハブは、あるMACアドレス宛のデータをそれが接続しているポートに正しく転送するため、MACアドレスとポートの組み合わせをメモリ上で管理している。ところが当然のことながら、このメモリの量には限りがあるため、さまざまなMACアドレスを持つデータが大量にスイッチング・ハブに流れた場合、スイッチング・ハブはMACアドレスとポートの組み合わせを管理できなくなってしまう。そうなると、これもスイッチング・ハブの仕様に依存するが、特定のホスト宛のデータをすべてのポートに送り出してしまうようになるのだ。

これら二つの手法はスイッチング・ハブの機種によっては成功しなかったり、あるいは 場合によりスイッチング・ハブの設定で回避することが可能であったりするが、三つめのARPキャッシュ・ポイゾニングは回避することが難しく、しかも盗聴のみならず、通信の間に割り込むこともできてしまうため、システム管理者にとっては非常に厄介である。

図14を見ていただきたい。ここではホストAとホストFとの間の通信を、ホストCが盗聴しようとしている。まずホストCはホストAに対して偽造ARPパケットを送りつける。それにより、ホストAは「IP-FのMACアドレスはMAC-Cである」と思い込んでしまう。ホストCは同様に、ホストFに対しても偽造ARPパケットを送る。するとホストFも同じように、「IP-AのMACアドレスはMAC-Cである」と思い込む。このように他のホストのARPキャッシュを偽の情報で書き換える(ポイゾニング: 毒入れ)ことで、互いの通信を中間で受け取ることができるのだ。ホストCが受け取ったパケットを正しく反対側に転送してやれば、ホストAとホストFとの通信は通常と変わりないため、中間でホストCが盗聴していることに気づくことはない。


図14 ARPキャッシュ・ポイゾニングによる盗聴


ARPキャッシュ・ポイゾニング手法を使用した場合、ホストCができることは単に通信の盗聴だけではない。ホストAとホストFとの通信に割り込み、不正な情報を挿入することも可能になる(セッション・ハイジャック)。また2者間の認証や鍵交換に介入することにより、SSHやSSLといった暗号化通信の盗聴を行うこともできる[7][8]。

プロミスキャスモードを検出せよ

一般的にネットワーク盗聴は、ネットワークインターフェイスを「プロミスキャスモード」に設定することにより行う。ネットワークインターフェイスは、通常時は自分自身のMACアドレスを宛先としたデータや、あるいはブロードキャスト、マルチキャストといった自分に関係するデータのみを取り込み、その他のデータは破棄する。ところがネットワークインターフェイスをプロミスキャスモードに設定すると、他のホスト宛のデータも取り込むことができるようになる。

前述のとおり、リピータ・ハブ環境ではすべてのデータが全ポートに送られるが、盗聴しようとしているマシンのネットワークインターフェイスが通常のモードだと、他マシン宛のデータはネットワークインターフェイスが破棄してしまうため、盗聴することができない。そのため、ネットワークを盗聴するには、ネットワークインターフェイスをプロミスキャスモードに設定する必要があるのだ。

つまり、ネットワーク上の各マシンのネットワークインターフェイスがプロミスキャスモードになっているかどうかを検出することができれば、ネットワーク盗聴を試みている不正ユーザの存在を検知することができることになる。ただし、通常のアプリケーションソフトウェアでも場合によってはプロミスキャスモードを使用することがあるので、プロミスキャスモードになっているからといって、必ずしもネットワーク盗聴を行っているとは限らないことに注意しなければならない。

ここではプロミスキャスモードの検出に利用できる、二つのツールを紹介しよう。

PromiscDetect
http://ntsecurity.nu/toolbox/promiscdetect/
フリーソフトウェア

    PromiscDetectは、Windows NT 4.0 / 2000 / XPといったプラットフォーム上でローカルに実行することにより、当該マシンのネットワークインターフェイスがプロミスキャスモードになっているかどうかを調べることができるコマンドラインツールである。UNIX系のOSでは標準のコマンド(ifconfig)を用いることで、プロミスキャスモードか否かを知ることができるが、Windows系OSでは標準コマンドの機能として提供されていない。


    図15 PromiscDetectの実行結果の例


    図15はネットワーク盗聴ツールを動かしているマシン上で、PromiscDetectを実行した結果を示している。プロミスキャスモードに設定されているネットワークインターフェイスが、「- Promiscuous (capture all packets on the network)」と表示されているのがわかる。

PromiScan
http://www.securityfriday.com/ToolDownload/PromiScan/promiscan_doc.html
フリーソフトウェア

    PromiScanはセキュリティフライデー社が開発・公開している、プロミスキャスモード検出ツールだ。このツールはネットワーク経由で、他のマシンのネットワークインターフェイスを状態を調査し、プロミスキャスモードかどうかを判定する。動作環境はwindows NT 4.0 / 2000 / XPがサポートされている。このツールは前述のWindows用パケットキャプチャドライバ「WinPcap」を利用するため、あらかじめWinPcapをインストールしておく必要がある。

    PromiScanはプロミスキャスモードを検出する際に、通常のモードでは反応しないような各種のARPパケットを送信し、それらのパケットに対する返答状況を見ることでプロミスキャスモードかどうかを判断している。詳細については開発者自身による解説記事[9]を参照していただきたい。


    図16 PromiScanの実行結果の例


    図16はPromiScanを使用し、筆者の環境下でIPアドレス範囲「192.168.0.1〜192.168.0.150」に対して調査した結果である。「B31, B16, B8, Gr」というのは送出するARPパケットの種類を表している。プロミスキャスモードに設定されている可能性のあるホストは、スキャン結果としてこれらの項目に「X」が表示される。

    注意しなければならないのは、このスキャン結果というのは必ずしも正確でないことだ。開発者によると、ARPパケットの応答はOSの種類やネットワークインターフェイスカードの種類等によって差があるため、「X」が表示されたホストでもプロミスキャスモードではない場合がある。図16の例でも、「X」がついている「192.168.0.145」のホストは確かにプロミスキャスモードであるが、「192.168.0.1」は実際にはプロミスキャスモードでないにも関わらず「X」が表示されている。

    ネットワーク盗聴を行っているマシンのネットワーク経由での検出は、いくつかの手法が研究されており、またそれらを実装したツールも存在する[10]。しかしいずれの手法においても、確実にすべてを検出することは事実上不可能である。PromiScanを使用する場合も、そのことを念頭に置く必要があるだろう。

ARPキャッシュ・ポイゾニングを防げ

前述のとおり、ARPキャッシュ・ポイゾニングは社内ネットワークにおける非常に大きな脅威である。この手法を用いることで、スイッチング・ハブ環境でもネットワーク通信を盗聴されてしまうのみならず、セッション・ハイジャック等のいわゆるMan-In-The-Middle攻撃(通信の中間における攻撃)も可能となる。さらにARPキャッシュ・ポイゾニングは、現実的な防御が非常に困難である。

一般的に、ARPキャッシュ・ポイゾニングに対する有効な対策は、各コンピュータ上でARPテーブルをスタティックに保持することだと言われている。つまり、通信相手のIPアドレスとMACアドレスのペアすべてを、コンピュータのARPテーブルに静的に記憶しておくわけだ(「arp -s」コマンドを使用)。これにより、ARPキャッシュ・ポイゾニング攻撃を受けてもARPテーブルが書き換えられることはなくなる。しかしこれには大きな問題が二つ存在する。

一つは、社内ネットワークにおけるすべての通信相手について、すべてのコンピュータ上でIPアドレスとMACアドレスのペアを設定し、それをメンテナンスし続けることは、システム管理者の負担を考えると実際のネットワーク環境では現実的とは思えない。

もう一つの問題は、Windows NTや2000ではスタティックARPエントリであっても、ARPキャッシュ・ポイゾニングによって書き換えられてしまうことだ。ただしWindows XP Professionalではこの問題は修正されており、スタティックARPエントリが書き換えられることはなくなっている。

このように、スタティックARPテーブルによる対策は、社内ネットワーク環境における総合的対策としてはあまり現実的とはいえない。それでは、システム管理者はこのような脅威に対して、どう立ち向かえばよいのであろうか。

一つの方法として、ARPキャッシュ・ポイゾニング攻撃を検知することが考えられる[11]。ARPキャッシュ・ポイゾニングは不正なARPリクエストやARPリプライをターゲットに送りつけることにより、ターゲットマシンのARPテーブルの内容(IPアドレスとMACアドレスのペア)を書き換える(あるいは新たに挿入する)ものである。つまりネットワーク上を飛び交うARPパケットをモニタリングすることにより、IPアドレスとMACアドレスの組合せに変化があった場合、それを検知することができるわけだ。

ここでは、ARPパケットをモニタリングすることで、ARPキャッシュ・ポイゾニング攻撃を検知する、ArpWatchというツールを紹介する。

ArpWatch
ftp://ftp.ee.lbl.gov/
フリーソフトウェア

    ArpWatchはネットワークを流れるARPパケットをモニタリングし、IPアドレスとMACアドレスの組み合わせの変化をシステム管理者に通知するツールだ。残念ながらWindows版はなく、UNIXベースのOS上で動作する。

    図17はArpWatchをデバッグモードで実行した結果である。デバッグモードでは検出結果をモニタ上(標準エラー出力)に表示するが、通常はバックグラウンドで実行し、検出結果は電子メールでシステム管理者に通知すると同時にsyslogに出力する。

    図17では1)において、新規のIPアドレス(IP=192.168.183.1/MAC=0:50:56:c0:0:1)を検出している。これは、このIP/MACの組み合わせをデータとして持つARPパケットを、初めて検出したことを意味している。

    次に2)は、先ほど検出したIPアドレス(192.168.183.1)のMACアドレスが変更された(0:50:56:c0:0:1 → 0:50:56:e5:2c:ef)ことを示している。つまり、先ほどとは異なるIP/MACの組み合わせをデータに持つARPパケットが流れたわけだ。一般的な環境下では、ネットワークインターフェイスカードの交換等がない限り、IP/MACの組み合わせが変わることはないので、この時点でARPキャッシュ・ポイゾニング攻撃が行われたことが推測される。


    図17 ArpWatchの実行結果の例


    3)では、2)で検出したIP/MACの組み合わせ変更が元に戻ったことを知らせている。これによりIPアドレス192.168.183.1のマシンのMACアドレスが、一時的に別のものに変わっていたことがわかる。

    このように、ArpWatchを用いることでシステム管理者は、不正なARPパケットによるARPキャッシュ・ポイゾニング攻撃を検知することができるのである。ただし、このツールでは攻撃者のホストを特定することはできない。またDHCP環境下で頻繁にIP/MACの組み合わせが変化するような場合も、ノイズが多くなって使いにくいと思われる。




不正アクセスツール編


世の中には非常に数多くの不正アクセスツール、あるいは不正アクセスに利用できるツール(ここではこれらを総称して「不正アクセスツール」と呼ぶことにする)が存在する。そしてこれらはほとんどの場合、誰でもインターネット経由で入手し、使用することが可能である。しかし、これらのツールの存在は必ずしも「悪」であるとはいえない。すべてがそうであるかどうかは別として、コンピュータの脆弱性(セキュリティホール)の存在を実証したり、あるいは脆弱性の修正を検証したりするためには、このようなツールが不可欠であるからだ。問題なのはツールの存在ではなく、それを何のために使うかである。

だが実際はこのようなツールを使用して、社内で不正アクセスを行うユーザは少なくないだろう。ちょっとした好奇心の場合もあるかも知れないが、明らかに機密情報の入手や、プライバシーの侵害、うさばらし、嫌がらせ等を目的とする場合も大いにありうる。いずれにせよシステム管理者にとって、このような行為はもちろんのこと、それを行うために使用される不正アクセスツールの社内における存在は、許すべからざるものなのである。

ここではまず社内ネットワーク環境における、不正アクセスツールの検出について述べ、続いて不正アクセスツールの実行の制限、さらにネットワーク経由で行われる不正アクセス行為の検出について記述する。

不正アクセスツールを見つけ出せ

不正アクセスツールと一言で言っても、さまざまな種類のものが存在する。少し整理してみよう。

1) 情報収集ツール
    ネットワーク上に存在するホストやオープンポートの調査を行う、いわゆるポートスキャナ(Nmap等)や、システムのアカウント情報、レジストリ情報、パーミッション情報等をリモートもしくはローカルで収集するツール(Enum、DumpSec等)などが存在する。
2) 脆弱性調査ツール
    システムの脆弱性の有無を総合的に調査する、いわゆる脆弱性スキャナ。代表的なものとしてはNessus、Saint、Whisker、Niktoなどがあげられる。
3) 脆弱性攻撃ツール
    バッファオーバーフローや権限上昇、あるいはサービス停止といった、システム上の脆弱性を実際に攻撃するツール。これらは多くの場合、CのソースコードやPerlスクリプトとして配布される。
4) ネットワーク盗聴ツール
    プロミスキャスモードでネットワーク上の通信をモニタリングするツール。tcpdumpのWindows版であるWindumpや、GUIで使い勝手の良いEtherealなどが代表的である。
5) セッションハイジャックツール
    ARPキャッシュ・ポイゾニングにより通信に介入するDsniffやEttercap、あるいはWindowsのSMB認証を中継するSmbrelayなどが存在する。
6) 暗号化ツール
    社内で使用を認められていない非正規の暗号化ツールは、不正アクセスの検知を妨げたり、あるいはツールや情報を隠したりする目的で使用される場合がある。
7) 無線LANツール
    無線LANのアクセスポイントを探し出すNetStumblerやApSniff、WEPの暗号鍵をクラックするAirsnortなどがある。
8) パスワードクラッカー
    パスワードクラッカーは、システム中のパスワードデータやネットワークトラフィックから取得したパスワードデータを基にクラックする、オフライン・パスワードクラッカーと、実際にネットワーク経由で認証行為を繰り返すことによりクラックする、オンライン・パスワードクラッカー(またはリモート・パスワードクラッカー)の二つに分類される。前者の代表格としてL0phtCrack、Cain & Abel、John the Ripperがあげられ、後者にはNAT、Brutusといったものが存在する。
9) ウォーダイアラー
    片っ端から電話をかけまくり、リモートアクセスのためのモデム探索を実行するツール。フリーソフトウェアではToneloc、THC-Scanなどがある。
10) バックドア、トロイの木馬、キーロガー
    バックドアやトロイの木馬、キーロガーは、他のシステムに侵入した際に仕掛けたり、あるいは共用PC等、他のユーザも使用するようなマシンに設置し、さらなる不正アクセス行為を容易にしたり、他ユーザの機密情報を取得するために用いられる。Back Orifice、NetBus、Ncx99、IExplore.exe Trojan、Ghost Keylogger等がある。
これらのツールは、一部のバックドア系、あるいはトロイの木馬系など明らかに害があると思われるものを除き、基本的にはウィルススキャナ製品で検出することはできない。これらの不正アクセスツールがユーザのPC上に存在しないか、または密かに仕掛けられていないかを調べるためには、以下に紹介するような不正アクセスツールの検出に特化した専用のソフトウェアを使用することが有効な手段となる[12]。

PestPatrol
http://www.pestpatrol.jp/
有償製品(評価版あり)

    PestPatrolは米国のPestPatrol社が開発した、不正ソフトウェア(PestPatrolはこれらを「ペスト」と呼んでいる)検出システムである。日本では株式会社アークンが総販売元となっている。

    PestPatrolはウィルススキャナ製品とは異なり、不正行為を行うソフトウェアのみならず、不正行為に利用することができるさまざまなソフトウェアツールを検出する。つまり、そのマシンが不正ソフトウェアに侵害されているかどうかを調査するとともに、ユーザがマシン上に不正アクセスツールを所持していないかどうかも調査することができる。

    評価版をインストールして実際にスキャンした結果を図18に示す。


    図18 PestPatrolの実行結果の例


    図のように「ログ」の「スキャン結果」には検出した不正ソフトウェアそれぞれについて、カテゴリや概要、存在するディレクトリパス等の情報が表示されるので、システム管理者はそれらの情報を参照し、必要に応じて削除あるいは隔離を実行することができる。(注;評価版では機能制限により、削除および隔離はできない)

    スキャンの対象とするファイル拡張子の指定や、スキャンのモード等は、「オプション」の「スキャン設定」で選択する。特にファイル拡張子の指定は重要である。ここで除外されている拡張子を持つファイルはスキャンされないため、不正ツールを所有するユーザがプログラムファイルの拡張子をわざと変更していた場合、それを検出することができなくなる。スキャンの対象は「全ファイル」とするべきであろう(図19)。


    図19 オプションのスキャン設定で「全ファイル」を指定


    PestPatrolにはこのように、GUI経由でシステム上の不正ソフトウェアを手動スキャンする機能以外に、タスクスケジューラと組み合わせて定期的にスキャンすることが可能なコマンドラインプログラム機能、システムに常駐してメモリ中の不正コードや不正クッキーを検知する機能、キーロガーをチェックする機能(図20)などを持つ。ログオンスクリプトにコマンドラインプログラムの起動を書いておくことで、Windowsドメイン環境でユーザがログオンした際に、自動的にユーザのPCをスキャンするように設定することもできる。


    図20 メモリにロードされているキーロガーを検出した例


    もちろんこのシステムにより、世の中に存在するすべての不正アクセスツールを検出できるわけではない。しかし多くの場合、不正アクセス行為を行うユーザは自分のマシンに代表的なツール(NmapやNetcat等)のいくつかを持っているため、それらを検出することで怪しげなユーザを特定することは可能だと考えられる。

不正アクセスツールを実行させるな

Windows XP Professionalおよび、新しくリリースされたWindows Server 2003には、「ソフトウェア制限のポリシー」というWindows 2000にはなかった新たな機能が追加されている。ソフトウェア制限のポリシーを用いることにより、システム管理者はユーザに対し、コンピュータ上で実行することができるプログラムを厳密に制限することが可能になる[13][14]。すなわち、ユーザが自分のクライアントPC上に不正アクセスツールを持ち込んだとしても、それをシステム的に実行させなくすることができるのだ。

ソフトウェア制限のポリシーはWindowsシステムのActive Directoryにおけるグループポリシーに統合されており、ドメイン環境ではドメイン全体、コンピュータごと、あるいはユーザごと等、フレキシブルにポリシー設定を行うことができる。もちろんスタンドアロンコンピュータに対しても設定可能だ。

スタンドアロンのXPでソフトウェア制限のポリシーを設定するには、「コントロールパネル→管理ツール→ローカルセキュリティポリシー」を起動し、「ソフトウェア制限のポリシー」を選択する(図21)。


図21 ソフトウェア制限のポリシーの設定ウィンドウ


ソフトウェア制限のポリシーではまず始めに、「セキュリティレベル」でデフォルトの規則を設定する。デフォルトの規則には、次の二つがある。

    「許可しない」:デフォルトですべてのソフトウェアの実行を許可しない。この場合、「追加の規則」で実行を許可するソフトウェアについて規則を設定する。

    「制限しない」:デフォルトですべてのソフトウェアの実行を許可する。この場合、「追加の規則」で実行を許可しないソフトウェアについて規則を設定する。

セキュリティを重視する環境では、前者すなわち「許可しない」をデフォルトとし、ユーザに実行を許すソフトウェアを追加的に設定することが望ましい。ただし、実行を許可するソフトウェアの設定を誤ると、ユーザの通常の操作に支障をきたす場合があるので注意が必要である。

「追加の規則」には、以下の4種類の設定方法が用意されている。

「ハッシュの規則」
    ハッシュの規則では、実行を許可するあるいは制限するプログラムファイルを直接指定し、そのファイルのハッシュ値(MD5またはSHA-1)を生成する。システムは実行の可否をこのハッシュ値に基づいて判定するため、ファイル名やディレクトリパスが変化しても正しく判断することができる。ただしサービスパック等でファイルか更新された際には、ハッシュの値が変化するため、再び規則を登録する必要がある。
「証明書の規則」
    証明書の規則では、コード署名したソフトウェア発行者の証明書を指定することにより、正しく署名されたプログラムファイルのみ実行を許可するといった設定ができる。この場合もプログラムのファイル名やディレクトリパスには関係しない。
「パスの規則」
    パスの規則は、ディレクトリやプログラムファイルそのもののパスを指定する。ディレクトリを指定した場合は、そのディレクトリ以下のサブディレクトリも含め、そこに存在するプログラムファイルが指定の対象となる。ローカルのディレクトリパス以外に、UNCパスを指定することもできる。パスの指定には環境変数や、「*」「?」といったワイルドカード、あるいはレジストリ名を書くことでそのレジストリ値をディレクトリパスとして使うなど、さまざまなバリエーションを用いることが可能である。パスの表記によっては、あるプログラムファイルが複数の規則にマッチングする場合もあるが、その際はよりスペシフィックに指定している規則の方に従う。
「インターネットゾーンの規則」
    インターネットゾーンの規則は、Windowsインストーラパッケージの実行について、Internet Explorerのセキュリティゾーン(インターネット、ローカルイントラネット、ローカルコンピュータ、信頼されているサイト、制限されているサイト)ごとに許可あるいは制限の設定を行う。
さらにソフトウェア制限のポリシーでは、全般的なオプションとして以下の3つを指定することができる。

    「強制」:ポリシーの適用をソフトウェアのファイルすべてとするか、DLL等ライブラリファイルを除外するか、また、すべてのユーザに適用するか、ローカル管理者は適用しないかについて設定。

    「専用ファイルの種類」:どのような拡張子を持つファイルを適用対象とするかについて設定。

    「信頼された発行者」:信頼された発行者の選択をすべてのエンドユーザに許可するか、ローカル管理者のみにするか、および、証明書の失効確認項目について設定。

さてソフトウェア制限のポリシーについて一通り説明したが、では実際にはどのように使えばよいのであろうか。

ユーザが持ち込んだ(あるいはダウンロードした)不正アクセスツールを、勝手に実行させないようにするためには、次のような設定が現実的かつ有効ではないかと筆者は考える。

    ● セキュリティレベル ... デフォルトを「許可しない」に設定(図22)
    
    ● 追加の規則         ... 以下のパスの規則を登録(図23)
    
                              C:\Program Files    制限しない
                              C:\WINDOWS          制限しない
    
    ● 強制               ... 以下を設定(図24)
    
            - ソフトウェアの制限のポリシーの適用
                → DLLなどのライブラリを除くソフトウェアのファイルすべて
    
            - ソフトウェアの制限のポリシーの適用ユーザ
                → ローカル管理者を除くすべてのユーザ
    
            - 専用ファイルの種類 ... 一覧から拡張子LNK(ショートカット)を「削除」(図25)
    
            - 信頼された発行者    ... デフォルトのまま
    

図22 デフォルトの「セキュリティレベル」を「許可しない」に設定



図23 「C:\Program Files」と「C:\WINDOWS」を「制限しない」で登録



図24 DLLなどのライブラリとローカル管理者をポリシー適用外とする



図25 拡張子LNK(ショートカット)を対象外とする


この設定により、一般ユーザ(Usersグループ所属)は、OSの標準プログラムおよびシステム管理者がインストールしたソフトウェア以外を実行することができなくなる。もちろんC:\Program FilesやC:\WINDOWSディレクトリはサブディレクトリも含めて、一般ユーザに書き込み/変更のパーミッションがないことが前提である。「専用ファイルの種類」で一覧から拡張子LNK(ショートカット)を削除しているのは、スタートメニューやデスクトップにあるショートカットからのプログラム起動を許可するためだ。

「追加の規則」にC:\Program FilesおよびC:\WINDOWSを設定したところを図26に示す。


図26 追加の規則に「制限しない」ディレクトリを追加


なお、クライアントPCに不完全なポリシー設定を行った場合、業務に支障をきたすおそれがあるため、ソフトウェア制限のポリシーを実運用環境に適用する際には、テスト環境下で十分にテストすることが必要である。ユーザのディレクトリにプログラムファイルやバッチファイルを入れて運用している環境や、ログオンスクリプトを使用している場合等は、それらについてどう対処するかを検討しなければならないだろう。

ちなみにXPのソフトウェア制限のポリシーについては、16ビットプログラム(command.com等)が制限にもかかわらず実行できてしまうという不具合が報告されていたが、XPサービスパック1ではその問題は修正されている。

ネットワーク攻撃を検知せよ

社内ネットワークの中で行われる内部的な不正アクセス行為を検知するには、ネットワーク型IDS(侵入検知システム)による監視が非常に有効である。IDSによる監視は、それを実施していることをユーザに告知するだけでも、大きな抑止効果になる。

ここではフリーのネットワーク型IDSであるSnortを紹介しよう。

Snort
http://www.snort.org/
フリーソフトウェア

    Snortは非常にすぐれたフリーのネットワーク型IDSである。もともとUNIXベースで開発されたが、Windows向けにも移植されている。基本的にコマンドラインベースのシステムなので、GUIになじんだWindowsシステム管理者にとっては若干とっつきにくいかも知れないが、柔軟な設定や運用ができるため、ある程度なれてしまえば便利に使うことができる。

    Snortにおける不正アクセスの検出は、あらかじめ記述されたルール(シグネチャ)に基づいて行われる。ルールはカテゴリごとに別々のファイルの中にテキストで記述されており、利用者が独自のルールを追加することも自由にできる。図27は、IISの脆弱性に関連するルールファイルの中身を表示したものだ。


    図27 IISに関するルールファイル


    Snortの実行コマンド例を以下に示す。

      snort -dey -c \snort\etc\snort.conf -l \snort\log
      
    この例では、設定ファイル「\snort\etc\snort.conf」を用いて、ログディレクトリを「\snort\log」として実行している。

    Snortは不正アクセスを検出すると、ログディレクトリに検出結果のログを作成する。図28にアラート関係のログを示す。このようにアラートログを調べることで、どのような攻撃が行われたかを知ることができる。アラートについては、より詳細なログがIPアドレス単位作られたサブディレクトリの中に記録されるので、攻撃パケットの中身を知りたい場合はそちらのログファイルを参照すればよい。


    図28 アラートログファイルの内容


ネットワーク経由の不正アクセスは、社内に対して行われている分にはまだ社内的な対処ですむかも知れないが、社員が社外に対して不正アクセスを行った場合、即座に対外的な問題に発展し、会社のイメージにも大きくひびく。そのようなことにならないためにも、SnortのようなIDSを導入し、ネットワークを常に監視して不正ユーザを早期に検出することがシステム管理者には求められるのである。



[1]  PWDump3
     http://www.polivec.com/pwdump3.html

[2]  WinPcap
     http://winpcap.polito.it/install/default.htm

[3]  WinDump
     http://windump.polito.it/install/default.htm

[4]  Ethereal
     http://www.ethereal.com

[5]  SANS Intrusion Detection FAQ: Why your switched network isn't secure.
     http://www.sans.org/resources/idfaq/switched_network.php

[6]  SMAC
     http://www.klcconsulting.net/smac/

[7]  dsniff
     http://www.monkey.org/~dugsong/dsniff/

[8]  Ettercap
     http://ettercap.sourceforge.net/

[9]  社内の盗聴者を見つけ出す(上)−−フリーツール「PromiScan」の使い方−−
     http://itpro.nikkeibp.co.jp/members/NBY/techsquare/20030304/1/

[10] Sniffing (network wiretap, sniffer) FAQ
     http://www.robertgraham.com/pubs/sniffing-faq.html

[11] Address Resolution Protocol Spoofing and Man-in-the-Middle Attacks
     http://www.sans.org/rr/paper.php?id=474

[12] Beyond Viruses
     http://www.pestpatrol.com/Whitepapers/BeyondViruses0302.asp

[13] Windows XP Security Guide
     http://www.microsoft.com/downloads/details.aspx?FamilyID=2d3e25bc-f434-4cc6-a5a7-09a8a229f118&DisplayLang=en

[14] Using Software Restriction Policies to Protect Against Unauthorized Software
     http://www.microsoft.com/windowsxp/pro/techinfo/administration/restrictionpolicies/


2003年6月執筆
塩月 誠人
ネットワークセキュリティコンサルタント