SSL Decryption設定と試験方法

Printer Friendly Page

※この記事は以下の記事の日本語訳です。

How to Implement and Test SSL Decryption

https://live.paloaltonetworks.com/t5/Configuration-Articles/How-to-Implement-and-Test-SSL-Decryption...

 

概要

PAN-OSはPalo Alto Networks ファイアウォールを経由する通信の復号化、SSL インバウンド/アウトバウンド インスペクションを実施します。SSLの復号化は、Layer 3およびVirtual Wireモードで使われるインターフェイスで、SSLルールによって、トラフィックの復号化設定されたものに対して実施されます。特に、復号化は、URLカテゴリー、ソースユーザー、そしてソースアドレス、ターゲットアドレスをベースにして指定することができます。一旦復号化されると、暗号化トンネル内のアプリケーション、脅威、URLフィルタリング、ファイル ブロッキング、データ フィルタリングなどを検知してコントロールすることができます。復号化された通信がファイアウォールから流出することはありません。

 

SSL インバウンド インスペクション

内部Webサーバー、終端装置への内側方向通信の場合、管理者は守るべきサーバー証明書やキーのコピーを取り込む必要があります。ファイアウォールにサーバー証明書とSSL復号化ポリシーが内側方向の通信に設定されていると、ファイアウォールはトラフックを復号化、情報を読み取った後に転送します。パケット データ及びクライアント システムから内部サーバーへの暗号化通信には変更は加えられません。ファイアウォールは暗号化通信を通じて、悪意のあるコンテンツの検知、アプリケーション コントロールを実施します。

 

アウトバウンドSSL復号化 SSLフォワード プロキシ)

ファイアウォールが外側通信SSLに対して、SSL通信をインターセプトしてそのユーザーがアクセスしたいサイトの証明書を作り、プロキシの動作をする場合です。 機器上で生成された証明書の有効日付は、実際のサーバー証明書から取得されます。機器上で生成された証明書の発行局はPalo Alto Networks機器です。もしファイアウォールの証明書が既存階層の一部でなかったり、クライアント インターネット ブラウザにキャッシュとして追加されていない場合、クライアントはセキュアなサイトにアクセスする際に、警告メッセージを受け取ります。もし実際のサーバー証明書がPalo Alto Networksファイアウォールによって信任されていない認証局によって発行されている場合、攻撃者が仲介していないかユーザーに警告するために、復号化証明書を2次的な信頼されない認証局 (CA)キーとして扱われます。

 

SSL復号化設定をするためには

  1. ファイアウォールに通信を処理する設定をし、ネットワーク上に設置
  2. 認証局 (CA)がファイアウォール上に設定
  3. SSL復号化ルールの設定
  4. SSL復号化、通知ページ設定 (任意設定)
  5. 設定変更をCommitし、復号化試験

 

手順

1. ファイアウォールに通信を処理する設定をし、ネットワーク上に設置

Palo Alto Networks ファイアウォールには、既に動作するインターフェイス(Virtual WireもしくはLayer 3)、ゾーン、セキュリティ ポリシーが設定されており、通信が通過していることをご確認ください。

 

2. 認証局 CA)がファイアウォール上に設定

認証局 (CA) が生成されたSSL証明書によって、トラフィックを正しく復号化するためには、ファイアウォール上で自己証明書を作成するか、従属するCA(社内にあるPKI構成)からをインポートすることです。"Forward Trust Certificate" と "Forward Untrust Certificate" を一つ以上の証明書で、ファイアウォールで通信を復号化するために有効にします。

注意 :  SSL証明書プロバイダー(Entrust, Verisign, Digicert, GoDaddyなど)は認証局 (CA) を販売していません。これらはSSL復号化ではサポートされていません。

 

ファイアウォールのGUIにアクセスし、Device > Certificatesに移動します。インバウンド インスペクションもしくはアウトバウンド インスペクション(SSLフォワード プロキシ)の為、証明書を取り込むか、生成します。

 

自己証明書を作る

自己証明書を作ることを推奨します。自己証明書の作り方については以下の記事をご参照ください。

How to Generate a New Self-Signed SSL Certificate

 

