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

アプリケーションコントロール(DPI)機能自体はアプリケーションの判別を行うだけですが、その情報は動的な「アプリケーション定義」として、ファイアウォール、QoS、ポリシーベースルーティングのルール設定時に利用できます。
NAT機能でもルール設定時にアプリケーションの指定を行いますが、NATルールではアプリケーションコントロール(DPI)によって判別されたアプリケーションは指定できません。ruleコマンド(NATモード)でNAT対象トラフィックを指定するときは、あらかじめ定義されている事前定義済みアプリケーションか、applicationコマンドで定義するカスタムアプリケーション、あるいは、すべてを意味する「any」キーワードを指定してください。
アプリケーション定義については「UTM」/「アプリケーション定義」をご覧ください。
ファイアウォールについては「UTM」/「ファイアウォール」を、QoSについては「トラフィック制御」/「Quality of Service」をご覧ください。
アプリケーションコントロール(DPI)機能の具体的な使用例については、「設定例集」をご覧ください。
検査タイミング
本機能は下記のタイミングでサポート対象のパケットを検査します。
- Ethernetインターフェース(PPPoE、802.1Qを含む)での受信時
- VLANインターフェースでの受信時
- PPPインターフェース(USB型データ通信端末)での受信時
- トンネルインターフェースでの受信時 ※初期設定では検査しません。後述する設定が必要です。
- 本製品が生成したパケット(自装置発パケット)の送信前
初期設定では、トンネルインターフェースで受信したパケットは検査されません。
トンネルインターフェースで受信したパケットに本機能を適用するには、グローバルコンフィグモードのtunnel security-reprocessingコマンドを有効にしてください。
同コマンドの有効時は、すべてのトンネルインターフェースで受信パケットが検査対象になります。
基本設定
アプリケーションコントロール(DPI)の設定は、DPIモード(dpiコマンド)で行います。
providerコマンドでシグネチャデータベースの提供元を指定した後、enableコマンドで有効化します。
以下、アプリケーションコントロール(DPI)機能の基本的な設定手順を示します。
- アプリケーションコントロール(DPI)機能の設定を行うため、DPIモードに移行します。これにはdpiコマンドを使います。
awplus(config)# dpi ↓
- アプリケーションシグネチャデータベースの提供元を指定します。これにはproviderコマンドを使います。
awplus(config-dpi)# provider built-in ↓
3.アプリケーションコントロール(DPI)機能を有効化します。これにはenableコマンドを使います。
awplus(config-dpi)# enable ↓
設定は以上です。
■ アプリケーションコントロール(DPI)機能によって判別できるアプリケーションは、show application detailコマンドのdpiオプションで確認できます。
awplus# show application detail dpi ↓
■ アプリケーションコントロール(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つの「アプリケーション」としてファイアウォールなどのルール指定に利用できます。
Webカテゴライザーによる分類が完了していないトラフィック(分類中のトラフィック)は、特殊なアプリケーション名「uncategorized」で表されます。
また、Webカテゴライザーによる分類ができなかった場合、そのトラフィックは通常のDPIアプリケーションとして判定されます。
Webサイトのカテゴライズはユーザー独自のWebカテゴリーを定義することによって行います。
■ Webカテゴライズ機能を有効化するには、DPIの基本設定にweb-categorizationコマンドの設定を追加します。
awplus(config-dpi)# web-categorization digital-arts ↓
■ ユーザー独自の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カテゴリーとして作成したアプリケーション定義は、「UTM」/「アプリケーション定義」で説明している通常のアプリケーション定義としては使用できません。
判別されたアプリケーション定義の使用
アプリケーションコントロール(DPI)機能によって判別されたアプリケーションの情報は、動的な「アプリケーション定義」として、ファイアウォール、QoS、ポリシーベースルーティングのルール設定時に利用できます。
NAT機能でもルール設定時にアプリケーションの指定を行いますが、NATルールではアプリケーションコントロール(DPI)によって判別されたアプリケーションは指定できません。ruleコマンド(NATモード)でNAT対象トラフィックを指定するときは、あらかじめ定義されている事前定義済みアプリケーションか、applicationコマンドで定義するカスタムアプリケーション、あるいは、すべてを意味する「any」キーワードを指定してください。
アプリケーションコントロール(DPI)機能では、各アプリケーション固有の通信パターンを検出するために一定量のパケットを受信してそのデータ部分を検査する必要があります。判別が完了していないトラフィック(判別中のトラフィック)は、特殊なアプリケーション名「undecided」で表されます。
アプリケーションシグネチャデータベースを使用する場合は、以下の点にご注意ください。
- レイヤー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)# protect ↓
ここでの「X」は説明のための架空のアプリケーション名です(本マニュアル執筆時点)。実際に使用するときは適切なアプリケーション名に置き換えてください。
ここで「undecided」を許可しないと(ルール「20」を設定しないと)、ファイアウォールの基本動作によって外部ゾーンから内部ゾーンへのトラフィックがすべて破棄されてしまうため、アプリケーションコントロール(DPI)エンジンに検査すべきパケットが届かず、結果的にアプリケーション「X」が判別されることもなくなってしまうためご注意ください。
- 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)# protect ↓
ファイアウォールの詳細については、「UTM」/「ファイアウォール」をご覧ください。
■ QoSルールは、トラフィックコントロールモードのruleコマンドで作成します。
QoSとアプリケーションコントロール(DPI)を併用する場合は、ファイアウォールでデフォルト拒否の設定をするときのように「permit undecided」ルールを作成する必要はありません。未判別のトラフィックはデフォルトキューで処理され、判別後は該当アプリケーションに対応するルールにしたがって処理されます。
QoSの詳細については、「トラフィック制御」/「Quality of Service」をご覧ください。
ログ
■ アプリケーションコントロール(DPI)のログを記録するには、以下のコマンド(log(filter))を実行してください。初期設定では本機能のログは記録されません。
awplus(config)# log buffered level informational facility local5 ↓
■ DPIによって判別されたアプリケーションの情報は、ファイアウォールログの「MARK」欄に出力されます。
ファイアウォールのログを出力するための設定については、「UTM」/「ファイアウォール」をご覧ください。
(C) 2022 アライドテレシスホールディングス株式会社
PN: 613-003066 Rev.A