App-IDは、アプリケーション・シグネチャ、プロトコル・デコーディング、ヒューリスティクスなどの複数の技術を使ってアプリケーションを識別する機能です。
以降、App-IDを使ったポリシーを設定して、その動作を確認します。
[事前準備]HTTP(TCP/80)とHTTPS(TCP/443)のみ許可する設定
App-IDの挙動をわかりやすくするために、まずは事前準備としてHTTP(TCP/80)とHTTPS(TCP/443)だけを許可する設定を行っておきます。
TCPやUDP等のプロトコルとポート番号の組合せを、「サービス」と呼びますが、そのサービス設定を使って、これらを限定して許可しておきます。
(サービス設定は、App-IDではありません。)
HTTP(TCP/80)サービスの追加
PA Firewallがデフォルトで持つサービスは、以下の2つです。
- service-http: TCP/80, 8080
- service-https: TCP/443
HTTPとHTTPS(TCP/80, TCP/443)サービスのみ許可したいので、service-httpsはそのまま利用できますが、service-httpが持つ8080は不要です。よって、TCP/80だけを許可する新しいサービスを定義することにします。
a)「Objects」 → b)「サービス」 → c)「追加」をクリックします。
a)名前に「http(任意)」、b)プロトコルは「TCP」を選択、c)宛先ポートに「80」を入力し、d)「OK」をクリックします。
ポリシーの設定
HTTP(TCP/80)とHTTPS(TCP/443)のみ許可するポリシーを設定します。
a)「Policies」 → b)「セキュリティ」 → c)「追加」をクリックします。
a)「全般」 → b)名前に「allow outbound web (任意)」と入力します。
a)「送信元」 → b)「追加」 →c)「Trust」を選択します。
a)「宛先」 → b)「追加」 →c)「Untrust」を選択します。
「アプリケーション」は、デフォルトの「いずれか」のままにします。
a)「サービス/URLカテゴリ」 → b)「追加」 →c)設定した「http」と「service-https」を選択します。
a)「アクション」で、b)が「Allow」であることを確認します。
c)「OK」をクリックします。
全許可ポリシーの削除
全許可ポリシーである、allow outboundを削除します。
a)「allow outbound」が選択された状態で、b)「削除」をクリックします。
「はい」をクリックします。
以下は、「allow outbound」が削除され、「allow outbound web」とデフォルトのポリシーだけになった状態です。
Interzone-defaultの設定変更
デフォルトで用意されているポリシーである、Interzone-defaultの設定を変更します。
このポリシーは、ゾーン間通信を全て拒否するポリシーで、順番としては最後に評価されますが、ログ出力が無効になっています。
ここまでの設定では、HTTP(TCP/80)とHTTPS(TCP/443)以外の通信は全てInterzone-defaultにヒットしますが、ログが出力されないと何が拒否されたのかを判断しにくいので、ログ出力が行われるように設定変更します。
a)「Policies」 → b)「セキュリティ」 → c)「interzone-default」が選択された状態にして、d)「オーバーライド」をクリックします。
a)「アクション」で、b)「セッション終了時にログ」にチェックを入れて、c)「OK」をクリックします。
DNSを許可する
ここから、App-ID (アプリケーション識別) を利用したセキュリティポリシーを設定していきます。
前セクションで、全許可ポリシーを削除して、HTTP(TCP/80)とHTTPS(TCP/443)だけを許可する設定に変更したので、DNSが許可されていません。よって、ポリシーのアプリケーションでDNSを指定して、明示的に許可する設定を行います。
また、本ガイドでは、DNSのTrafficログは出力しないように設定することにします。
[DNSのTrafficログ出力を止める理由]
クライアントPCからインターネットへアクセスすると、以下画面のように、DNSログが多数出力されます。
下記のDNSログは、すべて同じ時刻に発せられています。サイトによっては、1つのページへのアクセスだけでもこのように大量にDNSログが発生します。
本ガイドで行う以降の動作確認時には、DNS以外のTrafficログを確認したい場合が多いので、それらのログを見やすくするために、DNSのTrafficログは出力しないように設定することにします。
また、DNSログは大量に出力されますから、ログ領域を圧迫します。DNSログを出力しないようにすることで、トラフィックログ量を大幅に減らすことができる、という点もメリットです。
設定
a)「Policies」 → b)「セキュリティ」 → c)「追加」をクリックします。
a)「全般」 → b)名前に「DNS」と入力します。
a)「送信元」 → b)「追加」 → c)「Trust」を選択します。
a)「宛先」 → b)「追加」 → c)「Untrust」を選択します。
a)「アプリケーション」 → b)「追加」で表示されたフォームにc)「dns」と入力して、「dns」を選択します。
「サービス/URLカテゴリ」のサービスは、「application-default」のまま、URLカテゴリも「いずれか」のままとします。
(application-defaultの意味については、後述します。)
a)「アクション」 → b)アクションは「Allow」のままとし、c)「セッション終了時にログ」のチェックを外します。
d)「OK」をクリックします。
「コミット」を実施します。
Trafficログのクリア
過去に発生したTrafficログを消去します(新しく発生するTrafficログを見やすくするため)。
a)「Device」 → b)「ログ設定」で表示された画面を一番下までスクロールし、c)「トラフィックログのクリア」をクリックします。
「はい」をクリックします。
動作確認
クライアントPCのWebブラウザからインターネットのいくつかのWebサイトへアクセスします。
a)「Monitor」 → b)「トラフィック」で、「アプリケーション」がDNSのログが出力されなくなったことを確認します。
[参考] application-defaultとは
DNSポリシーのサービスでは、application-defaultを選択しました。
application-defaultとは、「各アプリケーションに、事前に指定されている(いくつかの)サービス」です。
具体的にどのようなサービスが事前に定義されているのかを確認してみましょう。
a)「Objects」 → b)「アプリケーション」 →c)検索フォームに「dns」と入力します。
表示されたアプリケーションの中から、d)「dns」をクリックします。
dnsアプリケーションの詳細が表示されます。
以下の「標準ポート」がサービスに該当します。
DNSが利用するサービスは、一般的にUDP/53が多いですが、プライマリDNSとセカンダリDNSの間で使われるゾーン転送は、TCP/53が使われます。
また、Multicast DNS (RFC6762) は、UDP/5353、DNS over TLS(DoT)は、TCP/853が使われます。
このように、DNSだけでも複数のサービスが存在していますが、PA Firewallでは、サービスにapplication-defaultを指定することで、ポリシー1行だけで、「TCP/53 or UDP/53 or UDP/5353 or TCP/853」 且つ 「DNSプロトコルであること」 という条件 (=AND条件)で許可(または拒否)することができます。
DNSが標準的に使うポート以外でDNSの通信が発生することは脅威である可能性があるため、application-defaultを指定することで、その脅威を排除できます。
YouTubeを拒否する
このセクションでは、YouTubeをアプリケーションで指定して拒否するポリシーを設定します。
例えば、「業務上、YouTubeを使う必要がないので、アクセスさせない」という要件が存在することを想定します。
設定
a)「Policies」 → b)「セキュリティ」で表示されたポリシーで、c)「追加」をクリックします。
a)「全般」 → b)名前に「YouTube(任意)」と入力します。
「送信元」は「Trust」を選択します。
「宛先」は「Untrust」を選択します。
a)「アプリケーション」 → b)「追加」で表示されたフォームに「youtube」と入力して、c)「youtube」を選択します。
「サービス/URLカテゴリ」は、「application-default」のままにします。
a)「アクション」 → b)「Deny」を選択し、c)「OK」をクリックします。
a)「YouTube」が選択された状態で b)「移動」→ c)「最上部へ」を選択します。
「Youtube」ポリシーが最上部へ移動します。
ブロック時の応答ページの有効化
ブロックした時に、応答ページが出るようにします。
a)「Device」 → b)「応答ページ」 → 「アプリケーション ブロック ページ」の右横のc)「無効」をクリックします。
a)「有効化 アプリケーション ブロック ページ」にチェックを入れ、b)「OK」をクリックします。
「コミット」を実施します。
通信確認
クライアントPCから、YouTube (www.youtube.com) へアクセスします。
ブロックページが表示されます。
(ブラウザのキャッシュが残っていると、期待する以下の画面にならない場合があります。その場合はChromeのシークレットウィンドウで確認してください。)
リスク5のFile Sharingをまとめて拒否する
アプリケーションにはそれぞれパロアルトネットワークス社が定めた5段階のリスク値が設定されていて、5がもっともリスクが高いアプリケーションである、という位置付けになっています。
ここでは、「情報漏洩の対策として、リスク5のファイル共有アプリケーションは使わせない」という要件を想定し、その設定を行います。
設定前の通信確認
ポリシーで拒否する前に、リスク5のファイル共有アプリケーションへアクセスが可能であることを確認します。
サンプルとして、以下の3つのサイトにアクセスします。
クライアントPCから、Googleドライブ (https://drive.google.com/) へアクセスできることを確認します。
クライアントPCから、filemail (https://www.filemail.com/) へアクセスできることを確認します。
クライアントPCから、Transfer Big Files (https://www.transferbigfiles.com) へアクセスできることを確認します。
設定
a)「Objects」 → b)「アプリケーション フィルタ」 → c)「追加」 をクリックします。
a)リスクの下の「5」をクリックし、b)サブカテゴリの下の「file-sharing」をクリックすることで、この2つの属性を持つアプリケーションに絞込み(フィルタ)されます。
(絞込み表示された中に「Google-drive-web」、「filemail」、「transferbigfiles」が存在していることを確認してください。)
c)名前に「Risk5_file-sharing(任意)」と入力し、d)「OK」をクリックします。
a)「Policies」 → b)「セキュリティ」で表示されたポリシーで、「allow outbound web」の上にポリシーを入れたいので、c)「Youtube」を選択した状態で、d)「追加」をクリックします。
そのまま「OK」をクリックします。
新しく生成された「Youtube-1」ポリシーをクリックします。
a)「全般」 → b)名前に「Risk5_file-sharing(任意)」と入力します。
a)「アプリケーション」 → b)「追加」で表示されたフォームにc)「Risk5」の文字列を入れて、作成したアプリケーションフィルタを検索します。 表示されたd)「Risk5_file-sharing」を選択します。
「サービス/URLカテゴリ」は、「application-default」のままにします。
a)「アクション」 → b)「Deny」を選択し、c)「OK」をクリックします。
以下のように、「allow outbound web」ポリシーの上に「Risk5_file-sharing」を拒否するポリシーが追加されます。
「コミット」を実施します。
通信確認
クライアントPCから、Googleドライブ (https://drive.google.com) へアクセスすると、拒否されることを確認します。
クライアントPCから、filemail (https://filemail.com) へアクセスすると、拒否されることを確認します。
クライアントPCから、Transfer Big Files (https://www.transferbigfiles.com) へアクセスすると、拒否されることを確認します。
a)「Monitor」 → b)「トラフィック」で、ログを確認します。
検索フォームにc)「( rule eq Risk5_file-sharing )」と入力し、Enterキーを押すと、そのルールにヒットしたログだけに絞込み表示されます。
d)アプリケーションの「google-drive-web」と「filemail」と「transferbigfiles」が、e)のアクションで拒否(Reset-both)されていることが分かります。
リスク5のFile Sharingのうち、一つだけ(Googleドライブだけ)許可する
「リスク5のファイル共有アプリケーションのうち、googleドライブだけは業務上必要なので、許可したい」という要件を想定します。
設定
a)「Policies」 → b)「セキュリティ」で表示されたポリシーで、「Risk5_file-sharing」の上にポリシーを入れたいので、
c) 「Risk5_file-sharing」を選択した状態で、d)「コピー」をクリックします。
ルール順序でa)「ビフォールール」を選択し、b)「OK」をクリックします。
新しく生成された「Risk5_file-sharing-1」をクリックします。
a)「全般」 → b)名前に「google-drive(任意)」と入力します。
a)「アプリケーション」では、存在するアプリケーション「Risk5_file-sharing」を削除し、b)「追加」をクリックしてc)「google-drive-web」を選択します。
右側に依存関係のあるアプリケーションが表示されます。d)「次に依存」の先頭のチェックボックスをONにするとe)のようにすべて選択されます。
(依存関係については後述します。)
f)「現在のルールに追加」をクリックします。
以下のような状態になります。
a)「サービス/URLカテゴリ」はb)「application-default」のままにします。
a)「アクション」 → b)「Allow」を確認し、c)「OK」をクリックします。
以下のように、「Risk5_file-sharing」ポリシーの上に「Google-drive」を許可するポリシーが追加されます。
「コミット」を実施します。
通信確認
クライアントPCから、Googleドライブ (https://drive.google.com) へアクセスでき、ファイルのアップロードやダウンロードができることを確認します。
クライアントPCから、filemail (https://filemail.com) へアクセスすると、拒否されることを確認します。
クライアントPCから、Transfer Big Files (https://www.transferbigfiles.com) へアクセスすると、拒否されることを確認します。
a)「Monitor」 → b)「トラフィック」で、ログを確認します。
検索フォームにc)「( rule eq Google-drive ) or ( rule eq Risk5_file-sharing )」と入力して、Enterキーを押すと、そのルールにヒットしたログだけに絞込み表示されます。
アプリケーションの「filemailと「transferbigfiles」が拒否され、「google-drive-web」が許可されていることがわかります。
[参考]アプリケーションの依存関係
アプリケーションによっては、依存関係を持つものが存在しています。
依存関係とは、あるアプリケーションを許可したいとき、依存関係のあるアプリケーションも同時に許可しなければ、そのアプリケーションが利用できない、という関係にあります。
具体的に確認してみましょう。
a)「Objects」 → b)「アプリケーション」 →c)のフォームに「google-drive-web」と入力し、Enterキーを押します。
表示されたアプリケーションでd)「google-drive-web」をクリックします。
google-drive-webアプリケーションの詳細が確認できます。
以下の「依存:」と書かれた部分に、「google-base」、「google-docs-base」、「google-docs-editing」、「google-docs-uploading」とあります。
よって、「google-drive-web」を許可する際には、これらのアプリケーションも同時も許可する必要がある、ということが分かります。
Googleドライブからファイルのアップロードだけ拒否する
今度は、情報漏洩の防止策として、Googleドライブへのアップロードは拒否するという要件を想定した設定を行います。
設定
a)「Policies」 → b)「セキュリティ」で表示されたポリシーでc)「Google-Drive」を選択し、d)「コピー」をクリックします。
ルール順序でa)「ビフォールール」を選択し、b)「OK」をクリックします。
新しく生成された「Google-Drive-1」をクリックします。
a)「全般」 → b)名前に「Google-drive-uploading(任意)」と入力します。
a)「アプリケーション」 タブで表示されたアプリケーションのうち、「google-docs-uploading」以外のチェックボックスをONにして、c)「削除」をクリックします。
結果、以下のように、「google-docs-uploading」アプリケーションだけが残された状態になります。
a)「サービス/URLカテゴリ」は、b)「application-default」のままにします。
a)「アクション」 → b)「Deny」を選択し、c)「OK」をクリックします。
「Google-drive」ポリシーのアプリケーションから「google-docs-uploading」を削除します。
「Google-drive」ポリシーのアプリケーション「google-docs-uploading」にカーソルを合わせると、以下のように下向きマークが表示されますので、これをクリックします。
表示されたメニューの中から「削除」を選択します。
「はい」をクリックします。
以下のように、「Google-drive-uploading」が拒否されたポリシーが「Google-drive」を許可するポリシーの上に追加されました。
「コミット」を実施します。
通信確認
クライアントPCからGoogleドライブ (drive.google.com) へアクセスします。
適当なファイルのアップロードを試みて、下記のようにアップロードが失敗し、ダウンロードは成功することを確認します。
a)「Monitor」 → b)「トラフィック」で表示されたログのアプリケーションで、c)フィルタに「(app eq google-docs-downloading ) or ( app eq google-docs-uploading ) 」を入力し、Enterキーを押します。
d)アプリケーションが「google-docs-downloading」と「google-docs-uploading」に絞り込まれ、e)アクション列を見ると、「google-docs-uploading」が拒否 ()されていることが分かります。
コメント欄 質問や感想、追加してほしい記事のリクエストをお待ちしてます!
詳しい説明ありがとうございます。
社内で利用している、スパイウエア等で誤脅威されてしまうログ管理ソフト(IT資産管理ソフト)を
独自アプリとして登録し、過検知・誤脅威としてマークさせることはできますか?
monitor>ログ>脅威から、重要度:mediumとなっているのをinfomation程度に下げたいのですが。
利用しているアプリケーションの仕様にもよりますが、PAシリーズはセキュリティポリシーごとに個別にIPSなどのセキュリティプロファイルを指定することができます。カスタムアプリケーションを作成しなくても、当該アプリケーションの通信要件(宛先IPやポート番号など)を元にセキュリティポリシーを作成し、そのポリシーに対しては個別のセキュリティプロファイルを設定することで実現できるのではないかと思います。ただ、シグネチャの重大度を変更することはできないようなので、当該シグネチャのActionを変更するかたちでの対応等になるかと思います(ブロックからアラートに変更したり、ログに出力したく無い場合はAllowに変更する)。また、アラートの監視をSyslogサーバなどの外部システムで実施している場合は、カスタムログフォーマットを利用することで重大度を変更した上でSyslogサーバへログ送信ができるのではないかと思います。