Microsoft Certificate Serverから証明書を作成、インポートする

  1. 組織に帰属するMicrosoft Certificate Serverから、Advanced Certificateを“Subordinate CA”証明書テンプレートを使用してリクエストして、証明書をダウンロードします。
  2. ダウンロードの後、ローカルの証明書ストアから、証明書をエクスポートします。IE設定ではインターネット オプション設定 -> コンテンツ タブ -> 証明書をクリックします。新しい証明書は、個人タブからエクスポートできます。証明書のエクスポート ウィザードを選び、プライベート キーをエクスポートします。そしてフォーマットとパスフレーズ、ファイル名、保存先を選びます。証明書はPFXフォーマット(PKCS #12)となります。
  3. 証明書を取り出すために、以下のopenSSLコマンドを実行します。
    openssl pkcs12 –in pfxfilename.pfx –out cert.pem –nokeys
  4. キーを取り出すためにはopenSSLの以下のコマンドです。
    openssl pkcs12 –in pfxfilename.pfx –out keyfile.pem -nocerts
  5. pemファイルとkeyfile.pemファイルをPalo Alto Networksファイアウォールに取り込むには、Deviceタブ > Certificates画面です。
  6. High Availability (HA)ペアの場合、これらのファイルをセカンダリーのPalo Alto Networksファイアウォールにロードする、もしくは証明書とキーをコピーするには、DashboardのHigh Availabilityウィジットにて実行します。

 

以下が"Forward Trust"と"Forward Untrust"証明書の例です。

cert-info-ssl-decrypt.png

 

 

注意 : 自己証明局を使う場合、公共CA 証明書をファイアウォールからエクスポートし、各々の端末ブラウザーに信頼されたルート証明機関としてインストールすることにより、ブラウザー上で信頼されないルート証明機関としてエラー表示されるのを避ける必要があります。ネットワーク管理者はグループ ポリシー(GPO)を使って各々のワークステーションに証明書を配布することができます。

 

以下は自己証明局のCA証明書を信用していない場合のブラウザー上のエラー例です。

 

信頼されていないCA 証明書エラー : Firefox

ssl-decrypt1.png

 

信頼されていないCA 証明書エラー : Chrome

ssl-decrypt2.png

 

信頼されていないCA 証明書エラー : Internet Explorer

ssl-decrypt3.png

 

3. SSL復号化ルールの設定

ネットワーク管理者は復号化する他の要件を決定します。SSL復号化ルールにはいくつかの推奨があります。

  • 復号化するルールを徐々に進める方法 : 復号化するルールを特定のものからスタートして、典型的なSSL通信をファイアウォールにより復号化してモニターします。
  • ユーザーがプライバシー侵害と考える次のようなカテゴリを復号化することを避けます。
    • Financial services
    • Health and medicine
  • サーバーがクライアント証明(ユーザーID特定の為)を要求するようなアプリは復号化しないようにします。
  • PAN-OS 5.0から紹介されている機能で、クライアント認証を要求されているコネクションを、復号化プロファイルでブロック、許可することができます。

 

アウトバンド向け復号化ルールの 推奨サンプル例です。

2015-03-10 12_45_40-77B-PA-VM-100.png

4. SSL復号化、通知ページ設定 (任意設定)

  • Device タブ > Response Pages 画面で、SSL復号化されたときにユーザーに通知するレスポンス ページの設定ができます。”SSL Decryption Opt-out Page”の"Disabled"をクリックし、"Enable SSL Opt-out Page"をチェックしてOKを選択します。

Untitled.jpg

 

デフォルト設定のSSL Opt-out pageページが表示されます。HTMLエディターで編集して、インポートすることにより、会社特有の情報を表示することができます。

 

1.png

5. 外向けSSL通信復号化試験

アウトバウンド復号化通信試験には、

  • アウトバウンド ポリシー上で、いかなるウィルスが発見された場合、アラートが出るように設定してください。さらに、Anti-Virusセキュリティ プロファイルで、パケット キャプチャを取得するように設定して変更をCommitで反映してください。
  • 内部PCからファイアウォール経由で、www.eicar.orgにアクセスして、右上にある、

Untitled.jpg

  • “Download Anti Malware Testfile"をクリックします。
  • 次の画面で、下までスクロール ダウンします。
  • Eicarテスト ファイルをhttpでダウンロードします。以下の4つのファイルはウィルス検知されます。

Untitled.jpg

  • Monitor タブ > Logs > Threatでeicarファイルのログ ファイルを探します。

ssl-eicar-log1.png

  • ログの左側にある緑の↓矢印をクリックすると取得されたパケットが参照できます。
    ssl-eicar-log2.png

ssl-eicar-cap1.png

  • その左にある虫眼鏡アイコンをクリックすると、ログの詳細が参照できます。

ssl-eicar-log3.png

  • 下までスクロールして、“Decrypted”フィールドを確認すれば、セッションが復号化されていなかったのがわかります。

ssl-eicar-log-detail-nodecryp1.png

 

  • www.eicar.orgのダウンロードページに戻って、今回は、SSL enabled protocol HTTPSでテスト ウィルス ファイルをダウンロードします。

Untitled.jpg

  • Threatを確認すると、ウィルスは検知されているはずです。すなわちSSLコネクションは復号化されたわけです。Web browsingでポート443を使ったEicarが検知されているログ メッセージによって可視化されています。
    ssl-eicar-log4.png

  • 緑の↓矢印にをクリックすることによってパケットの詳細がみれます(確認作業はhttpの時と同じです)

ssl-eicar-cap2.png

  • ログ エントリーの左にある虫眼鏡アイコンをクリックして、スクロール ダウンし、Flagsフィールドの “Decrypted”にチェックが入っていることが確認できます。

ssl-eicar-log-detail-decryp1.png

 

SSL暗号化通信中のウィルスが検知されていることに成功しています。

 

 “no-decrypt”ルールの試験には、まず最初に、どのURLカテゴリー(financial services / shopping / health and medicine)で失敗しているか確認します。BrightCloudではhttp://www.brightcloud.com/testasite.aspx、PAN-DBではPalo Alto Networks URL Filtering - Test A Site サイトにて、SSL復号化に失敗したURLを入力することによって、何のURLカテゴリーだったか確認できます。ウェブサイトが一旦復号化されるべきでないURLカテゴリーと識別、設定をSSL復号化ルールで定義したら、これらのサイトにアクセスしても証明書エラーは発生されなくなるでしょう。ウェブ ページは正しく表示され、TrafficログでもアプリケーションはSSL、ポートは443と表示されます。

 

インバウンド通信復号化試験:

  • このインバウンド接続ログを確認すると、SSLとはアプリケーション識別されておらず、実際のSSL通信内のアプリケーション名となっています。虫眼鏡アイコンをクリックすると、この接続が復号化されていることが確認できます.
  • インバウンドSSL復号化をファイアウォール上で有効にした前のトラヒックを調べます。ターゲットとなるサーバー通信を参照します。それらのログにはポート443で、アプリケーションがSSLと検知されているはずです。
  • ネットワーク外部からの通信はDMZにいるサーバーにSSL経由で接続してきます。証明書エラーもなく、コネクションはプロキシされずに検査されているだけです。

decrypted.png

 

便利なCLIコマンド類:

機器を通じてSSL復号化されている既存のセッション数を確認するには、

> debug dataplane pool statistics | match Proxy

 

PA-2050では最初の行の出力結果は1024中の既存セッション数が出力されます。次の行のコマンド出力では、5つのSSLセッションが復号化されていることを示します (1024–1019=5):

admin@test> debug dataplane pool statistics | match Proxy

[18] Proxy session            :    1019/1024    0x7f00723f1ee0

 

アクティブ セッションで復号されているセッションを表示するには以下のコマンドを使用します。

> show session all filter ssl-decrypt yes state active

PAN-OS 4.1、5.0、6.0、6.1でのSSL復号化セッションの最大同時接続数は以下です(双方向の合計です)。

Hardware SSL Decypted Session Limit
VM-100 1,024 sessions

VM-200

1,024 sessions
VM-300 1,024 sessions
PA-200 1,024 sessions
PA-500 1,024 sessions
PA-2020 1,024 sessions
PA-2050 1,024 sessions
PA-3020 7,936 sessions

PA-3050

15,360 sessions
PA-3060 15,360 sessions
PA-4020 7,936 sessions
PA-4050 23,808 sessions
PA-4060 23,808 sessions
PA-5020 15,872 sessions
PA-5050 47,616 sessions
PA-5060 90,112 sessions
PA-7000-20G-NPC 131,072 sessions
PA-7050 786,432 sessions

  

上限に達すると、全ての新しいSSLセッションは復号化されません。上限に達した場合に新しいSSLセッションをドロップしたい場合

> set deviceconfig setting ssl-decrypt deny-setup-failure yes

機器上で上限に達したかどうかの確認をするには

> show counter global name proxy_flow_alloc_failure

SSL復号化の証明書を確認するには

> show system setting ssl-decrypt certificate
Certificates for Global

SSL Decryption CERT
global trusted
ssl-decryption x509 certificate
version 2
cert algorithm 4
valid 150310210236Z -- 210522210236Z
cert pki 1
subject: 172.16.77.1
issuer: 172.16.77.1
serial number(9)
00 b6 96 7e c9 99 1f a8  f7                      ...~.... .
rsa key size 2048 siglen 2048
basic constraints extension CA 1

global untrusted
ssl-decryption x509 certificate
version 2
cert algorithm 4
valid 150310210236Z -- 210522210236Z
cert pki 1
subject: 172.16.77.1
issuer: 172.16.77.1
serial number(9)
00 b6 96 7e c9 99 1f a8  f7                      ...~.... .
rsa key size 2048 siglen 2048
basic constraints extension CA 1

 

SSL復号化設定を確認するには

> show system setting ssl-decrypt setting

vsys                          : vsys1
Forward Proxy Ready          : yes
Inbound Proxy Ready          : no
Disable ssl                  : no
Disable ssl-decrypt          : no
Notify user                  : no
Proxy for URL                : no
Wait for URL                  : no
Block revoked Cert            : yes
Block timeout Cert            : no
Block unknown Cert            : no
Cert Status Query Timeout    : 5
URL Category Query Timeout    : 5
Fwd proxy server cert's key size: 0
Use Cert Cache                : yes
Verify CRL                    : no
Verify OCSP                  : no
CRL Status receive Timeout    : 5
OCSP Status receive Timeout  : 5
Block unknown Cert            : no

SSL復号化リソースのリストについては以下のサイトをご参照ください。

SSL Decryption Quick Reference - Resources (2016年4月時点でリンク先にアクセスできなくなっています。ご迷惑をおかけします)

 

SSL復号でサポートする暗号スイートについてのさらなる情報については以下のサイトをご参照ください。

SSL Decryption Not Working Due to Unsupported Cipher Suites

Limitations and Recommendations While Implementing SSL Decryption

How to Identify Root Cause for SSL Decryption Failure Issues

 

注意: 何かこの文章にさらなる追加をしたい場合は、下にコメントを追記してください。