# UTM / アプリケーションコントロール（DPI）

アプリケーションコントロール（DPI = ディープパケットインスペクション）は、本製品を通過するパケットのデータ部分を検査し、通信内容（レイヤー7）にもとづいてどのアプリケーションのトラフィックであるかを判別する機能です。
最近は多くのアプリケーションが通信チャンネルとしてHTTPを使うようになっているため、L3/L4ヘッダーだけではこれらのアプリケーションがすべて「HTTP」としか判定できず、個々のアプリケーションを見分けることができませんが、アプリケーションコントロール（DPI）機能を使えば、アプリケーションシグネチャデータベースによって、各種アプリケーションに特有の通信パターンを検出し、個々のアプリケーションを判別することができるようになります。
Note

基本的には、HTTPSのように暗号化されたパケットは検査・判別できませんが、一部のアプリケーション（Skype、Facebook等）に関しては暗号化されたパケットでも検査・判別が可能です。

アプリケーションシグネチャデータベースは、製品内蔵のものを使えるほか、サンドバイン社が提供するデータベースを使用することもできます（どちらか一方を選択して使用します）。
Note

サンドバイン社が提供するアプリケーションシグネチャデータベースを使用するにはアニュアルライセンスが必要です。
ライセンスのインストール方法については「運用・管理」/「システム」の「ライセンスキーのインストール」をご参照ください。

Note

UTMバンドルライセンス「UTM-01：アプリケーションコントロール、Webコントロール」を適用している場合、アプリケーションコントロール（DPI）は以下の機能と併用できません。
バンドルでない従来の単体ライセンスを適用している場合、この制限はありません。

- マルウェアプロテクション（ストリーム型アンチウイルス）
- アンチウイルス（プロキシー型アンチウイルス）

Note

サンドバイン社が提供するアプリケーションシグネチャデータベースがまだダウンロードされていない状態で、あらかじめDPIの設定を行い、アニュアルライセンスの更新を実行すると、以下のログが表示されますが、ライセンス、データベースともに正しく取得されます。

    local5.crit awplus streamd[512]: Could not open NAVL library
    local5.crit awplus streamd[512]: Failed to enable DPI provider

Note

サンドバイン社が提供するアプリケーションシグネチャデータベースを使用する場合、サーバーからリソースファイルがダウンロードされると、リソースファイルの読み込みが開始されます。このリソースファイルの読み込み中は通信が破棄される可能性がありますのでご注意ください。

アプリケーションコントロール（DPI）機能自体はアプリケーションの判別を行うだけですが、その情報は動的な「アプリケーション定義」として、下記機能のルール設定時に利用できます。

- ファイアウォール
- QoS
- ポリシーベースルーティング

Note

NAT機能でもルール設定時にアプリケーションの指定を行いますが、NATルールではアプリケーションコントロール（DPI）によって判別されたアプリケーションは指定できません。ruleコマンド（NATモード）でNAT対象トラフィックを指定するときは、あらかじめ定義されている事前定義済みアプリケーションか、applicationコマンドで定義するカスタムアプリケーション、あるいは、すべてを意味する「any」キーワードを指定してください。

アプリケーション定義については「UTM」/「アプリケーション定義」をご覧ください。
また、サンドバイン社が提供するデータベースの更新をつかさどるアップデートマネージャーについては「UTM」/「アップデートマネージャー」をご覧ください。
アプリケーションコントロール（DPI）機能の具体的な使用例については、「設定例集」をご覧ください。

## 検査タイミング

本機能は下記のタイミングでサポート対象のパケットを検査します。

- Ethernetインターフェース（PPPoE、802.1Qを含む）での受信時
- VLANインターフェースでの受信時
- PPPインターフェース（USB型データ通信端末）での受信時
- トンネルインターフェースでの受信時 ※初期設定では検査しません。後述する設定が必要です。
- ブリッジインターフェースでの受信時
- 本製品が生成したパケット（自装置発パケット）の送信前

Note

