URLフィルタリングによる特定HTTPSサイトのブロック方法

Printer Friendly Page

※この記事は以下の記事の日本語訳です。
URLフィルタリングによる特定HTTPSサイトのブロック方法
https://live.paloaltonetworks.com/t5/Configuration-Articles/How-to-Block-a-Specific-HTTPS-Site-with-...

 

概要

URLフィルタリングは特定のHTTPSサイトをブロックし、同時にその配下のサイトをすべて許可したい場合、いくつかの課題を提示します。
たとえば、"https://public.example.com/extension1/a" はブロックしたいものの、"https://public.example.com/extension1/b" は許可したい場合などです。

 

セキュリティポリシーとカスタムURLカテゴリを利用する場合、そのサイトの提供する証明書の「発行先」のコモンネーム(Common Name, CN)でしかマッチさせることができません。

 

Note: PAN-OS 6.0リリースより、 SSLセッションの "Client Hello message"に含まれる SNI(Server Name Indication) でマッチさせることができます。詳細は Resolving URL Category in Decryption Policy When Multiple URLs are Behind the Same IP を参照ください。

 

以下のスクリーンショットでは、コモンネームが "*.example.com" であることを確認できます。

Screen Shot 2014-06-05 at 4.07.30 PM.png

 

セキュリティポリシーでは"*.example.com"をブロックできますが、そのサイト全体がブロックされてしまいます。これでは望ましくないので、URLフィルタープロファイル (URL Filtering Profile) を設定する必要があります。しかしながら、URLフィルタープロファイルを利用する場合の問題は、ファイアーウォール上でそのセッション内のURL全体を精査しなければならないことです。セッションはSSLで暗号化されていますので、復号ポリシーを有効にしないと通信内容を確認できません。

 

SSL復号化は注意して実装する必要があります。もし、まだファイアウォール上でこれが実装されていない場合、必要な通信に対してのみ復号化 (Decryption) を実施します。復号ポリシーには「URLカテゴリ」を設定することができます。復号化では、セキュリティポリシーと同じ理由で、HTTPSサイト上の特定のサブページでブロックが必要なことを知ることができません。復号ポリシーは、提供された証明書の発行先のCNをチェックします。もしこれが設定上のURLカテゴリにマッチした場合、SSLセッションの復号化を実施します。

 

これは "*.example.com" に対し復号化を実施し、URLフィルタで "public.example.com/extension1/a" 宛ての通信をブロックしたい場合に有用な方法です。

Note: "https://" 部分は上記URLから除外しています

 

手順

以下の手順を実施することで、このような動作を設定できます:

  1. Objects > Custom Objects > URL Category へ移動し、"Example Blacklist" という名前のカスタム URL カテゴリを作成します。そこに「public.example.com/extension1/a」のURLを追加します。 URLリストの頭に「https://」は含めないでください。
    Screen Shot 2014-06-05 at 4.18.48 PM.png
  2. Objects > Custom Objects > URL Category で、"Wildcard Blacklist" のカスタム URL カテゴリを作成します。URLリストに「*.example.com」を追加します。
    Screen Shot 2014-06-05 at 4.19.55 PM.png
  3. Objects > Security Profiles > URL Filtering に移動し、"Blacklisted HTTPS Sites" という名前の URL Filtering profileを作成します。"Example Blacklist" のカスタム URL カテゴリーのアクションを「block」にします。 (これにより URL Filtering profile の URL Block Categories に追加されます)
    Screen Shot 2014-06-05 at 4.22.08 PM.png
  4. Policies > Securityに移動し、trust から untrust 宛の通信用に "Deny HTTPS Sites" のポリシーを作成します。アクションは  allow のままで、Profile Settings > Profile Type を選択し、URL Filtering で "Blacklisted HTTPS Sites" のプロファイルを選択します。
    Screen Shot 2014-06-05 at 4.24.15 PM.pngScreen Shot 2014-06-05 at 4.23.59 PM.png
  5. Device > Certificate Management > Certificatesへ移動し、"Palo Alto Decryption Trusted" と "Palo Alto Decryption Untrusted" という2つの自己署名 (self-signed) CA 証明書を生成します。 証明書の CN を "Palo Alto Decryption Untrusted" ではファイアウォールの信頼された IP を、 "Palo Alto Decryption Trusted" では任意のものを指定します。 (これらの証明書をエクスポートし、Group Policy等を利用してユーザへプッシュします)。"Palo Alto Decryption Trusted" 証明書を開き、 "Forward Trust Certificate" のチェックを入れます。また、"Palo Alto Decryption Untrusted"  証明書では "Forward Untrust Certificate"にチェックします。
    Screen Shot 2014-06-05 at 4.28.04 PM.pngScreen Shot 2014-06-05 at 4.28.12 PM.png
  6. Policies > Decryption へ移動し、"Decrypt Blacklisted Sites" という復号ポリシーを追加します。送信元ゾーンをtrust、宛先ゾーンを untrust、 URL カテゴリに "Wildcard Blacklist"、 オプションでは Action: Decrypt、Type: SSL Forward Proxy とします。Screen Shot 2014-06-05 at 4.32.22 PM.png
  7. コミット後、 https://public.example.com/extension1/a はブロックされます。