App-ID

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」が拒否 ()されていることが分かります。

コメント欄 質問や感想、追加してほしい記事のリクエストをお待ちしてます!

タイトルとURLをコピーしました