初期設定では、トンネルインターフェースで受信したパケットは検査されません。
トンネルインターフェースで受信したパケットに本機能を適用するには、インターフェースモードのtunnel inline-processingコマンドか、グローバルコンフィグモードのtunnel security-reprocessingコマンドを有効にしてください。
tunnel security-reprocessingコマンドの有効時は、すべてのトンネルインターフェースで受信パケットが検査対象になります。
一方、tunnel inline-processingコマンドは指定したIPsecトンネルインターフェースに対してのみ有効ですが、復号後のパケットだけを検査するためsecurity-reprocessingよりもパケット処理の負荷軽減が見込まれます。

## 基本設定

アプリケーションコントロール（DPI)の設定は、DPIモード（dpiコマンド）で行います。
providerコマンドでシグネチャデータベースの提供元を指定した後、enableコマンドで有効化します。
以下、アプリケーションコントロール（DPI）機能の基本的な設定手順を示します。

1. アプリケーションコントロール（DPI）機能の設定を行うため、DPIモードに移行します。これにはdpiコマンドを使います。

       awplus(config)# dpi

2. アプリケーションシグネチャデータベースの提供元を指定します。これにはproviderコマンドを使います。
   [製品内蔵のデータベースを使う場合]

       awplus(config-dpi)# provider built-in

   [サンドバイン社が提供するデータベースを使う場合]

       awplus(config-dpi)# provider procera

   Note

   アプリケーションコントロール（DPI）機能とファイアウォール機能の併用環境で、サンドバイン社の提供するアプリケーションシグネチャデータベースを使用する場合は、データベースを更新するため、本製品からインターネットへのDNS/HTTPS/SSL/TCP通信を許可する必要があります。

   3．アプリケーションコントロール（DPI）機能を有効化します。これにはenableコマンドを使います。

       awplus(config-dpi)# enable

設定は以上です。
アプリケーションコントロール（DPI）機能によって判別できるアプリケーションは、show application detailコマンドのdpiオプションで確認できます。

    awplus# show application detail dpi

サンドバイン社が提供するアプリケーションシグネチャデータベースの更新チェック間隔は、update-intervalコマンドで変更可能です。初期値は1時間です。

    awplus(config)# dpi
    awplus(config-dpi)# update-interval days 1

サンドバイン社が提供するアプリケーションシグネチャデータベースは通常自動更新されますが、update nowコマンドで手動更新することも可能です。

    awplus# update dpi_procera_app_db now

サンドバイン社が提供するアプリケーションシグネチャデータベースの更新ステータスはshow resourceコマンドで確認できます。

    awplus# show resource dpi_procera_app_db
    --------------------------------------------------------------------------------
    Resource Name          Status       Version   Interval  Last Download
                                                            Next Download Check
    --------------------------------------------------------------------------------
    dpi_procera_app_db     unknown      -         10        None
                                                  minutes   N/A

アプリケーションコントロール（DPI）機能の有効・無効とその他の情報は、show dpiコマンドで確認できます。
（表示内容は設定により異なります）

    awplus# show dpi
    Status:      running
    Provider:    built-in
    Mode:        learning
    Counters:    per entity
    Providing application database: enabled
    Web Categorization:          disabled

アプリケーションコントロール（DPI）機能によって判別されたアプリケーションの統計情報は、show dpi statisticsコマンドで確認できます。
初期状態では、DPI機能の全体統計（アプリケーションごとのパケット数とバイト数）のみが表示可能ですが、設定を追加することでエンティティー別詳細統計（アプリケーションごとの送信パケット数、受信パケット数、送信バイト数、受信バイト数）を有効にすることもできます。

- 全体統計は「show dpi statistics」で表示できます。全体統計はつねに有効です。

      awplus# show dpi statistics
      Application  Packets            Bytes
      -------------------------------------------------
      arp          1741               170618
      http         27                 3299
      mdns         15                 2017
      netbios      479                78911
      ssdp         12                 2616
      dhcp         16                 6080
      ssl_no_cert  6415               6327945
      ssh          245                46526
      dhcpv6       151                28087
      llmnr        18                 2038

- エンティティー別詳細統計はcounters detailedコマンドで有効化します。初期設定は無効です。

      awplus(config-dpi)# counters detailed

