セキュリティ

Windows ファイアウォールの調査

Steve Riley

 

概要:

  • 受信の保護と送信の保護
  • Windows Filtering Platform
  • Advanced Security インターフェイス
  • ネットワーク プロファイル

古いコンピューティングの時代には、個々のコンピュータにファイアウォールをインストールしようと考える人はいませんでした。そもそも必要とする人がいたでしょうか。インターネットについて聞いたことのある人はほとんどなく、TCP/IP はどこにも見えず、LAN プロトコルが建物やキャンパスから外に出ることはありませんでした。重要なデータは

メインフレームやファイル サーバーに保存されていました。人々がデスクトップ コンピュータに保持していた情報がミッション クリティカルであることはまれであり、コンピュータ自体の重さで一定量の適正な物理的セキュリティをまかなっていました。インターネットへの接続が使用可能な場合は、たいてい途中にプロトコル トランスレータがあったり、おそらく多くのルールと例外を使用して構成されたパケット フィルタリング ルーター (つまり "ファイアウォール") がエッジにあったりしました。

最近のコンピューティング環境は、そのような古い時代とは大きく異なります。すべてのものがインターネットに接続され (TCP/IP と通信し)、ポータブル デバイスが標準になっています。事業主は従業員にノート パソコンを与えることが多くなりました。それは従業員を気にかけているからではなく、従業員から多くのものを得ようとしているからです。事業主は、5 分の空き時間と Wi-Fi 接続があればいつでも仕事をするよう従業員に期待しています。ノート パソコンはデスクトップ パソコンよりもコストがかかる場合がありますが、その投資は確実に生産性で回収されます。ご存知のように、あなたやあなたの敵対者にとってノート パソコンを非常に魅力のあるものにしているのは、そのポータビリティです。

考えてみてください。ノート パソコンの電源を入れてなんらかのネットワークに接続している合計時間のうち、社内ネットワークに接続している時間は何パーセントでしょうか。筆者と同様なら、おそらく最大 20% でしょう。これは、ノート パソコンが安全な Microsoft 社内ネットワークの境界内にあり、ネットワーク周辺の防御によって外部の攻撃から保護されているのは合計時間の 20% だけであることを意味します。ノート パソコンがあらゆる実際的な目的でインターネットに直接接続されている 80% の時間についてはどうでしょうか (そして筆者は、コンピュータ セキュリティ会議におけるホテルの LAN など、世界中で最も危険なネットワークに接続することが頻繁にあります)。また、社内ネットワークに接続しているときに、その環境内の他のコンピュータから受ける脅威についてはどうでしょうか。

セキュリティ制御は脅威の後を追って (かなり遅れることもあります) 進化します。ウイルスは人々のフロッピー ディスクのやり取りを原因とするクライアントの問題であったため、最初、ウイルス対策プログラムはクライアントに出現しました。続いて、電子メールが普及し、マルウェアが電子メール配布に依存するワームに成長すると、マルウェア対策プログラムが進化して電子メール ゲートウェイに出現しました。Web が出現すると、マルウェアはトロイの木馬に成長し、マルウェア対策がインターネット アクセス プロキシ サーバーに登場しました。これは、だれも文句を付けることのない、よく理解されている進化の道筋です。

ここで、ファイアウォールに同じロジックを適用してみましょう。ネットワークのエッジにあるファイアウォールは過去の脅威に対しては十分な保護でしたが、脅威が異なり、より巧妙になり、より普及すると十分とは言えなくなります。言うまでもなく、デバイスと作業スタイルは過去とは大幅に異なります。多くのコンピュータには機密情報がローカルに保存され、社内ネットワークから離れた場所 (つまり、エッジの外) で長時間使用されます。このため、ファイアウォールは個々のクライアント保護メカニズムに進化する必要があります。間違えないでください。クライアント ファイアウォールはもはやオプションではありません。コンピュータを社内ネットワークおよびインターネットから保護するには、クライアント ファイアウォールが必須です。

