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」が拒否 ()されていることが分かります。
コメント欄 質問や感想、追加してほしい記事のリクエストをお待ちしてます!