- エンティティー別詳細統計を表示するには、show dpi statisticsコマンド実行時にエンティティー名を指定してください。

      awplus# show dpi statistics private
      Statistics for entity: private
      Application       TX Packets       RX Packets         TX Bytes         RX Bytes
      -------------------------------------------------------------------------------
      ssl_no_cert             6470             6470          6092823          6092823
      ssh                      201              201            29037            29037
      http                      32               32             2978             2978

## DPI Webカテゴライズ機能

アプリケーションコントロール（DPI）機能では、オプションでWebカテゴライズ機能を利用することができます。
Webカテゴライズ機能は、DPIエンジンが検査するトラフィックのうち、HTTPとHTTPS（TLS）については他のトラフィックと処理を分け、WebカテゴライザーによってWebサイトのカテゴリー（Webカテゴリー）に分類する機能です。
カテゴライズはHTTPのHostヘッダーやTLSのSNI拡張に含まれるアクセス先サーバー名にもとづいて行われます。
各Webカテゴリーは通常のDPIアプリケーションと同様、1つの「アプリケーション」としてファイアウォールなどのルール指定に利用できます。
Note

Webカテゴライザーによる分類が完了していないトラフィック（分類中のトラフィック）は、特殊なアプリケーション名「uncategorized」で表されます。
また、Webカテゴライザーによる分類ができなかった場合、そのトラフィックは通常のDPIアプリケーションとして判定されます。

Webサイトのカテゴライズにはデジタルアーツ社もしくはOpenText社が提供するURLカテゴリーデータベースを使用します。
また、ユーザー独自のWebカテゴリーを定義することも可能です。
Note

デジタルアーツ社もしくはOpenText社が提供するURLカテゴリーデータベースを使用するにはWebコントロール機能のアニュアルライセンスが必要です。
ライセンスのインストール方法については「運用・管理」/「システム」の「ライセンスキーのインストール」をご参照ください。

Note

DPI Webカテゴライズ機能とWebコントロール機能は同時に使用できません。

Note

URLカテゴリーデータベースの提供元をデジタルアーツ社からOpenText社に切り替えるときは、web-categorizationでopentextを指定した後、いったん設定を保存して再起動してください。

Webカテゴライズ機能を有効化するには、DPIの基本設定にweb-categorizationコマンドの設定を追加します。

    awplus(config-dpi)# web-categorization digital-arts

Note

アプリケーションコントロール（DPI）機能とファイアウォール機能の併用環境で、デジタルアーツ社もしくはOpenText社が提供するURLカテゴリーデータベースを使用する場合は、データベースに問い合わせるため、本製品からインターネットへの通信を許可する必要があります。
Webカテゴライズ機能の有効時には、この通信を表す「system」というアプリケーションが自動的に定義されますので、ファイアウォールルールで「system」アプリケーションの通信を許可するよう設定してください。
次にルールの一例を示します（エンティティー「public.wan.ppp0」が本製品のWAN側インターフェース、「public.wan」がWAN側ネットワークを表していると仮定しています）。

    awplus(config-firewall)# rule permit system from public.wan.ppp0 to public.wan

特定のURLがどのプロバイダーカテゴリーに分類されるかデジタルアーツ社もしくはOpenText社のURLカテゴリーデータベースに問い合わせるには、dpi categorizeコマンドを使います。

    awplus# dpi categorize www.google.com www.bbc.co.uk
    http://www.google.com: search-engines
    http://www.bbc.co.uk: news-media

Webカテゴライズ機能を有効にすると、show application detailコマンドで表示されるDPIアプリケーションの中に、Webカテゴリーを表すアプリケーションが追加されます。
Note

各カテゴリーの概要についてはWebコントロール解説編のプロバイダーカテゴリー一覧をご覧ください。

Note