クライアント ファイアウォールとセキュリティ シアター

多くの人々は、Windows® XP の初期リリースにクライアント ファイアウォールが含まれていることを認識していませんでした。ファイアウォールは既定でオフになっており、非常に多くのマウス クリックを行わないと見ることができなかったため、これは驚くことではありません。ファイアウォールは、その目的の説明や使用方法のガイダンスなしに、どちらかと言うとひそかに出現しました。しかし、ファイアウォールは機能していました。ファイアウォールを有効にしていれば、Nimda、Slammer、Blaster、Sasser、Zotob など、ネットワーク ポートで要求されていないトラフィックによる侵害を試みるあらゆる攻撃からコンピュータが保護されました。クライアント保護の重要性を認識して、Windows XP Service Pack 2 (SP2) はファイアウォールを既定で有効にし、2 つのプロファイル (インターネット用と社内ネットワーク用) を作成し、グループ ポリシーの有効化を可能にしました。

あいにく、アプリケーション上の考慮事項とセキュリティ シアター (実体のない見た目だけのセキュリティ対策) という 2 つの障壁により、Windows XP SP2 ファイアウォールの採用が遅れました。多くの人々は、ファイアウォールによってアプリケーションが正しく機能しなくなることを心配しました。しかし、ファイアウォールの設計上、これは非常にまれなケースです。ファイアウォールはすべての送信トラフィックがコンピュータから出て行くことを許可しますが、先に行われた送信要求に対する応答以外の受信トラフィックはすべてブロックされました。この設計がクライアント上のアプリケーションを中断させるのは、アプリケーションがリスニング ソケットを作成し、受信要求の受信を予期する場合だけでした。Windows XP ファイアウォールでは、プログラムまたはポートの例外の単純な構成が可能でした (しかし、残念ながらグループ ポリシーを通じた構成ではありませんでした)。

より大きな妨げは、他のクライアント ファイアウォールの製造元によって実行されるセキュリティ シアターでした。一部の人々は、Windows XP ファイアウォールの設計 (つまり、すべての送信トラフィックの自由な送信を許可すること) は、クライアント ファイアウォールにとって不十分な機能であると信じていました。十分なクライアント ファイアウォールでは、ユーザーが明示的に権限を付与したのでない限り、受信と送信のすべてのトラフィックをブロックする必要があるというのがその主張でした。

ここで少し考えてみましょう。2 つのシナリオが浮かび上がります。

  • ローカル管理者として実行し、マルウェアに感染した場合、マルウェアは単純にファイアウォールを無効にします。コンピュータは乗っ取られてしまいます。
  • ローカル管理者として実行しているのではない場合にマルウェアに感染すると、マルウェアが原因でサードパーティ ファイアウォールはダイアログを表示します。このダイアログには、ポートと IP アドレスに関する外国語と、「これを許可しますか?」という非常に深刻な質問が表示されます。もちろん、唯一の回答は「許可するよ、愚かなコンピュータめ。いちいち聞かないでくれ!」です。そして、ダイアログが消えた後、セキュリティも消えることになります。または、より一般的なケースとして、既に承認したプログラムの既存のセッションがマルウェアに乗っ取られ、ダイアログすら表示されないことがあります。この場合もコンピュータは乗っ取られます。

セキュリティについて理解する必要のある重要な原則があります。保護は、阻止しようとしているものではなく、保護する資産に属するということです。正しいアプローチは、簡潔だが効果的な Windows ファイアウォールを組織のすべてのコンピュータで実行して、世界中の他のすべてのコンピュータから各コンピュータを保護することです。既に危険にさらされているコンピュータからの送信接続をブロックしようとする場合、コンピュータが求められていることを本当に行っているかどうかはどうすればわかるでしょうか。答えは次のとおりです。できません。送信保護はセキュリティ シアターです。つまり、実際にはセキュリティを改善していないのにセキュリティを改善しているという印象を与えるだけのからくりです。このため、送信保護は Windows XP ファイアウォールに存在せず、Windows Vista™ ファイアウォールにも存在しません (Windows Vista での送信制御については後でもう少し詳しく説明します)。

