脅威とその対策
第 11 章 :追加の対策
最終更新日: 2006年8月14日
ダウンロード
この章では、追加の対策 (アカウントのセキュリティ保護など) のいくつかを実装する方法について説明します。また、この章では、ネットワーク攻撃に対する効果的な対策として IP セキュリティ (IPSec) フィルタを使用する場合の一般的なバックグラウンド、参照情報、および構成ガイドについても説明します。
トピック
メンバ サーバーのセキュリティ強化手順
Windows ファイアウォールの設定
関連情報
メンバ サーバーのセキュリティ強化手順
このガイドで説明されている対策のほとんどはグループ ポリシーを使用して適用できますが、グループ ポリシーによる適用が困難または不可能な追加設定もあります。この後のセクションでは、ドメイン メンバ サーバーに対するこれらの追加設定を実装する方法の詳細を説明します。
アカウントのセキュリティ保護
Service Pack 1 (SP1) を適用した Microsoft® Windows Server™ 2003 には、削除はできませんが名前を変更できるさまざまなビルトイン ユーザー アカウントがあります。Windows 2003 の最も一般的なビルトイン アカウントには、Guest と Administrator があります。
脆弱性
既定では、"Guest" アカウントはメンバ サーバーとドメイン コントローラでは無効になっています。この設定は変更しないでください。悪意のあるコードの多くは、サーバーへの侵入の最初の試みにビルトインの Administrator アカウントを使用します。攻撃者がこのよく知られたアカウントを使用してリモート サーバーのセキュリティ侵害を試みないように、ビルトイン アカウントの Administrator の名前と説明を変更する必要があります。
ただし、設定を変更する対策は、近年その効果が弱くなっています。ビルトイン Administrator アカウントのセキュリティ識別子 (SID) を指定して実際の名前を判別し、サーバーに侵入しようとする攻撃ツールが出現しているからです。SID は、各ユーザー、グループ、コンピュータ アカウント、およびネットワークのログオン セッションをそれぞれ識別する値です。このビルトイン アカウントの SID を変更することはできません。
対策
すべてのサーバーで、"Administrator" アカウントの名前を変更し、パスワードを長く複雑にします。
注 :ビルトインの Administrator アカウントの名前は、グループ ポリシーを使用して変更できます。『Windows Server *セキュリティ ガイド』*に含まれる基本ポリシーは、この設定を行いません。このアカウントの名前は、各組織が一意に選択する必要があるからです。アカウント名を変更するには、次の場所にある [Administrator アカウント名の変更] 設定を変更してください。
コンピュータの構成\Windows の設定\セキュリティの設定\ローカル ポリシー\
セキュリティ\オプション
作業上のオーバーヘッドが発生しますが、サーバーごとに異なるパスワードを設定するのが理想的です。ただし、組織内のすべてのサーバーで同じアカウント名とパスワードを使用する場合、攻撃者があるメンバ サーバーへのアクセスに成功した場合に、他のすべてのサーバーにもアクセスできてしまうことに留意してください。すべての変更は安全な場所に記録しておきます。
考えられる影響
システム管理を担当するユーザーは、各コンピュータに割り当てられたアカウント名を記録する必要があります。ローカル管理者のアカウントを使用して特定のサーバーにログインする必要のあるユーザーは、このセキュリティで保護されたドキュメントを参照して、ログインするサーバーのユーザー名とパスワードを見つけてください。
NTFS
NTFS 設定のパーティションでは、アクセス制御リスト (ACL) をサポートしています。また、オプションで暗号化ファイル システム (EFS) を介したファイルおよびフォルダ レベルでの暗号化もサポートしています。ファイル アロケーション テーブル (FAT)、FAT32、FAT32x などのファイル システムでは、同様のサポートは行われていません。FAT32 は、FAT ファイル システムのバージョンの 1 つで、既定のクラスタ サイズを大幅に小さくし、最大 2 テラバイトのハード ディスク サイズをサポートするように更新されたものです。FAT32 は、Microsoft Windows® 95 OSR2、Windows 98、Windows Me、Windows Server 2003、および Windows XP で使用されています。
脆弱性
ACL で保護できないファイルは、ローカルまたはネットワークでこれらのファイルにアクセス可能な権限のないユーザーにより、簡単に閲覧、変更、または削除される可能性があります。その他のファイルは ACL で保護できますが、暗号化を使用するとセキュリティがさらに強化され、ファイルへのアクセスを 1 人のユーザーのみに限定する必要性がある場合に適しています。
対策
NTFS を使って、各サーバー上のすべてのパーティションをフォーマットします。変換ユーティリティを使用して、FAT パーティションを破壊せずに NTFS に変換します。ただし、変換ユーティリティにより変換されるドライブの ACL が "Everyone: フル コントロール" に設定される点に注意します。
Windows Server 2003 および Windows XP ベースのコンピュータの場合は、ローカルで次のセキュリティ テンプレートを適用し、既定のファイル システム ACL を構成します。
ワークステーションの場合 : %windir%\inf\defltwk.inf
サーバーの場合 : %windir%\inf\defltsv.inf
ドメイン コントローラの場合 : %windir%\inf\defltdc.inf
セキュリティ テンプレートをローカルに適用する方法の手順については、『Windows Server *2003 セキュリティ ガイド』*の「第 11 章 ‐ 要塞ホストのセキュリティ強化」を参照してください。
注 :既定のドメイン コントローラのセキュリティ設定は、サーバーのドメイン コントローラへの昇格中に適用されます。
考えられる影響
マイナスの影響はありません。
重要 :NTFS のアクセス許可を正しく設定すると、組織のデータを流出や不正な改ざんから保護するのに役立ちますが、物理的なセキュリティのことも忘れないでください。コンピュータを物理的に制御できる攻撃者は、そのコンピュータでブート可能な CD-ROM またはフロッピー ディスクを使用して代替オペレーティング システムをブートできます。攻撃者が組織のコンピュータの 1 つからハードディスクを取り外し、そのハード ディスクを別の管理されていないコンピュータへ移動させることができます。攻撃者がストレージ メディアの物理的な制御を実行すると、そのデータを保護するのは非常に困難になります。
これはコンピュータ セキュリティの基本的な問題であり、他のオペレーティング システムのファイル システムにも同じ問題が存在します。攻撃者がディスクに物理的にアクセスすると、NTFS のアクセス許可やその他ほとんどの保護手段は簡単にバイパスされます。組織で実装できる目に見える物理的なセキュリティ対策 (建物への入室制限、サーバー ルームへの磁気ロックの設置、サーバーのサーバー ラックへの固定、ラップトップ コンピュータのドッキング ステーションへの固定など) に加えて、このようなタイプの攻撃の影響を少なくするために役立つ次のテクノロジをお勧めします。
Syskey とオフライン パスワードを使用して、許可されていない人物が Windows オペレーティング システムを起動するのを防ぎます。
EFS を使用してユーザー データを暗号化します。ユーザーに自分のドメイン アカウントを使用するように指導し、さらに回復エージェントをまったく構成しないか、またはローカル管理者のアカウントではなく、ドメイン管理者のアカウントに対して回復エージェントを構成します。
許可されていないユーザーによる組織内のコンピュータの起動の機能を拒否する BIOS パスワードを使用します。
CD-ROM ドライブやフロッピー ディスク ドライブからコンピュータを起動できないようにシステム BIOS を構成します。この構成では、許可されていないユーザーによるオペレーティング システムの起動の機能は、そのシステム自体の BIOS により拒否されます。
データおよびアプリケーションのセグメンテーション
長い間、コンピュータのパフォーマンスを向上させるためには、データ、アプリケーション、およびオペレーティング システム ファイルを個別の記憶装置に配置するのが良い方法だとされてきました。このようなタイプのファイルをサーバー上で分離するもう 1 つの大きな理由は、アプリケーション、データ、およびオペレーティング システムのディレクトリ トラバーサル攻撃からの保護にも役立つためです。
脆弱性
オペレーティング システムと同じ記憶域ボリューム上にアプリケーション、データ、およびログ ファイルを格納すると、2 つのタイプの脆弱性が発生します。1 つは、ユーザーが、偶然または故意にドライブをアプリケーション ログ ファイルでいっぱいにしたり、サーバーにファイルをアップロードして記憶域ボリュームをデータでいっぱいにしてしまったりすることです。
2 つ目に考えられる脆弱性は、ディレクトリ トラバーサルの悪用があります。この攻撃では、攻撃者がネットワーク サービスのバグを利用して、ディレクトリ ツリーをシステム ボリュームのルートまで移動します。次に、攻撃者はオペレーティング システム ファイルのフォルダを検索し、リモートでユーティリティを実行します。
脆弱なアプリケーションやオペレーティング システムを利用するディレクトリ トラバーサル攻撃には、何千ものバリエーションがあります。ここ数年の間、IIS はそのうちのいつくかの攻撃に対して脆弱でした。たとえば、NIMDA および Code Red ワームの場合、バッファ オーバーフローを悪用して Web サイトのディレクトリ ツリーをトラバースし、次にリモートで Cmd.exe を実行してリモート シェルへアクセスして、その他のコマンドを実行します。
対策
可能な場合は常に、Web コンテンツ、アプリケーション、データ、およびアプリケーション ログ ファイルをシステム ボリュームとは別のパーティションに移動します。
考えられる影響
一貫した方法でサーバーの構築および管理を行っている組織の場合、影響は最小限で済みます。この情報を管理していない組織については、管理者が各システムの設定方法を調査する必要が生じるため、影響は若干大きくなります。
SNMP コミュニティ名の構成
SNMP (Simple Network Management Protocol) は、TCP/IP ネットワークにおいて広く使用されているネットワーク管理標準です。SNMP では、中央のホストからネットワーク ノード (サーバー、ワークステーション、ルーター、ブリッジ、およびハブ) を管理する方法を提供します。また、SNMP では、管理システムおよびエージェントの分散アーキテクチャを使用して、管理サービスを実行します。ネットワーク管理ソフトウェアを実行するコンピュータは、SNMP 管理システムまたは SNMP マネージャと呼ばれます。管理されるネットワーク ノードは SNMP エージェントと呼ばれます。
SNMP サービスでは、コミュニティ名と認証トラップを使用したセキュリティの基本形を提供します。エージェントの SNMP 通信を制限して SNMP 管理システムの特定のリストにのみ通信できるように設定できます。また、コミュニティ名は SNMP メッセージの認証に使用できます。ホストは同時に複数のコミュニティに属することができますが、SNMP エージェントでは受け付け可能なコミュニティ名のリストに含まれていないコミュニティの管理システムからの要求は受け付けません。コミュニティ名とドメイン名またはワークグループ名の間には何の関係もありません。コミュニティ名は SNMP 管理コンソールと管理されているコンピュータで共有されているパスワードと考えることができます。システム管理者は、SNMP サービスをインストールする際に、簡単には推測できないコミュニティ名を作成する責任があります。
脆弱性
SNMP プロトコルは、セキュリティという点においては本質的に脆弱です。SNMP における最大の脆弱性は、ほとんどすべてのベンダが既定のコミュニティ文字列名を設定していることです。このような既定のコミュニティ名はよく知られています。たとえば、マイクロソフトでは「Public」という語句を使用しています。
2 番目の脆弱性は、さらに解決が困難です。SNMP トラフィックはプレーンテキスト形式で送信されるため、SNMP 管理デバイスが SNMP クライアントに接続すると、コミュニティ文字列は暗号化またはハッシュされずにネットワークで転送されます。サーバー間のすべてのトラフィックを暗号化することにより、この 2 番目の脆弱性に対処することは可能ですが、そのような対処法はこのガイドの範囲外となります。
対策
すべてのコンピュータで読み取りアクセスに使用する SNMP コミュニティ文字列を、ランダムな英数字値として構成します。
SNMP コミュニティ文字列の構成方法
サービス コンソールから [SNMP Service] をダブルクリックします。
[SNMP サービスのプロパティ] ダイアログ ボックスの [セキュリティ] タブをクリックします。
[受け付けるコミュニティ名] リストから [public] を選択します。
[編集] ボタンをクリックし、[SNMP サービスの構成] の [コミュニティ名] ダイアログ ボックスが表示されたら新しいコミュニティ名を入力します。
[OK] ボタンをクリックして、各ダイアログ ボックスを閉じます。
SNMP を使用した書き込みアクセスを無効のままにします。
注 :コミュニティ名は、DWORD 値が 4 に設定されたレジストリ値としてレジストリ内に格納されます。そのため、スクリプトを作成するか、またはセキュリティ テンプレートに行を追加して、そのテンプレートをドメインベースのグループ ポリシーにインポートすれば、このような変更を自動化できます。この値は、HKLM\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\ValidCommunities に格納されます。
考えられる影響
SNMP プロトコルを使用するすべての管理ツールでもコミュニティ文字列を再構成する必要があります。
外部からアクセス可能なインターフェイス上の NetBIOS および SMB の無効化
ここでは、完全に制御できないネットワークに配置されているサーバー (外部からアクセス可能な Web サーバーまたは電子メール ゲートウェイなど) に対する推奨事項について特に説明します。このようなタイプのサーバーは、しばしば要塞ホストと呼ばれます。この種のサーバーを運用している場合、「対策」で説明する推奨手順を検討する必要があります。ただし、各変更について徹底的にテストし、NetBIOS を無効にしたコンピュータの管理は困難であるということを理解する必要があります。
脆弱性
サーバー メッセージ ブロック (SMB) および NetBIOS over TCP/IP を無効にすることで、攻撃される可能性のある箇所を大幅に削減し、要塞ホストのセキュリティを強化できます。この構成で運用されているサーバーは管理が難しく、ネットワークで共有しているフォルダにアクセスできなくなりますが、これらの対策により、SMB や NetBIOS プロトコル経由で簡単に侵入されないようにサーバーを効果的に保護できます。このため、インターネットからアクセスできるサーバーのネットワーク接続には、SMB と NetBIOS over TCP/IP を無効に設定するようにお勧めします。
対策
NetBIOS を無効にすると、SMB 通信は阻止されません。標準の NetBIOS ポートがない場合に、SMB では TCP ポート 445 が使用されます。このポートは SMB のダイレクト ホストまたは Common Internet File System (CIFS) ポートと呼ばれています。そのため、NetBIOS と SMB の両方を個別に無効化する明示的な手順を実行する必要があります。
NetBIOS で使用されるポートは次のとおりです。
UDP/137 (NetBIOS ネーム サービス)
UDP/138 (NetBIOS データグラム サービス)
TCP/139 (NetBIOS セッション サービス)
SMB で使用されるポートは次のとおりです。
TCP/139
TCP/445
インターネットからアクセス可能なサーバー上では、次の手順を実行して [Microsoft ネットワーク共有サービス] と [Microsoft ネットワーク クライアント] を削除します。
SMB を無効にするには
[コントロール パネル] の [ネットワーク接続] をダブルクリックします。
インターネットにアクセス可能な任意の接続を右クリックし、[プロパティ] をクリックします。
[プロパティ] ダイアログ ボックスで、[Microsoft ネットワーク クライアント] をクリックして選択し、[アンインストール] をクリックします。
アンインストールの手順に従います。
[Microsoft ネットワーク用ファイルとプリンタ共有] を選択し、[アンインストール] をクリックします。
アンインストールの手順に従います。
NetBIOS over TCP/IP を無効にするには
[コントロール パネル] で [システム] をダブルクリックし、[ハードウェア] タブをクリックして、[デバイス マネージャ] ボタンをクリックします。
[表示] メニューで [非表示のデバイスの表示] をクリックします。
[プラグ アンド プレイではないドライバ] を展開します。
[NetBios over Tcpip] を右クリックしてから、[無効] をクリックします。
この手順より、TCP/445 と UDP 445 で SMB のダイレクト ホスト リスナが無効になります。
注 :この手順により Nbt.sys ドライバが無効になります。NetBIOS Session Service (TCP ポート 139 でリスン) は無効になりますが、SMB は完全に無効になっていません。SMB を完全に無効にするには、前述の「SMB を無効にするには」の手順に従います。
考えられる影響
SMB を使用してサーバーに接続できなくなります。サーバーがネットワーク上で共有されているフォルダにアクセスできなくなります。接続時に NetBIOS や SMB に依存する管理ツールは、サーバーに接続できなくなります。
ターミナル サービスのポートの構成
ターミナル サービスではリモート サーバーおよびエンド ユーザーのコンピュータを管理できるため、ネットワーク管理者にとって便利なツールです。リモート デスクトップ クライアントは、既定ですべての Windows Server 2003 および Windows XP コンピュータにインストールされており、Windows 2000 Server のインストール メディアではオプションのコンポーネントとして使用できます。Internet Explorer または Microsoft 管理コンソール (MMC) 内で実行する Microsoft ActiveX® クライアントをダウンロードすることもできます。リモート デスクトップ クライアントおよび ActiveX クライアントはまとめてターミナル サービス アドバンスト クライアント (TSAC) と呼ばれます。
脆弱性
ターミナル サービスでは既定で TCP ポート 3389 をリッスンし、すべてのバージョンのリモート デスクトップ クライアントがこのポートへの接続を試みます。ユーザー認証を含むセッション全体が暗号化されますが、ターミナル サービス クライアントではサーバー認証が行われません。正規のターミナル サービス サーバーを偽装できた攻撃者は、ユーザーが本物のシステムではなく攻撃者のサーバーに接続するように仕向けることができます。攻撃者は、DNS レコードを変更してユーザーを攻撃者のサーバーにリダイレクトするか、他の方法を使用してユーザーを騙します。
対策
ターミナル サービスで使用する TCP ポートを変更するか、または IPSec ポリシーを実装して信頼を要求し、IPSec のトンネル モードではなく IPSec のトランスポート モードを使用して認証ヘッダー (AH) またはカプセル化セキュリティ ペイロード (ESP) のネゴシエートを行います。シナリオによっては、VPN ゲートウェイの後ろにターミナル サービスを分離し、ターミナル サーバーへのアクセスには Point to Point Tunneling Protocol (PPTP) または L2TP/IPSec でセキュリティが保護された VPN トンネルが必要となるように構成することもできます。
ターミナル サービスおよびリモート デスクトップ クライアントで使用するポートの変更方法については、https://support.microsoft.com/default.aspx?scid=kb;ja-jp;187623 のマイクロソフト サポート技術情報の記事「Terminal Server のリスニング ポートの変更方法」を参照してください。このサポート技術情報では、通常のデスクトップ クライアントでのリスン ポートの変更方法を説明しています。ターミナル サービス アドバンスト クライアントの Web クライアントでポートを変更するには、Web ページに以下のスクリプト行を追加する必要があります。
MsRdpClient.RDPport = xxx
(xxx は、対象の TCP ポート番号を表します)Microsoft Internet Explorer 内でターミナル サービス セッションを実行するためにリモート デスクトップの Web 接続を使用およびカスタマイズする方法の詳細については、https://msdn2.microsoft.com/en-us/library/aa382994.aspx の「Providing for RDP Client Security」(英語情報) を参照してください。
考えられる影響
IPSec および AH を実装してもシステムのパフォーマンスにはごくわずかな影響しか与えませんが、これにより、クライアントとサーバーの IPSec 構成の管理という新たなオーバーヘッドが発生します。また、IPSec のセキュリティ アソシエーションを確立する前にインターネット キー交換 (IKE) のセキュリティ ネゴシエーションで使用する、クライアントおよびサーバー コンピュータ間の相互信頼方法を管理するためのオーバーヘッドも必要になります。IPSec ポリシーは、サーバーへ向かうすべてのトラフィックを保護するか、または TCP ポート 3389 への接続に対してのみ IPSec を要求するように設計する必要があります。サーバー側で IPSec を要求すると、互換性のある IPSec 構成および信頼を備えていないクライアント コンピュータへのアクセスが拒否されます。IPSec ポリシーを使用して TCP/IP トラフィックのセキュリティをネゴシエートする方法の詳細については、この章で後述する「IPSec ポリシーの構成」を参照してください。
ターミナル サービス サーバーおよびクライアントの既定のポートを変更すると、クライアント ソフトウェアが新しいポートを使うように設定されていない正規ユーザーは、ポート割り当てが変更されたコンピュータに接続できなくなります。また、TSAC の現在のバージョンでは、TCP ポートを変更する方法がありません。
ワトソン博士の無効化 :ワトソン博士のシステム デバッガの自動実行を無効にする
システム デバッガは、コンピュータとアプリケーションのトラブルシューティングを容易にします。これらのプログラムは、コンピュータの実行中にデータを集め、システム管理者やアプリケーション開発者に提供します。Windows Server 2003 および Windows XP に組み込まれているワトソン博士のツールは自動システム デバッガで、プログラムにエラーが発生するとアクティブになり、システムの状態とアプリケーションの情報を記録します。
脆弱性
重要な運用コンピュータにはデバッガをインストールする必要がないと考える組織もあります。管理者権限を持たないユーザーにより実行されるワトソン博士関連の脆弱性はありません。つまり、攻撃者がワトソン博士を他のユーザーやプロセスに対する攻撃ツールとして使おうとする場合、ローカルの Administrators グループに属している必要があります。攻撃者が管理者権限を手に入れ、コンピュータをほぼ完全に支配できる状態になってしまった状態では、ワトソン博士の機能が無効化されていても、他の方法を使って攻撃が行われてしまいます。
対策
ワトソン博士のシステム デバッガを無効化する詳細については、https://support.microsoft.com/?kbid=188296 のマイクロソフト サポート技術情報の記事「Windows NT でワトソン博士を無効にする方法」を参照してください。
考えられる影響
プログラムがクラッシュした際にシステム デバッガが実行されず、レポートも自動的に作成されません。システム管理者と開発者は、問題の原因を診断するためのプログラムのクラッシュに関して入手できる情報が少なくなります。エラー報告機能も動作しません。
SSDP/UPNP の無効化 :SSDP/UPNP を無効にする
ユニバーサル プラグ アンド プレイ (UPnP™) ホスト サービスを無効にしていても、Windows Messenger など他のアプリケーションは Simple Service Discovery Protocol (SSDP) Discovery Service の検出プロセスを使用してネットワーク ゲートウェイや他のネットワーク デバイスを識別できます。
詳細については、https://support.microsoft.com/?kbid=317843 のマイクロソフト サポート技術情報の記事「SSDP Discover Service および Universal Plug and Play Device Host を無効にしても SSDP トラフィックが送信される」を参照してください。
脆弱性
Windows XP および Windows Server 2003 に組み込まれた UPnP 機能は、UPnP デバイスのローカル ネットワークへの接続時にインストールを自動化できるため、小規模ビジネスまたはホーム ユーザーには非常に有用です。UPnP または SSDP トラフィックをネットワーク上に流したくない組織もあります。これらの機能について現在既知の脆弱性はありませんが、2 年前に Windows XP で、アプリケーションのホットフィックスを必要とする重要な問題が発見されました。
対策
Windows XP に組み込まれている SSDP および UPnP 機能を、どのアプリケーションも使用しないようにするには、次のレジストリ キーに UPnPMode と呼ばれる REG_DWORD レジストリ値を追加します。
HKEY_LOCAL_MACHINE\Software\Microsoft\DirectPlayNATHelp\DPNHUPnP\
次に、値を 2 に設定します。
考えられる影響
UPnP と SSDP 機能が完全に無効になります。UPnP デバイスがネットワークに接続されたときは、ユーザーが手動で設定し管理する必要があります。
IPSec ポリシーの構成
Windows 2000、Windows XP、および Microsoft Windows Server 2003 System オペレーティング システムで使用可能な IPSec は、ネットワーク セキュリティの管理者が TCP/IP トラフィックを許可、ブロック、またはセキュリティのネゴシエートをするためのツールです。IPSec は、アプリケーションに対して独立した透過的なツールです。Windows 2000 における設計上の目標は、IPSec プロトコルの AH 形式または ESP 形式を使用してネットワーク トラフィックをセキュリティで保護する方法を提供することでした。IPSec ポリシーでは、IKE を使用したセキュリティのネゴシエーションに必要な静的 TCP/IP トラフィック フィルタ (別名セレクタ) を提供します。
IPSec の最新機能の詳細な説明については、『Windows Server 2003 Deployment Kit:Deploying Network Services』の「Chapter 6 Deploying IPsec」(英語情報) を参照してください。「Determining Your IPSec Needs」のセクション (英語情報) で、IPSec の使用法を説明しています。展開キットは www.microsoft.com/downloads/details.aspx?FamilyID=d91065ee-e618-4810-a036-de633f79872e&DisplayLang=en からダウンロード可能です。
ほとんどのアプリケーションで、Windows ファイアウォール コンポーネントは悪意ある受信トラフィックに対する適切なホストレベルの保護を提供します。Windows Server 2003 SP1 のセキュリティの構成ウィザード (SCW) を使用すると、大規模な展開の Windows ファイアウォール設定のセットアップや管理が大幅に容易になります。IPSec はホスト間やホストとクライアント間のトラフィックをセキュリティ保護するために必要に応じて使用し、Windows ファイアウォールは通常多くの組織の追加の防護層として広く展開されます。
脆弱性
ほとんどのネットワーク セキュリティ戦略は、組織ネットワーク外からの攻撃を防ぐことに焦点を当てていますが、多くの機密情報は内部からの攻撃により失われます。このような内部からの攻撃では、ネットワーク上のデータの変換、上位層プロトコルの設計や実装の弱点を悪用したコンピュータへのアクセスなどが行われます。攻撃者は、管理者パスワードの不正取得に役立つ情報を得るために、NetBT の Null セッションを使用する場合があります (他のセキュリティ設定が使用されていない場合または偶然オフになっていた場合)。
攻撃者は 1 つのアプリケーション ポートで 1 つの脆弱性を見つけるだけで、コンピュータにアクセスして、場合によってはコンピュータを完全に制御することができます。よく知られているように、多くの種類のデータはネットワーク上で送信されるときに保護されないため、従業員、サポート スタッフ、訪問者がデータをコピーし、分析に使用できます。内部ネットワークとインターネットの間に配置されているファイアウォールでは、このような内部の脅威に対する保護は提供されません。内部のファイアウォールでは、クライアントおよびサーバーの保護に必要な認証によるアクセス制御や、コンピュータ間のネットワーク トラフィックのエンドツーエンド セキュリティを提供できない場合も多くあります。
対策
IPSec フィルタでは、送信元および宛先の IP アドレス、IP プロトコル タイプ、および TCP ポートと UDP ポートにより TCP/IP トラフィックを認識します。IPSec フィルタはワームやウイルスのトラフィックをブロックすることで、悪意のあるコードの伝染を抑制して制御するのに役立ちます。また、攻撃者がリモート シェルやその他の攻撃ユーティリティを利用して、侵入したアプリケーションの内部からコンピュータにアクセスするのが非常に困難になります。IPSec ポリシーを Windows 2000 に適用してポートをブロックする方法の詳細については、https://support.microsoft.com/?scid=813878 のマイクロソフト サポート技術情報の記事「IPSec を使用して特定のネットワーク プロトコルとポートをブロックする方法」を参照してください。また、www.microsoft.com/technet/itsolutions/network/security/ipsecld.mspx のホワイトペーパー『Using IPSec to Lock Down a Server』でも、このガイドと同様の Windows Server 2003 の IPSec の許可/ブロック フィルタリングの手順を追った構成ガイドが提供されています。ただし、Windows 2000 では、マイクロソフト サポート技術情報の 813878 で推奨されている NoDefaultExempt レジストリ設定を追加する必要があります。
Windows Server 2003 では MMC IP セキュリティ ポリシーの管理スナップインが提供されます。このスナップインは、IPSec ポリシーの管理に使用できるグラフィカル ユーザー インターフェイス (GUI) を備えています。このツールは、Windows 2000 および Windows XP のものと非常に似ています。Windows Server 2003 では、IPSec ポリシー フィルタのコンピュータへの適用時にこれらを表示するために、MMC IPSec モニタ のスナップインと NETSH IPSec コマンドライン ユーティリティが用意されています。許可およびブロック フィルタは、IKE クイック モードの構成に表示されます。IKE クイック モードの一般的なフィルタは、割り当てられた IPSec ポリシーで定義されているフィルタです。IKE クイック モード固有のフィルタは、コンピュータの特定の IP 構成に適用されるポリシーから決定されます。IKE クイック モード固有の機能である [一致フィルタの検索] は、許可およびブロック フィルタの一致には使用できません。ネゴシエート アクションを行うフィルタのみが対象です。
以下の用語については、セクションの後半部分で説明します。
フィルタ一覧 : ポート、プロトコル、および方向を含みます。フィルタ一覧は、トラフィックがこの一覧で指定された内容と一致している場合の決定をトリガします。1 つのリストは複数のフィルタを含むことができます。
フィルタ操作 : トラフィックがフィルタ一覧と一致している場合に要求される応答です。指定された操作には、特定のトラフィックのブロックまたは許可が含まれます。
ルール : ルールはフィルタ一覧とフィルタ操作の相関関係です。
IPsec ポリシー : ルールの集まりです。一度に 1 つのポリシーだけをアクティブにすることができます。
この情報を記録する簡単な方法は、ネットワーク トラフィック マップと呼ばれるテーブルに記録することです。ネットワーク トラフィック マップには、サーバー ロール、ネットワーク トラフィックの方向、トラフィックの宛先、インターフェイスの IP アドレス、IP プロトコル、TCP ポート、および関連する User Datagram Protocol (UDP) ポートに関する基本的な情報が格納されます。ネットワーク トラフィック マップのサンプルを次の表に示します。
ネットワーク トラフィック マップは、特定のサーバーで送受信されるネットワーク トラフィックの種類を理解するのに役立ちます。IPSec ポリシーを作成する前に、サーバーが正常に機能するために必要なトラフィックについて正しく理解しておくことが重要です。正しく理解しておかないと、厳密過ぎるフィルタを作成してしまい、アプリケーションのエラーにつながる可能性があります。
トラフィック マップを作成するには
サーバー ロールに必要なベース ネットワーク サービスを決定します。
各サービスで必要なプロトコルとポートを特定します。このプロセスでは、ネットワーク モニタを使用してネットワーク トラフィックのキャプチャと分析を行って、宛先アドレス、プロトコル、およびポートを決定する場合もあります。また、Netstat.exe コマンドなどのツールを使用して、開いているポートとアクティブな接続を表示することもできます。
特定されたトラフィックのみを許可するために必要な IPSec フィルタ ルールを文書化します。
最も制限の厳しい IPSec フィルタから開始して、必要に応じて追加ポートを開くようにすると、これらの設定で可能な最高レベルのセキュリティを実現できます。サービスをクライアント サービスとサーバー サービスに分けている場合、このプロセスはさらに容易になります。サーバー サービスは、コンピュータが他のホストに提供している任意のサービスに対して定義する必要があります。
表 11.1 ネットワーク トラフィック マップのサンプル
サービス | プロトコル | 発信元ポート | 宛先ポート | 発信元アドレス | 宛先アドレス | 処理 | ミラー |
---|---|---|---|---|---|---|---|
HTTP サーバー | TCP | 任意 | 80 | 任意 | ME | 許可 | あり |
HTTPS サーバー | TCP | 任意 | 443 | 任意 | ME | 許可 | あり |
DNS クライアント | TCP | 任意 | 53 | ME | DNS | 許可 | あり |
Block everything | 任意 | 任意 | 任意 | 任意 | 任意 | ブロック | あり |
サービス | プロトコル | 発信元ポート | 宛先ポート | 発信元アドレス | 宛先アドレス | 処理 | ミラー |
---|---|---|---|---|---|---|---|
Inbound ICMP for TCP PMTU | ICMP | 任意 | 任意 | 任意 | ME | 許可 | 不可 |
Inbound IIS Server HTTP:80 | TCP | 任意 | 80 | 任意 | ME | 許可 | あり |
Inbound IIS Server FTP:21 | TCP | 任意 | 21 | 任意 | ME | 許可 | あり |
Inbound Terminal Server | TCP | 任意 | 3389 | 任意 | ME | 許可 | あり |
Me to Domain DCs all traffic | 任意 | 任意 | 任意 | ME | ドメイン名 | 許可 | あり |
Outbound DNS UDP/TCP | UDP | 任意 | 53 | ME | DNS | 許可 | あり |
Outbound DNS UDP/TCP | TCP | 任意 | 53 | ME | DNS | 許可 | あり |
Outbound WINS | UDP | 137 | 137 | ME | WINS | 許可 | あり |
Outbound DHCP | UDP | 68 | 67 | ME | DHCP | 許可 | あり |
Outbound HTTP:80 | TCP | 任意 | 80 | ME | 任意 | 許可 | あり |
Block everything | 任意 | 任意 | 任意 | 任意 | 任意 | ブロック | あり |
C:\Documents and Settings\testuser.domain.000>netstat -ano Active Connections
Proto Local Address Foreign Address State PID TCP
0.0.0.0:135 0.0.0.0:0 LISTENING 740 TCP 0.0.0.0:445
0.0.0.0:0 LISTENING 4 TCP 0.0.0.0:1025 0.0.0.0:0
LISTENING 884 TCP 0.0.0.0:1046 0.0.0.0:0 LISTENING
508 TCP 192.168.0.5:139 0.0.0.0:0 LISTENING 4 UDP
0.0.0.0:445 : 4 UDP 0.0.0.0:500 : 508 UDP
0.0.0.0:1026 : 816 UDP 0.0.0.0:1029 : 508 UDP
0.0.0.0:1051 : 452 UDP 0.0.0.0:4500 : 508 UDP
127.0.0.1:123 : 884 UDP 192.168.0.5:123 :
884 UDP 192.168.0.5:137 : 4 UDP 192.168.0.5:138
: 4
次に、TCP 送信元ポート 25 から開いている各 TCP ポートへの特定の攻撃をブロックするために、以下の表のルールが定義されます。
表 11.3 送信方向の Web ブラウジングが可能なネットワーク トラフィック マップのサンプル (改定)
サービス | プロトコル | 送信元ポート | 宛先ポート | 発信元アドレス | 宛先アドレス | 処理 | ミラー |
---|---|---|---|---|---|---|---|
Inbound ICMP for TCP PMTU | ICMP | 任意 | 任意 | 任意 | ME | 許可 | 不可 |
Inbound IIS Server HTTP:80 | TCP | 任意 | 80 | 任意 | ME | 許可 | あり |
Inbound IIS Server FTP:21 | TCP | 任意 | 21 | 任意 | ME | 許可 | あり |
Inbound Terminal Server | TCP | 任意 | 3389 | 任意 | ME | 許可 | あり |
Me to Domain DCs all traffic | 任意 | 任意 | 任意 | ME | ドメイン名 | 許可 | あり |
Outbound DNS UDP/TCP | UDP | 任意 | 53 | ME | DNS | 許可 | あり |
Outbound DNS UDP/TCP | TCP | 任意 | 53 | ME | DNS | 許可 | あり |
Outbound WINS | UDP | 137 | 137 | ME | WINS | 許可 | あり |
Outbound DHCP | UDP | 68 | 67 | ME | DHCP | 許可 | あり |
Outbound HTTP:80 | TCP | 任意 | 80 | ME | 任意 | 許可 | あり |
Mitigation from inbound src 80 attack | TCP | 80 | 135 | 任意 | ME | ブロック | 不可 |
Mitigation from inbound src 80 attack | TCP | 80 | 139 | 任意 | ME | ブロック | 不可 |
Mitigation from inbound src 80 attack | TCP | 80 | 445 | 任意 | ME | ブロック | 不可 |
Mitigation from inbound src 80 attack | TCP | 80 | 1025 | 任意 | ME | ブロック | 不可 |
Mitigation from inbound src 80 attack | TCP | 80 | 1046 | 任意 | ME | ブロック | 不可 |
Block everything | 任意 | 任意 | 任意 | 任意 | 任意 | ブロック | あり |