デジタルアーツ社のURLカテゴリーデータベースを使用する場合、Webコントロール機能で使用するカテゴリー名と、Webカテゴライズ機能で追加されるアプリケーション名は必ずしも一致しません。追加されるアプリケーション名はshow application detailコマンドでご確認ください。
OpenText社のURLカテゴリーデータベースを使用する場合はどちらも同じカテゴリー名です。

    awplus# show application detail
    advocacy          0x3F    DPI: Web Categorization - Advocacy
    afp               0x132   DPI: Apple Filing Protocol, formerly AppleTalk
                                (Cat=File transfer)
    aim               -       proto=TCP sport=1024-65535 dport=9898
    aimini            0x134   DPI: Aimini P2P real-time communicatings
                                (Cat=Messaging)
    ajp               0x15C   DPI: Apache JServ Protocol (Cat=Networking)
    alcohol-tobacco   0x15    DPI: Web Categorization - Alcohol, Tobacco
    amazon            0x183   DPI: Amazon online shopping (Cat=Web Services)
    amazonvideo       0x1C1   DPI: Amazon on-demand video streaming service
                                (Cat=Streaming Media)
    amqp              0x191   DPI: Advanced Message Queuing Protocol
                                (Cat=Networking)
    amusement-facilities
                      0x30    DPI: Web Categorization - Amusement Facilities
    ...

ユーザー独自のWebカテゴリー（カスタムWebカテゴリー）はapplicationコマンドとhostnameコマンドで作成します。
たとえば、「www.example.com」というWebサイトと、「example.jp」ドメイン内の不特定のWebサイト（「www.example.jp」、「site.sub.example.jp」など）を「example-sites」いうWebカテゴリーに分類したいときは、次のようなアプリケーションを定義します。

    awplus(config)# application example-sites
    awplus(config-application)# hostname www.example.com
    awplus(config-application)# hostname .example.jp

カスタムWebカテゴリーは、デジタルアーツ社もしくはOpenText社が提供するURLカテゴリーデータベースよりも優先的に適用されます。
Note

上記の手順によりカスタムWebカテゴリーとして作成したアプリケーション定義は、「UTM」/「アプリケーション定義」で説明している通常のアプリケーション定義としては使用できません。

## 判別されたアプリケーション定義の使用

アプリケーションコントロール（DPI）機能によって判別されたアプリケーションの情報は、動的な「アプリケーション定義」として、下記機能のルール設定時に利用できます。

- ファイアウォール
- QoS
- ポリシーベースルーティング

Note

NAT機能でもルール設定時にアプリケーションの指定を行いますが、NATルールではアプリケーションコントロール（DPI）によって判別されたアプリケーションは指定できません。ruleコマンド（NATモード）でNAT対象トラフィックを指定するときは、あらかじめ定義されている事前定義済みアプリケーションか、applicationコマンドで定義するカスタムアプリケーション、あるいは、すべてを意味する「any」キーワードを指定してください。

Note

アプリケーションコントロール（DPI）機能では、各アプリケーション固有の通信パターンを検出するために一定量のパケットを受信してそのデータ部分を検査する必要があります。判別が完了していないトラフィック（判別中のトラフィック）は、特殊なアプリケーション名「undecided」で表されます。

Note

アプリケーションシグネチャデータベースを使用する場合は、以下の点にご注意ください。

- レイヤー4レベルの情報で検知可能なアプリケーションであっても、一部のアプリケーションに関しては、上位レイヤー（レイヤー5以上）の情報を検知することにより、意図しないアプリケーションとして検知する場合があります。また、アプリケーションが持つ情報の形式によっては、正常に検知できない場合があります。
  これらのアプリケーションを意図したアプリケーションとして検知させるには、カスタムアプリケーション定義を使用してください。
- 製品内蔵データベースをファイアウォール機能と併用する構成では、本製品が送信するパケットをすべて許可（permit any）するよう設定してください。
- 製品内蔵データベースは、ファームウェアのバージョンアップ時をのぞきアップデートされません。
- 製品内蔵データベースを使用する場合、TCPストリームの再構築や並べ替えはサポートされません。そのため、本来ならシグネチャとマッチするはずのデータが複数パケットにまたがった場合は、該当アプリケーションを正しく検知できません。

アプリケーション定義の詳細については、「UTM」/「アプリケーション定義」をご覧ください。
ファイアウォールルールは、ファイアウォールモードのruleコマンドで作成します。
アプリケーションコントロール（DPI）機能では、各アプリケーション固有の通信パターンを検出するために一定量のパケットを受信してそのデータ部分を検査する必要がありますが、ファイアウォールはその仕様として初期設定ですべてのパケットを破棄するため、ファイアウォールとアプリケーションコントロール（DPI）を併用する場合は注意が必要です。