Windows Vista の新機能

新しいネットワーク スタックの一部である Windows Filtering Platform は、Windows Vista ファイアウォールの基盤です。Windows XP と同様に、Windows Vista は既定で受信トラフィックをブロックします。コンピュータが使用しているプロファイルに応じて、ネットワーク サービスの既定の例外がある場合があります (プロファイルについては後で説明します)。必要に応じて、受信接続を許可するルールを作成できます。また、Windows XP と同様に、Windows Vista も対話型プロセスからのすべての送信トラフィックを既定で許可しますが、サービス制限に参加しているサービスからの送信トラフィックは制限します。この場合も、追加の送信接続をブロックするルールを作成できます。

Windows XP と Windows Vista の大きな違いは、新しい Advanced Security (セキュリティが強化された) インターフェイスと、構成とルールの完全なグループ ポリシー サポートです (図 1 を参照)。古いコントロール パネル UI は現在も存在し、新しい UI になったログとインターネット制御メッセージ プロトコル (ICMP) の設定を除いてほとんど変更されていません。この新しい UI である Advanced Security MMC スナップインは、新しい機能と柔軟性をすべて備えています。netsh コマンドの新しいコンテキスト netsh advfirewall を使用して、ルールの追加と削除のスクリプト化、グローバルおよびプロファイル単位のポリシーの設定と表示、およびファイアウォールのアクティブ状態の表示を行うことができます。また、開発者は、FirewallAPI.dll と Netfw.h を使用してファイアウォールのすべての設定をプログラムで制御できます。

図 1 セキュリティが強化された Windows ファイアウォール

図 1** セキュリティが強化された Windows ファイアウォール **(画像を拡大するには、ここをクリックします)

Advanced Security MMC はウィザード形式です。ルールを作成する場合は、プログラム、ポート、定義済み、カスタムの 4 種類から 1 つ選択できます。詳細については、図 2 を参照してください。

Figure 2 4 種類のルール

種類 目的
プログラム 特定のプログラムのトラフィックを許可またはブロックするために使用されます。
ポート 特定の TCP または UDP ポートでトラフィックを許可またはブロックするために使用されます。
定義済み 既存のルール グループを使用して、ネットワーク上の Windows 機能 (ファイルとプリンタの共有やリモート アシスタンスなど) を有効にします。
カスタム すべてのノブ、ダイヤル、ボタン、およびスイッチを公開して、特定のルールを必要に応じて構成できるようにします。

ルールを作成するときに参照できる要素は多数あり、そのすべてがローカル ルールおよびグループ ポリシーを通じて適用されるルールで使用可能です。これらの要素には、Active Directory® ユーザーとコンピュータのアカウントおよびグループ、送信元と送信先の IP アドレス、送信元と送信先の TCP ポートと UDP ポート、IP プロトコル番号、プログラムとサービス、インターフェイスの種類 (有線、ワイヤレス、またはリモート アクセス)、および ICMP の種類とコードが含まれます。

構成した後で、ファイアウォールは次の順序でルールを処理します。

サービスの制限 Windows Vista のサービスの一部は、Blaster スタイル攻撃の可能性を制限するために自身を制限します。制限の 1 つとして、サービスに必要なポートの一覧があります。ファイアウォールはこれを実施し、サービスが他のポートを使用 (または使用するよう指示) することを防ぎます。

接続セキュリティ ルール Advanced Security MMC には、IPsec とファイアウォールが組み込まれています。IPsec ポリシーを含むルールが次に処理されます。

認証済みバイパス 指定された認証済みコンピュータが他のルールをバイパスできるようにします。

ブロック ルール 指定された受信または送信トラフィックを明示的にブロックします。

許可ルール 指定された受信または送信トラフィックを明示的に許可します。

