概要:アプリケーション検出
システムは IP トラフィックを分析するときに、ネットワーク上でよく使用されているアプリケーションを特定しようとします。アプリケーション認識は、アプリケーションを制御するために不可欠です。
システムによって検出されるアプリケーションには以下の 3 種類があります。
-
HTTP や SSH などのホスト間の通信を表すアプリケーション プロトコル
-
Web ブラウザや電子メール クライアントなどのホスト上で動作しているソフトウェアを表すクライアント
-
HTTP トラフィックの内容または要求された URL を表す MPEG ビデオや Facebook などの Web アプリケーション
システムは、ディテクタに指定されている特性に従って、ネットワーク トラフィック内のアプリケーションを識別します。たとえば、システムはパケット ヘッダーに含まれる ASCII パターンによってアプリケーションを確認できます。加えて、Secure Socket Layer(SSL)プロトコル ディテクタは、セキュアなセッションからの情報を使用して、セッションからアプリケーションを識別します。
アプリケーションディテクタの供給元には次の 2 つがあります。
-
システム提供ディテクタ。Web アプリケーション、クライアント、およびアプリケーション プロトコルを検出します。
アプリケーション(およびオペレーティングシステム)に対して使用できるシステム提供ディテクタは、インストールされているシステムソフトウェアのバージョンと VDB のバージョンによって異なります。リリース ノートとアドバイザリに、新しいディテクタと更新されたディテクタに関する情報が記載されています。また、プロフェッショナル サービスが作成した個別のディテクタをインポートすることもできます。
-
カスタム アプリケーション プロトコル ディテクタ。Web アプリケーション、クライアント、アプリケーション プロトコルを検出するためにユーザーが作成するディテクタです。
また、暗黙的アプリケーション プロトコル検出を通してアプリケーション プロトコルを検出することもできます。これは、クライアントの検出に基づいてアプリケーション プロトコルの存在を推測するものです。
ネットワーク検出ポリシーで定義されているように、システムはモニタ対象ネットワーク内のホスト上で動作しているアプリケーション プロトコルだけを識別します。たとえば、モニタされていないリモート サイト上の FTP サーバに内部ホストがアクセスする場合、システムはアプリケーション プロトコルを FTP として識別しません。一方、モニタされているホスト上の FTP サーバにリモートまたは内部ホストがアクセスする場合、システムはアプリケーション プロトコルを肯定的に識別できます。
モニタ対象ホストが非モニタ対象サーバに接続するために使用するクライアントをシステムで識別できる場合、システムはクライアントの対応するアプリケーション プロトコルを識別することができますが、そのプロトコルをネットワーク マップに追加することはしません。アプリケーション検出が発生するためには、クライアント セッションにサーバからの応答が含まれている必要があることに注意してください。
システムは、検出した各アプリケーションの特徴を把握します(アプリケーションの特性を参照)。システムはこれらの特徴を使用して、アプリケーション フィルタと呼ばれるアプリケーションのグループを作成します。アプリケーション フィルタは、アクセス制御するため、およびレポートとダッシュボード ウィジェットで使用する検索結果とデータを制限するために使用されます。
また、エクスポートした NetFlow レコード、Nmap のアクティブ スキャン、ホスト入力機能を使用してアプリケーション ディテクタ データを補完することもできます。
アプリケーション ディテクタの基本
システムは、アプリケーション ディテクタを使用して、ネットワーク上で一般的に使用されるアプリケーションを識別します。[ディテクタ(Detectors)] ページ()を使用してディテクタ リストを表示し、検出機能をカスタマイズします。
ディテクタまたはその状態(アクティブ/非アクティブ)を変更できるかどうかは、そのタイプによって異なります。システムは、アクティブなディテクタのみを使用して、アプリケーション トラフィックを分析します。
(注) |
シスコが提供するディテクタは、システムおよび VDB のアップデートによって変更される可能性があります。更新されたディテクタに関する情報については、リリース ノートおよびアドバイザリを参照してください。 |
(注) |
Firepower アプリケーションの識別のために、ポートは意図的にリストされていません。シスコのアプリケーションのいずれについても、アプリケーションの関連ポートは報告されません。これは、ほとんどのアプリケーションはポートに依存しないためです。シスコのプラットフォームの検出機能では、ネットワークのどのポートで実行されているサービスでも識別できます。 |
シスコが提供する内部ディテクタ
内部ディテクタは、クライアント、Web アプリケーション、およびアプリケーション プロトコルのトラフィック用の特別なディテクタ カテゴリです。内部ディテクタはシステム アップデートによって配信され、常にオンになっています。
アプリケーションがクライアント関連のアクティビティを検出するように設計された内部ディテクタと照合する場合で、特定のクライアント ディテクタがない場合は、汎用クライアントが報告される場合があります。
シスコが提供するクライアント ディテクタ
クライアント ディテクタは、クライアント トラフィックを検出し、VDB またはシステム アップデートを介して配信されるか、または Cisco Professional サービスによってインポート用に提供されます。クライアント ディテクタを有効または無効にすることができます。インポートしたクライアント ディテクタのみエクスポートできます。
シスコが提供する Web アプリケーション ディテクタ
Web アプリケーション ディテクタは、HTTP トラフィック ペイロード内の Web アプリケーションを検出し、VDB またはシステム アップデートを介して配信されます。Web アプリケーション ディテクタは常にオンになっています。
シスコが提供するアプリケーション プロトコル(ポート)ディテクタ
ポートベースのアプリケーション プロトコル ディテクタは、ウェルノウン ポートを使用してネットワーク トラフィックを識別します。これらは VDB またはシステム アップデートを介して配信されるか、または Cisco Professional サービスによってインポート用に提供されます。アプリケーション プロトコル ディテクタを有効または無効にしたり、カスタム ディテクタの基礎として使用するためにディテクタ定義を表示することができます。
シスコが提供するアプリケーション プロトコル(Firepower)ディテクタ
Firepower ベースのアプリケーション プロトコル ディテクタは、Firepower アプリケーション フィンガープリントを使用してネットワーク トラフィックを分析し、VDB またはシステム アップデートを介して配信されます。アプリケーション プロトコル ディテクタを有効または無効にすることができます。
カスタム アプリケーション ディテクタ
カスタム アプリケーション ディテクタはパターンベースです。クライアント、Web アプリケーション、またはアプリケーション プロトコルのトラフィックからのパケット内のパターンを検出します。インポートされたカスタム ディテクタを完全に制御できます。
Web インターフェイスでのアプリケーション プロトコルの識別
次の表に、検出されたアプリケーションプロトコルの識別方法の概略を示します。
ID |
説明 |
---|---|
アプリケーション プロトコル名 |
Management Center は、次のアプリケーション プロトコルの場合に、名前でアプリケーション プロトコルを識別します。
|
|
Management Center は、システムが肯定的と否定的のどちらでもアプリケーションを識別できない場合に、アプリケーション プロトコルを 多くの場合、システムが保留中のアプリケーションを識別するには、より多くの接続データを収集して分析する必要があります。 [アプリケーションの詳細(Application Details)] および [サーバ(Servers)] テーブルやホスト プロファイルで |
|
Management Center は、以下の場合にアプリケーション プロトコルを
|
空白 |
使用可能なすべての検出データが検証されましたが、アプリケーション プロトコルが識別されませんでした。[アプリケーションの詳細(Application Details)] および [サーバー(Servers)] テーブルとホスト プロファイルでは、アプリケーション プロトコルが検出されなかった非 HTTP 汎用クライアント トラフィックに対して、アプリケーション プロトコルが空白として表示されます。 |
クライアント検出からの暗黙的アプリケーション プロトコル検出
非監視対象サーバにアクセスするために監視対象ホストが使用しているクライアントをシステムが識別できる場合、Management Center はその接続でクライアントに対応するアプリケーション プロトコルが使用されていると推測します(システムは監視対象ネットワーク上のアプリケーションだけを追跡するため、通常、接続ログには監視対象ホストが非監視対象サーバにアクセスしている接続に関するアプリケーション プロトコル情報が含まれていません)。
暗黙的アプリケーション プロトコル検出と呼ばれるこのプロセスの結果は次のようになります。
-
システムはこれらのサーバの New TCP Port イベントまたは New UDP Port イベントを生成しないため、サーバが [サーバ(Servers)] テーブルに表示されません。加えて、これらのアプリケーション プロトコルの検出を基準にして、検出イベント アラートまたは相関ルールをトリガーすることはできません。
-
アプリケーション プロトコルはホストに関連付けられないため、ホスト プロファイルの詳細を表示したり、サーバ ID を設定したり、トラフィック プロファイルまたは相関ルールに関するホスト プロファイル資格内の情報を使用したりできません。加えて、システムはこの種の検出に基づいて脆弱性とホストを関連付けません。
ただし、アプリケーション プロトコル情報が接続内に存在するかどうかに対する相関イベントをトリガーできます。また、接続ログ内のアプリケーション プロトコル情報を使用して、接続トラッカーとトラフィック プロファイルを作成できます。
ホスト制限と検出イベント ロギング
システムがクライアント、サーバ、または Web アプリケーションを検出すると、関連するホストがすでにクライアント、サーバ、または Web アプリケーションの最大数に達していなければ、検出イベントが生成されます。
ホスト プロファイルには、ホストごとに最大 16 のクライアント、100 のサーバ、および 100 の Web アプリケーションが表示されます。
クライアント、サーバ、または Web アプリケーションの検出によって異なるアクションはこの制限の影響を受けないことに注意してください。たとえば、サーバー上でトリガーするように設定されたアクセス コントロール ルールでは、引き続き、接続イベントが記録されます。
アプリケーション検出に関する特別な考慮事項
SFTP
SFTP トラフィックを検出するためには、同じルールが SSH も検出する必要があります。
Squid
システムは、次のいずれかの場合に Squid サーバ トラフィックを肯定的に識別します。
-
モニタ対象ネットワーク上のホストからプロキシ認証が有効になっている Squid サーバへの接続をシステムが検出した場合
-
モニタ対象ネットワーク上の Squid プロキシ サーバからターゲット システム(つまり、クライアントが情報または別のリソースを要求する宛先サーバ)への接続をシステムが検出した場合
ただし、システムは次の場合に Squid サービス トラフィックを識別できません。
-
監視対象ネットワーク上のホストが、プロキシ認証が無効になっている Squid サーバに接続している場合
-
Squid プロキシ サーバが HTTP 応答から Via: ヘッダー フィールドを除去するように設定されている場合
SSL アプリケーション検出
システムは、Secure Socket Layer(SSL)セッションからのセッション情報を使用してセッション内のアプリケーション プロトコル、クライアント アプリケーション、または Web アプリケーションを識別するアプリケーション ディテクタを備えています。
システムは暗号化された接続を検出すると、その接続を汎用 HTTPS 接続として、または、該当する場合には SMTPS などのより特殊なセキュア プロトコルとしてマークします。システムは SSL セッションを検出すると、そのセッションに対する接続イベント内の
Client フィールドに SSL client
を追加します。セッションの Web アプリケーションが識別されると、システムでトラフィックの検出イベントが生成されます。
SSL アプリケーション トラフィックの場合は、管理対象デバイスも、サーバ証明書から一般名を検出して SSL ホスト パターンからのクライアントまたは Web アプリケーションと照合できます。システムが特定のクライアントを識別すると、SSL client
をそのクライアントの名前に置き換えます。
SSL アプリケーション トラフィックは暗号化されるため、システムは暗号化されたストリーム内のアプリケーション データではなく、証明書内の情報しか識別に使用できません。そのため、SSL ホスト パターンではアプリケーションを制作した会社しか識別できない場合があり、同じ会社が作成した SSL アプリケーションは識別情報が同じ可能性があります。
HTTPS セッションが HTTP セッション内から起動される場合などは、管理対象デバイスがクライアント側のパケット内のクライアント証明書からサーバ名を検出します。
SSL アプリケーション識別を有効にするには、応答側のトラフィックを監視するアクセス コントロール ルールを作成する必要があります。このようなルールには、SSL アプリケーションに関するアプリケーション条件または SSL 証明書からの URL
を使用した URL 条件を含める必要があります。ネットワーク検出では、応答側の IP アドレスがネットワーク上に存在しなくても、ネットワーク検出ポリシーでモニタできます。アクセス コントロール ポリシーの設定によって、トラフィックが識別されるかどうかが決まります。SSL
アプリケーションの検出を識別するには、アプリケーション ディテクタ リストで、または、アプリケーション条件をアクセス コントロール ルールに追加するときに、SSL protocol
タグでフィルタ処理します。
参照先 Web アプリケーション
Web サーバがトラフィックを他の Web サイト(通常は、アドバタイズメント サーバ)に参照する場合があります。ネットワーク上で発生するトラフィック参照のコンテキストをわかりやすくするために、システムは、参照セッションに対するイベント内の [Web アプリケーション(Web Application)] フィールドにトラフィックを参照した Web アプリケーションを列挙します。VDB に既知の照会先サイトのリストが含まれています。システムがこのようなサイトのいずれかからのトラフィックを検出すると、照会元サイトがそのトラフィックに対するイベントと一緒に保存されます。たとえば、Facebook 経由でアクセスされるアドバタイズメントが実際は Advertising.com 上でホストされている場合は、検出された Advertising.com トラフィックが Facebook Web アプリケーションに関連付けられます。また、システムは、Web サイトで他のサイトへの単リンクが提供されている場合などは、HTTP トラフィック内の参照元 URL を検出することもできます。この場合、参照元 URL は [HTTP 参照元(HTTP Referrer)] イベント フィールドに表示されます。
イベントでは、参照元アプリケーションが存在する場合に、それがトラフィックの Web アプリケーションとして列挙されますが、URL は参照先サイトの URL です。上の例では、トラフィックに対する接続イベントの Web アプリケーションは Facebook ですが、URL は Advertising.com です。参照元 Web アプリケーションが検出されない場合、ホストが自身を参照している場合、または参照がチェインしている場合は、参照先アプリケーションが Web アプリケーションとして表示される場合もあります。ダッシュボードでは、Web アプリケーションの接続カウントとバイト カウントに、Web アプリケーションが参照先のトラフィックに関連付けられたセッションが含まれます。
照会先トラフィックに対して明示的に機能するルールを作成する場合は、照会元アプリケーションではなく、照会先アプリケーションに関する条件を追加する必要があることに注意してください。Facebook から参照される Advertising.com トラフィックをブロックするには、Advertising.com アプリケーションのアクセス コントロール ルールにアプリケーション条件を追加します。
Snort 2 および Snort 3 でのアプリケーション検出
Snort 2 では、アクセス コントロール ポリシーの制約とネットワーク検出ポリシーのネットワークフィルタを介して、アプリケーション検出を有効または無効にすることができます。ただし、アクセス コントロール ポリシーの制約によりネットワークフィルタがオーバーライドされて、アプリケーション検出が有効になる可能性があります。たとえば、ネットワーク検出ポリシーでネットワークフィルタを定義していて、アクセス コントロール ポリシーにアプリケーション検出を必要とする SSL、URL SI、DNS SI などの制約がある場合は、これらのネットワーク検出フィルタがオーバーライドされて、すべてのネットワークがアプリケーション検出のためにモニターされます。この Snort 2 の機能は Snort 3 ではサポートされていません。
(注) |
Snort 3 は、すべてのトラフィックを監視するために AppID を必要とする他の構成が AC ポリシーに存在しない場合、ネットワーク検出ポリシーフィルタで定義されている特定のネットワークサブネットでのみ AppID インスペクションを有効にするという点で、Snort 2 と同等になりました。 |
Snort 3 では、デフォルトですべてのネットワークに対してアプリケーション検出が常に有効になっています。アプリケーション検出を無効にするには、次の手順を実行します。
手順
ステップ 1 |
を選択し、[ポリシーの編集(Edit Policy)] をクリックして、アプリケーションルールを削除します。 |
ステップ 2 |
を選択し、[削除(Delete)] をクリックして SSL ポリシーを削除します。 |
ステップ 3 |
を選択し、[削除(Delete)] をクリックしてネットワーク検出ポリシーを削除します。 |
ステップ 4 |
[ポリシー(Policies)] > [アクセス制御(Access Control)] を選択し、編集するポリシーの [編集(Edit)] ()> [URL(URLs)] タブを選択して、URL の許可リストまたはブロックリストを削除します。 |
ステップ 5 |
デフォルトの DNS ルールは削除できないため、 を選択し、[編集(Edit)] をクリックして、有効になっているボックスをオフにし、DNS ポリシーを無効にします。 |
ステップ 6 |
アクセス コントロール ポリシーの [詳細(Advanced)] 設定で、[Threat Intelligence Directorを有効にする(Enable Threat Intelligence Director)] および [DNSトラフィックへのレピュテーション適用を有効にする(Enable reputation enforcement on DNS traffic)] オプションを無効にします。 |
ステップ 7 |
アクセス コントロール ポリシーを保存して展開します。 |