- DPIによって判別された特定のアプリケーションのみ許可し、その他は拒否する場合（デフォルト拒否）
  ファイアウォールを「デフォルト拒否」の設定とし、アプリケーションコントロール（DPI）によって判別されたアプリケーションだけを許可したい場合は、該当アプリケーションだけでなく、未判別のトラフィック（undecided）も許可する必要があります。
  たとえば、外部ゾーン「public」から内部ゾーン「private」への通信について、DPIによってアプリケーション「X」と判別されたトラフィックだけを許可し、その他はすべて拒否したい場合、次のようにアプリケーション「X」と、未判別のトラフィックを示す「undecided」の両方を許可するよう設定してください（ルール「10」と「20」。順序は逆でもかまいません）。

      awplus(config)# firewall
      awplus(config-firewall)# rule 10 permit X from public to private
      awplus(config-firewall)# rule 20 permit undecided from public to private
      awplus(config-firewall)# rule 30 permit dns from public.internet.myself to public
      awplus(config-firewall)# rule 40 permit https from public.internet.myself to public
      awplus(config-firewall)# rule 50 permit ssl from public.internet.myself to public
      awplus(config-firewall)# rule 60 permit TCP from public.internet.myself to public
      awplus(config-firewall)# rule 70 permit undecided from public.internet.myself to public
      awplus(config-firewall)# protect

  Note

  ここでの「X」は説明のための架空のアプリケーション名です（本マニュアル執筆時点）。実際に使用するときは適切なアプリケーション名に置き換えてください。

  ここで「undecided」を許可しないと（ルール「20」を設定しないと）、ファイアウォールの基本動作によって外部ゾーンから内部ゾーンへのトラフィックがすべて破棄されてしまうため、アプリケーションコントロール（DPI）エンジンに検査すべきパケットが届かず、結果的にアプリケーション「X」が判別されることもなくなってしまうためご注意ください。
  Note

  アプリケーションコントロール（DPI）機能とファイアウォール機能の併用環境で、サンドバイン社の提供するアプリケーションシグネチャデータベースを使用する場合は、データベースを更新するため、本製品からインターネットへのDNS/HTTPS/SSL/TCP通信を許可する必要があります。

  Note

  ルール「30」～「60」は、アプリケーションシグネチャデータベースを更新するため、本製品からインターネットへのDNS/HTTPS/SSL/TCP通信を許可するものですが、DPI機能の有効時には事前定義済みアプリケーション「dns」よりもDPIアプリケーション「dns」が優先されるため、ルール「30」を機能させるために本製品からインターネットへの通信についても、未判別のトラフィック（undecided）を許可する必要があります（ルール「70」）。

- DPIによって判別された特定のアプリケーションのみ拒否し、その他は許可する場合（デフォルト許可）
  ファイアウォールを「デフォルト許可」の設定にする場合は、すべてを許可する「permit any」ルールを設定するため、未判別のトラフィックを表す「undecided」を別途許可する必要はありません（明示的に設定してもかまいません）。
  次の例では、アプリケーションコントロール（DPI）によってファイル共有ソフト「Share」と「Winny」であると判別された内部ゾーン「private」から外部ゾーン「public」への通信を禁止しています。同じ向きの未判別トラフィックはルール「30」の「permit any from private to public」によって許可されるため、「permit undecided」ルールは不要です。

      awplus(config)# firewall
      awplus(config-firewall)# rule 10 deny sharep2p from private to public
      awplus(config-firewall)# rule 20 deny winny from private to public
      awplus(config-firewall)# rule 30 permit any from private to public
      awplus(config-firewall)# rule 40 permit any from private to private
      awplus(config-firewall)# rule 50 permit dns from public.internet.myself to public
      awplus(config-firewall)# rule 60 permit https from public.internet.myself to public
      awplus(config-firewall)# rule 70 permit ssl from public.internet.myself to public
      awplus(config-firewall)# rule 80 permit TCP from public.internet.myself to public
      awplus(config-firewall)# rule 90 permit undecided from public.internet.myself to public
      awplus(config-firewall)# protect

  Note

  アプリケーションコントロール（DPI）機能とファイアウォール機能の併用環境で、サンドバイン社の提供するアプリケーションシグネチャデータベースを使用する場合は、データベースを更新するため、本製品からインターネットへのDNS/HTTPS/SSL/TCP通信を許可する必要があります。

  Note

  ルール「50」～「80」は、アプリケーションシグネチャデータベースを更新するため、本製品からインターネットへのDNS/HTTPS/SSL/TCP通信を許可するものですが、DPI機能の有効時には事前定義済みアプリケーション「dns」よりもDPIアプリケーション「dns」が優先されるため、ルール「50」を機能させるために本製品からインターネットへの通信についても、未判別のトラフィック（undecided）を許可する必要があります（ルール「90」）。