ファイアウォール ルールはレジストリに格納されますが、その正確な場所については説明しません。まあいいでしょう。これらは次の場所に見つかります。

  • HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Services\SharedAccess\Defaults\FirewallPolicy\FirewallRule
  • HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\FirewallRules
  • HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\RestrictedServices\Static\System

レジストリのルールは直接編集しないでください。もし編集したら、あなたを探して eBay のオークションであなたのペットを売ってしまいますよ。おそらく編集はしないでしょうが、ルールを編集する唯一の方法は Advanced Security MMC を使用することです。

ネットワーク プロファイル

Windows Vista は、ドメイン、プライベート、パブリックという 3 つのネットワーク プロファイルを定義します。コンピュータがドメインに参加し、ドメインに正常にログインしている場合、コンピュータはドメイン プロファイルを自動的に適用します。この選択を自分で行うことはできません。コンピュータがドメインのない内部ネットワーク (自宅のネットワークや小規模なオフィス ネットワーク) に接続されている場合、ユーザー (または管理者) はプライベート プロファイルを適用する必要があります。最後に、コンピュータがインターネットに直接接続されている場合は、パブリック プロファイルを適用する必要があります。

Windows Vista は、この選択をどのようにして決定するのでしょうか。ネットワーク変更が行われるたび (たとえば、新しい IP アドレスを受け取ったり、新しい既定のゲートウェイを検出したり、新しいインターフェイスを取得したりするたび) に、Network Location Awareness (NLA) と呼ばれるサービスによって変更が検出されます。このサービスは、ネットワーク プロファイルを作成し、それに GUID を割り当てます。このプロファイルには、既存のインターフェイス、ドメイン コントローラでのコンピュータの認証の有無、ゲートウェイの MAC アドレスなどの情報が含まれます。NLA は、ファイアウォールに通知し、ファイアウォールは対応するポリシーを適用します (3 つのプロファイルごとにポリシーが定義されています)。

これがそれまでコンピュータに存在しなかった新しいインターフェイスであり、NLA がドメイン プロファイルを選択しなかった場合は、接続先のネットワークの種類を指定するよう求めるダイアログ ボックスが表示されます。不思議なことに、[Home] (ホーム)、[Work] (業務)、[Public] (パブリック) の 3 つの選択肢があります。[Work] (業務) はドメイン プロファイルを意味すると思われるかもしれませんが、実際にはそうではありません。思い出してください。コンピュータがドメインにログオンしたときに NLA がドメイン プロファイルを自動的に選択するため、ユーザーがドメイン プロファイルを見ることはありません。実際には、[Home] (ホーム) と [Work] (業務) はプライベート プロファイルに対応します。これらは機能的に同等で、アイコンだけが異なります (注 : プライベート プロファイルを選択するには、ローカル管理者であるか、ローカル管理者に昇格できる必要があります)。予想されるように、[Public] (パブリック) はパブリック プロファイルに対応します。

Windows Vista では、ネットワーク プロファイルはコンピュータのすべてのインターフェイスに適用されます。次に、NLA ディシジョン ツリーを要約します。

  1. 接続されているすべてのネットワークを検証します。
  2. ネットワークに接続しているインターフェイスに、パブリックとして分類されるものがありますか。答えが「はい」の場合は、コンピュータのプロファイルをパブリックに設定して終了します。
  3. ネットワークに接続しているインターフェイスに、プライベートとして分類されるものがありますか。答えが「はい」の場合は、コンピュータのプロファイルをプライベートに設定して終了します。
  4. すべてのインターフェイスがドメイン コントローラを参照し、コンピュータが正常にログオンしましたか。答えが「はい」の場合は、コンピュータのプロファイルをドメインに設定して終了します。
  5. それ以外の場合は、コンピュータのプロファイルをパブリックに設定します。

