アプリケーション識別用のカスタム アプリケーション シグネチャ
ユーザー定義のカスタム アプリケーション シグネチャを使用すると、使用されているプロトコルとポートに関係なく、アプリケーションを識別できます。ホスト名、IPアドレス範囲、ポートを使用してカスタムシグネチャを作成し、特定の宛先へのトラフィックを追跡できます。詳細については、以下のトピックを参照してください。
アプリケーションJunos OS識別カスタム アプリケーション シグネチャについて
このトピックは、以下のセクションで構成されています。
- カスタム アプリケーション シグネチャの概要
- カスタム アプリケーション シグネチャの拡張
- サポートされているタイプのカスタム アプリケーション シグネチャ
- カスタム アプリケーション シグネチャを使用するメリット
- 制限
- カスタム アプリケーション シグネチャの追加構成オプション
カスタム アプリケーション シグネチャの概要
Junos OS識別機能により、Web ベースでもクライアント/サーバー アプリケーションでも、任意のアプリケーションを識別するカスタム シグネチャを柔軟に作成できます。ICMP、IP プロトコル、IP アドレス、レイヤー 7 に基づいてアプリケーションのカスタム アプリケーション シグネチャを作成できます。
一般的に、カスタム アプリケーション シグネチャは使用する環境に固有で、主に内部アプリケーションやカスタム アプリケーションの検査に使用されます。カスタム アプリケーション シグネチャを作成すると、AppID は標準アプリケーションと同じ方法で分類および検査を行います。カスタム アプリケーション シグネチャは事前定義されたアプリケーション パッケージの一部ではなされないので、事前定義されたアプリケーション署名データベースには保存されません。
カスタム シグネチャを設定するには、デバイスにアプリケーション署名パッケージをインストールする必要があります。カスタム 署名が設定されている場合、アプリケーション署名パッケージをアンインストールすることはできません。システムを新しいソフトウェア バージョンにアップグレードすると、すべてのカスタム アプリケーション シグネチャが同じ方法で転送されます。
カスタム アプリケーション シグネチャの拡張
リリース Junos OS 20.1R1から、新しいアプリケーションとコンテキスト のセットを提供することで、カスタム アプリケーションシグネチャ機能を強化しました。
カスタム アプリケーション シグネチャ コンテキストがアプリケーション署名パッケージの一部に含まれています。新しく導入されたアプリケーションとコンテキストをカスタム アプリケーション シグネチャに使用する場合は、最新のアプリケーション署名パッケージ バージョン 3248 以降をダウンロードしてインストールする必要があります。アプリケーション署名パッケージは、アップグレードせずに個別にアップグレードJunos OS。
サポートされているタイプのカスタム アプリケーション シグネチャ
セキュリティ デバイスでは、次のタイプのカスタム シグネチャーがサポートされています。
ICMP ベースのマッピング
アドレスベースのマッピング
IP プロトコルベースのマッピング
レイヤー 7 ベースおよび TCP/UDP ストリームベース マッピング
サポートされるカスタム アプリケーション シグネチャのすべてでは、ICMP ベース、IP プロトコルベース、アドレスベースのカスタム アプリケーションが、レイヤー 7 ベースのカスタム アプリケーションや TCP/UDP ストリーム ベースのカスタム アプリケーションよりも優先度が高くなります。カスタム アプリケーション シグネチャの優先順序は、ICMP ベース、IP プロトコルベース、アドレスベース、レイヤー 7 ベースまたは TCP/UDP ストリームベースのカスタム アプリケーションです。
ICMP ベースのマッピング
ICMP マッピング技術は、標準の ICMP メッセージ タイプとオプション コードを固有のアプリケーション名にマッピングします。このマッピング手法により、さまざまなタイプの ICMP メッセージを区別できます。ICMP マッピング技術は、ICMPv6 トラフィックをサポートしません。
IDP TCP または UDP トラフィックでのみ動作します。そのため、ICMP マッピングはアプリケーションに適用されませんIDP、カスタム攻撃などのIDP機能をサポートできません。
アドレスベースのマッピング
レイヤー 3 およびレイヤー 4 のアドレス マッピングは、トラフィックの IP アドレスとオプションのポート範囲によってアプリケーションを定義します。
レイヤー 3 およびレイヤー 4 のアドレスベースのカスタム アプリケーションを設定するには、IP アドレスとポート範囲を宛先 IP アドレスおよびポートに一致する必要があります。IP アドレスとポートの両方が設定されている場合、どちらの条件もパケットの宛先 IP アドレスとポート範囲と一致する必要があります。
既知のポート5060からセッションを開始するSIP(セッション開始プロトコル)サーバーの使用を検討してください。この IP アドレスおよびポートからのすべてのトラフィックは SIP アプリケーションによってのみ生成されます。このため、SIP アプリケーションは、アプリケーション識別用にサーバーの IP アドレスとポート 5060 にマッピングできます。この IP アドレスおよびポートを持つすべてのトラフィックは、この SIP アプリケーション トラフィックとして識別されます。
アドレスベース アプリケーションと TCP/UDP ストリームベース アプリケーションを設定し、セッションが両方のアプリケーションと一致する場合、TCP/UDP ストリームベース アプリケーションはアプリケーションとして報告され、アドレスベースのアプリケーションは拡張アプリケーションとして報告されます。
適切なセキュリティを確保するために、プライベート ネットワークの設定で信頼できるサーバー間のアプリケーション トラフィックを予測する場合、アドレス マッピングを使用します。アドレス マッピングは、既知のアプリケーションからのトラフィックを処理する上で効率性と精度を高めます。
IP プロトコルベースのマッピング
標準 IP プロトコル番号は、アプリケーションを IP トラフィックにマップします。アドレス マッピングと同様に、適切なセキュリティを確保するために、信頼できるサーバーのプライベート ネットワークでのみ IP プロトコル マッピングを使用します。
IDP TCP または UDP トラフィックでのみ動作します。IP プロトコル マッピングは、IP プロトコル マッピングに適用IDP、カスタム攻撃IDP機能をサポートできません。
IP プロトコル ベースのカスタム アプリケーション シグネチャは、19.2~Junos OS リリース 19.4 の Junos OS では動作しません。リリース Junos OS リリース 20.1R1、IP プロトコルベースのカスタム アプリケーション シグネチャを使用できます。
推奨される回避策:
統合ポリシーを設定する場合は、サービスベースのアプリケーション設定を使用します。例:
user@host#
set applications application application-name protocol IP-proto-number例:
user@host#
set applications application A1 protocol 2従来のアプリケーション ファイアウォールを使用している場合は、事前定義された IP プロトコル アプリケーションを使用します。例
user@host#
set security application-firewall rule-sets rule-set-name rule rule-name match dynamic-application application-name例:
user@host#
set security application-firewall rule-sets RS-1 rule R1 match dynamic-application junos:IPP-IGMP
レイヤー 7 ベースおよび TCP/UDP ストリームベース シグネチャ
レイヤー 7 カスタム シグネチャは、TCP または UDP またはレイヤー 7 のアプリケーションで実行するアプリケーションを定義します。
同じレイヤー 7 プロトコルで実行されている複数のアプリケーションを識別するには、レイヤー 7 ベースのカスタム アプリケーション シグネチャが必要です。たとえば、Facebook や Yahoo メッセンジャーなどのアプリケーションはどちらも HTTP 上で実行できますが、同じレイヤー 7 プロトコルで実行されている 2 つの異なるアプリケーションとして識別する必要があります。
レイヤー 7 ベースのカスタム アプリケーション シグネチャは、HTTP コンテキストのパターンに基づいてアプリケーションを検出します。ただし、一部の HTTP セッションは SSL で暗号化されます。アプリケーション識別では、サーバー名情報またはサーバー認定資格を TLS または SSL セッションから抽出することもできます。また、レイヤー 7 アプリケーションの TCP または UDP ペイロードのパターンも検出できます。
カスタム アプリケーション シグネチャを使用するメリット
特定のアプリケーションに基づいてネットワーク環境に固有のセキュリティ ポリシーを適用する
未知のアプリケーションや未分類のアプリケーションを可視化
レイヤー 7 上のアプリケーションとトランジット アプリケーションまたは一時的なアプリケーションを識別し、既知のアプリケーションをさらにきめ細かく実現します。
特定のアプリケーションに対してQoSサービス品質(QoS)を実行する
制限
以下の機能はサポートされていません。
PCRE ベースの一部の表現と、テキストベースの文字(ハイパースキャンでサポートされていない場合)
レイヤー 7 ベースのシグネチャのメンバー間での順序の適用
アドレスベース シグネチャのワイルドカード アドレス(レイヤー 3 およびレイヤー 4)
カスタム アプリケーション シグネチャの追加構成オプション
Junos OS Release 20.1R1 以降、アプリケーション署名パッケージ バージョン 3248 以降を使用している場合は、カスタム アプリケーション シグネチャに対して以下のオプションを設定できます。
カスタム アプリケーション パターンの奥行き
AppID のバイト制限を指定して、TCP、UDP、またはレイヤー 7 のアプリケーションで実行されているアプリケーションのカスタム アプリケーション パターンを識別できます。
制限を設定するには、階層から以下の設定ステートメントを使用 [edit]
します。
user@host#
set services application-identification application application-name over application signature signature-name member number depth
例:
user@host#
set services application-identification application my_custom_address over HTTP signature my_addr_sig1 member m01 depth 256
レイヤー 7 カスタム アプリケーションでは、レイヤー 7 コンテキストの最初から詳細を考慮します。TCP/UDP ストリームベースのカスタム アプリケーションでは、TCP/UDP ペイロードの最初から詳細が考慮されます。
カスタム アプリケーション インスペクション バイト制限
AppID のインスペクション バイト制限を設定して、分類を締結し、セッションでカスタム アプリケーションを識別できます。AppID が上限を超えた場合、アプリケーションの分類は終了します。このオプションを使用して、アプリケーション トラフィックのスループットを改善できます。
アプリケーション バイト制限を設定するには、 [edit] 階層から次の設定ステートメントを使用します。
user@host#
set services application-identification custom-application-byte-limit byte-number
例:
user@host#
set services application-identification custom-application-byte-limit 400
事前定義されたアプリケーションでカスタム アプリケーションシグネチャを設定している場合、AppIDが事前定義済みのアプリケーションをすでに特定している場合、DPIは引き続きカスタムシグネチャ識別を実行します。カスタム 署名識別は進行中ですが、分類は非最終値としてマークされます。カスタム アプリケーション バイト制限内にカスタム アプリケーションが識別され、事前定義済みのアプリケーションがすでに特定されている場合、AppID は事前定義済みのアプリケーションを最終と結論付け、セッションのオフロードを行います。
カスタム アプリケーションの優先度
Junos OS 20.1R1 以前のリリースでは、カスタム アプリケーション シグネチャのデフォルト優先度が高く、カスタム シグネチャを事前に定義したアプリケーションよりも優先付けできます。リリースJunos OSすると20.1R1アプリケーション シグネチャのデフォルトの優先度は低くなります。
AppID が優先度の低いカスタム アプリケーションを特定した後で、事前定義されたアプリケーションを識別すると、事前定義済みのアプリケーション分類が最終プロセスになるまで待機します。事前定義されたアプリケーションが一致し、カスタム アプリケーションが識別されていない場合、AppID は識別されたカスタム アプリケーションによって分類を終了します。
事前定義されたアプリケーションの優先度をカスタム アプリケーション シグネチャでオーバーライドする場合は、カスタム アプリケーション シグネチャの優先度を高く設定する必要があります。
カスタム アプリケーションの高優先度を設定するには、 [edit] 階層から次の設定ステートメントを使用します。
user@host#
set services application-identification application application-name priority high
例:
user@host#
set services application-identification application my_custom_address priority high
カスタム アプリケーションの優先度については、以下の点に注意してください。
リリースJunos OS 20.1R1前のリリース:
カスタム アプリケーションのデフォルト優先度は高くなります。
アプリケーションの優先度は、複数のアプリケーションが同じパケット内で一致する場合に考慮されます。
カスタム アプリケーションの優先度の高い設定 : カスタム アプリケーションは、常に事前定義されたアプリケーションよりも高い優先度が設定されます。
カスタム アプリケーションの優先度を低く設定する場合 — カスタム アプリケーションは、同様のパターンベースの定義済みシグネチャよりも優先度が低く、他のアプリケーションよりも優先度が高くなります。これらのリリースでは、動作を変更するオプションはありません。
リリースJunos OSの場合20.1R1以降:
カスタム アプリケーションのデフォルト優先度は低です。
優先度は、同じパケット内の一致に依存しない。
レイヤー 7 および TCP/UDP ストリーム ベースのカスタム アプリケーションの優先度は、すべての事前定義済みアプリケーションで設定された(高いまたは低い)として機能します。
レイヤー 3 およびレイヤー 4 ベースのカスタム アプリケーションは、常に高い優先度を維持します。この場合、設定された優先度は無視されます。レイヤー 3 およびレイヤー 4 ベースのカスタム アプリケーションによって、事前定義されたアプリケーションすべてが上書きされます。なぜなら、これらのアプリケーションはセッションの最初のパケットでトリガーされるという問題です。
例: アプリケーション識別Junos OSカスタム アプリケーション シグネチャの設定
この例では、アプリケーション識別用にカスタム アプリケーション シグネチャを設定Junos OSを示します。
アプリケーションの署名のカスタマイズをJunos OSは高度なアプリケーションにのみ推奨します。
開始する前に、以下を実行します。
お使いのデバイスに有効なアプリケーション識別機能ライセンスSRX シリーズします。「 デバイス ライセンスのJunos OSする」を参照してください。
この構成例は、リリース 10.1 Junos OS を使用20.1R1。
アプリケーション署名パッケージがインストールされたセキュリティ デバイスを確認します。アプリケーション署名 パッケージを手動でダウンロードJunos OSインストール する を参照してください。
拡張カスタム アプリケーション シグネチャを使用するには、最新のアプリケーション署名パッケージ バージョン 3284 以降をアップグレードします。次のコマンドを使用して、アプリケーション署名のバージョンを確認します。
user@host> show services application-identification version
Application package version: 3248
アプリケーションのシグネチャをカスタマイズしようとするJunos OSは、高度なユーザーにのみ推奨します。
概要
アプリケーション識別は、デバイスを通過するアプリケーションを検出するカスタム アプリケーション シグネチャをサポートしています。カスタム シグネチャを設定する場合は、シグネチャが一意か確認します。
次の手順に従って、カスタム アプリケーション シグネチャを設定します。
セキュリティ デバイスがアプリケーション トラフィックと一致するコンテキスト、パターン、方向、ポート範囲などの属性を定義します。
インスペクションの制限、パターンの奥行き、優先度(オプションの構成)を設定して、カスタム アプリケーションのアプリケーション識別プロセスを強化します。
アプリケーション トラフィックを許可または拒否するセキュリティ ポリシーにカスタム アプリケーションを追加します。
および コマンドを使用して、アプリケーション シグネチャとアプリケーション シグネチャー グループ
show services application-identification application
を表示show services application-identification group
します。
カスタム アプリケーション設定の例
手順
手順
カスタム アプリケーションのインスペクション制限を設定します。
[edit ] user@host# set services application-identification custom-application-byte-limit 400
カスタム アプリケーションの優先度を設定します。
[edit ] user@host# set services application-identification application test cacheable user@host# set services application-identification application test priority high
TCP ストリームベースのカスタム シグネチャーを設定します。
[edit ] user@host# set services application-identification application my_custom_tcp over TCP signature s1 member m01 context stream user@host# set services application-identification application my_custom_tcp over TCP signature s1 member m01 pattern .*install.* user@host# set services application-identification application my_custom_tcp over TCP signature s1 member m01 direction any user@host# set services application-identification application my_custom_tcp over TCP signature s1 member m01 depth 100
FTP コンテキストベースのカスタム シグネチャの設定:
[edit ] user@host# set services application-identification application my_custom_ftp over FTP signature sig1 member m01 depth 60 user@host# set services application-identification application my_custom_ftp over FTP signature sig1 member m01 context ftp-file-name user@host# set services application-identification application my_custom_ftp over FTP signature sig1 member m01 pattern .*install.* user@host# set services application-identification application my_custom_ftp over FTP signature sig1 member m01 direction client-to-server
HTTP コンテキストベースのカスタム シグネチャーを設定します。
[edit ] user@host# set services application-identification application my_custom_http over HTTP signature s1 member m01 context http-header-host user@host# set services application-identification application my_custom_http over HTTP signature s1 member m01 pattern .*agent1.* user@host# set services application-identification application my_custom_http over HTTP signature s1 member m01 direction client-to-server user@host# set services application-identification application my_custom_http over HTTP signature s1 member m01 depth 100
SSL コンテキストベースのカスタム シグネチャの設定:
[edit] user@host# set services application-identification application my_custom_ssl over SSL signature s1 member m01 context ssl-server-name user@host# set services application-identification application my_custom_ssl over SSL signature s1 member m01 pattern "example\.com" user@host# set services application-identification application my_custom_ssl over SSL signature s1 member m01 direction client-to-server user@host# set services application-identification application my_custom_ssl over SSL signature s1 member m01 depth 100
ICMP ベースのカスタム アプリケーション シグネチャーを設定します。
[edit ] user@host# set services application-identification application my_custom_icmp icmp-mapping type 100 user@host# set services application-identification application my_custom_icmp icmp-mapping code 1
レイヤー 3 またはレイヤー 4 のアドレスベースのカスタム アプリケーション シグネチャを設定します。
[edit ] user@host# set services application-identification application my_custom_address address-mapping ADDR-SAMPLE filter ip 192.0.2.1/24 user@host# set services application-identification application my_custom_address address-mapping ADDR-SAMPLE filter port-range udp 5000-6000
注:アドレスベースのカスタム アプリケーション シグネチャを設定するには、適切なポート範囲と指定された IP アドレスを指定する必要があります。
IP プロトコル マッピングベースのカスタム アプリケーション シグネチャを設定します。
[edit] user@host# set services application-identification application my_custom_ip_proto ip-protocol-mapping protocol 2
カスタム アプリケーションを一致条件として使用してセキュリティ ポリシーを作成します。
user@host# set security policies from-zone untrust to-zone trust policy 1 match source-address any user@host# set security policies from-zone untrust to-zone trust policy 1 match destination-address any user@host# set security policies from-zone untrust to-zone trust policy 1 match application any user@host# set security policies from-zone untrust to-zone trust policy 1 match dynamic-application my_custom_http user@host# set security policies from-zone untrust to-zone trust policy 1 then permit
この例ではmy_custom_httpを使用しています同様に、異なるセキュリティ ポリシーを作成し、要件に従って動的アプリケーションの一致条件として my_custom_ftp、my_custom_tcp、my_custom_ssl、my_custom_address、my_custom_icmp、my_custom_ip_proto などの他のカスタム アプリケーションを指定できます。
アプリケーションの追跡を有効にします。
user@host# set security zones security-zone trust application-tracking
結果
設定モードから、 コマンドを入力して設定を確認 show services application-identification
します。出力結果に意図した設定結果が表示されない場合は、この例の設定手順を繰り返して設定を修正します。
[edit]
user@host# show services application-identification
custom-application-byte-limit 100; application my_custom_address { address-mapping ADDR-SAMPLE { filter { ip 192.0.2.1/24; port-range { udp 5000-6000; } } } } application my_custom_ftp { over FTP { signature sig1 { member m01 { depth 60; context ftp-file-name; pattern .*install.*; direction client-to-server; } } } } application my_custom_http { over HTTP { signature s1 { member m01 { depth 100; context http-header-host; pattern .*agent1.*; direction client-to-server; } } } } application my_custom_icmp { icmp-mapping { type 100; code 1; } } application my_custom_ip_proto { ip-protocol-mapping { protocol 2; } } application my_custom_ssl { over SSL { signature s1 { member m01 { depth 100; context ssl-server-name; pattern "example\.com"; direction client-to-server; } } } } application my_custom_tcp { over TCP { signature s1 { member m01 { depth 100; context stream; pattern .*install.*; direction any; } } } } application test { cacheable; priority high; }
[edit security policies] user@host# show from-zone untrust to-zone trust { policy 1 { match { source-address any; destination-address any; application any; dynamic-application [my_custom_http]; } then { permit; } } }
デバイスの設定が完了したら、設定モード commit
から を入力します。
検証
カスタム アプリケーション定義の検証
目的
デバイスで設定されたカスタム アプリケーション シグネチャを表示します。事前定義されたアプリケーション シグネチャー名は、プレフィックス「junos:」を使用します。
アクション
設定モードから コマンドを入力 show services application-identification application detail name
します。
user@host> show services application-identification application detail test Application Name: test Application type: TEST Description: N/A Application ID: 16777219 Priority: high