ファイアウォールの詳細については、「UTM」/「ファイアウォール」をご覧ください。
QoSルールは、トラフィックコントロールモードのruleコマンドで作成します。
QoSとアプリケーションコントロール（DPI）を併用する場合は、ファイアウォールでデフォルト拒否の設定をするときのように「permit undecided」ルールを作成する必要はありません。未判別のトラフィックはデフォルトキューで処理され、判別後は該当アプリケーションに対応するルールにしたがって処理されます。
QoSの詳細については、「トラフィック制御」/「Quality of Service」をご覧ください。

## ログ

アプリケーションコントロール（DPI）のログを記録するには、以下のコマンド（log(filter)）を実行してください。初期設定では本機能のログは記録されません。

    awplus(config)# log buffered level informational facility local5

DPIによって判別されたアプリケーションの情報は、ファイアウォールログの「MARK」欄に出力されます。

- 製品内蔵データベースを使用している場合
  次に示すファイアウォールログの例では、「MARK=0x1013」がこの情報です。
  この数値（16進数）の下2桁（ここでは「13」）をキーとして、「show application detail dpi」の出力から具体的なアプリケーション名や概要を検索することができます。

      2017 Oct 24 10:59:37 kern.info awplus kernel: Firewall: DENY in policy IN=eth1 OUT= MAC=ff:ff:ff:ff:ff:ff:a4:ba:db:15:e9:d3:08:00 SRC=172.16.1.2 DST=172.16.1.255 LEN=78 TOS=0x00 PREC=0x00 TTL=64 ID=49384 PROTO=UDP SPT=137 DPT=137 LEN=58 MARK=0x1013

- サンドバイン社のデータベースを使用している場合
  次に示すファイアウォールログの例では、「MARK=0x1053」がこの情報です。
  この数値（16進数）の下3桁（ここでは「053」）をキーとして、弊社ホームページ掲載の資料から具体的なアプリケーション名や概要を検索することができます。また、「show application detail dpi」の出力から具体的なアプリケーション名を検索することもできます。

      2016 Nov 25 18:38:36 kern.info awplus kernel: Firewall rule 20: PERMIT IN=eth1 OUT=vlan1 MAC=00:00:cd:38:00:96:52:54:78:36:8f:a6:08:00 SRC=172.16.1.2 DST=192.168.1.1 LEN=239 TOS=0x00 PREC=0x00 TTL=63 ID=20563 DF PROTO=TCP SPT=80 DPT=46254 WINDOW=905 RES=000 ACK PSH URGP=0 MARK=0x1053

ファイアウォールのログを出力するための設定については、「UTM」/「ファイアウォール」をご覧ください。

## AT-Vista Manager EXとの併用

AT-Vista Manager EXを使用することで、本製品のDPI学習キャッシュ（対象はTCP/UDPパケットのみ）を他のルーターと共有できます。
共有元はAT-AR4050S, AT-AR4050S-5G, AT-AR3050S, AT-NFV-APL（vFirewall）, AT-AR4000S-Cloud、共有先はAT-AR2050V, AT-AR2010V, AT-TQ7403-R, AT-TQ6702 GEN2-R, AT-TQ6702e GEN2-Rです。
利用・設定にはAT-Vista Manager EXが必要です。詳細はAT-Vista Manager EXのマニュアルをご覧ください。