目標は、できるだけ制限的なプロファイルを選択することです。ただし、明白な副作用が 2 つあります。最初に、コンピュータのイーサネット ポートが社内ネットワークに接続され、そのワイヤレス NIC が階下のスターバックスに接続されている場合、コンピュータはドメイン プロファイルではなくパブリック プロファイルを選択します。次に、コンピュータがインターネットに (パブリック プロファイルで) 直接接続されているか、家庭内 LAN に (プライベート プロファイルで) 接続されている場合に、社内ネットワークへの VPN 接続を行うと、コンピュータはパブリックまたはプライベート プロファイルのままになります。

これは何を意味しているのでしょうか。ファイアウォールのドメイン プロファイルに対するポリシーには、リモート アシスタンス、リモート管理、ファイルとプリンタの共有などに対するルールが含まれます。クライアントにリモートでアクセスするためにこれらのルールに依存した場合、クライアントが他のプロファイルを選択した場合はアクセスできなくなります。しかし、失望しないでください。ファイアウォール ルールを作成して、必要な受信接続を許可してから、それらを VPN 接続にのみ適用することができます。これで、クライアントがドメイン プロファイルではない場合でも、VPN 上でクライアントを管理できます。

送信接続を制御する

前に筆者は、クライアント ファイアウォールでの送信保護の典型的な形式はセキュリティ シアターであると述べました。しかし、送信制御の 1 つの形式は非常に有用です。それは、許可しないことがわかっている特定の種類のトラフィックを管理的に制御することです。Windows Vista ファイアウォールは、サービス制限に対して既にこの処理を行っています。ファイアウォールでは、サービスに必要なポートでのみ通信を許可し、サービスが試行するその他すべての通信をブロックします。特定のトラフィックを許可またはブロックして組織のセキュリティ ポリシーを満たす追加ルールを作成することで、これを行うことができます (図 3 を参照)。

図 3 新しい受信ルール ウィザード

図 3** 新しい受信ルール ウィザード **(画像を拡大するには、ここをクリックします)

たとえば、ユーザーが特定のインスタント メッセージング クライアントを実行することを禁止するとします。そのクライアントについてログイン サーバーへの接続をブロックするルールを (もちろんグループ ポリシーで) 作成できます。

ただし、このアプローチには実際的な制限があります。たとえば、Windows Live™ Messenger (以前は MSN® Messenger という名前でした) には、ログインに使用できるさまざまなサーバーがあり、そのリストは常に変化しています。それに加えて、既定のポート 1863/tcp がブロックされている場合は、ポート 80/tcp を使用します。Windows Live Messenger がログイン サーバーに接続することをブロックするルールは非常に複雑で、常に変化します。管理的な送信制御が有用であることを示すために言及しましたが、ユーザーにインストールと実行を許可するソフトウェアを厳密に管理する必要がある場合に、これはソフトウェアの制限のポリシーの代わりにはなりません。

コンピュータを保護する

境界はなくなっています。すべてのコンピュータは、自身の保護について責任を持つことが必要になりました。クライアントからエッジに移行したマルウェア対策と同様に、ファイアウォールもエッジからクライアントに移行する必要があります。既にインストールしてあるファイアウォールを有効にすることで、すぐにアクションを行うことができます。

システムで Windows XP を実行しているか、既に Windows Vista に移行しているかにかかわらず、Windows ファイアウォールはすべてのクライアントで使用可能であり、モバイルを使用する従業員がオフィスから数千マイル離れている場合でも、組織内のセキュリティを高めるために必要な保護が提供されます。

詳細を知りたい方のために

Steve Rileyは、Microsoft Trustworthy Computing Group の Senior Security Strategist であり、TechNet Magazine** の編集にも携わっています。また、世界中を飛び回って各種カンファレンスでの講演や、お客様のセキュリティを確保、維持するための手助けを行っています。Steve の最新の著書は、『Protect Your Windows Network』(Addison-Wesley、2005 年刊) です。**連絡先は、steve.riley@microsoft.com (英語のみ) です。

© 2008 Microsoft Corporation and CMP Media, LLC. All rights reserved; 許可なしに一部または全体を複製することは禁止されています.