概要
この記事は、Firepowerシステムのデータパスを体系的にトラブルシューティングし、Firepowerのコンポーネントがトラフィックに影響を与えているかどうかを判断する方法を説明する一連の記事の一部です。Firepowerプラットフォームのアーキテクチャと、その他のデータパスのトラブルシューティング記事へのリンクについては、「概要」の記事を参照してください。
この記事では、Firepowerのデータパスのトラブルシューティングの8番目の段階であるネットワーク分析ポリシー機能について説明します。
前提条件
- この記事は、すべてのFirepowerプラットフォームに適用されます
- トレース機能は、Firepower Threat Defense(FTD)プラットフォームのソフトウェアバージョン6.2.0以降でのみ使用できます。
- オープンソースSnortの知識は役に立ちますが、必須ではありません
- オープンソースSnortの詳細については、https://www.snort.org/を参照してください
ネットワーク分析ポリシー機能のトラブルシューティング
ネットワーク分析ポリシー(NAP)には、特定されたアプリケーションに基づいてトラフィックの検査を実行するSnortプリプロセッサ設定が含まれています。プリプロセッサには、設定に基づいてトラフィックをドロップする機能があります。この記事では、NAP構成を確認し、プリプロセッサのドロップを確認する方法について説明します。
注:プリプロセッサルールには、「1」または「3」(つまり129、119、124)以外のジェネレータID(GID)があります。 GIDからプリプロセッサへのマッピングの詳細については、FMC構成ガイドを参照してください。
「trace」ツールを使用したプリプロセッサドロップの検出(FTDのみ)
システムサポートトレースツールを使用して、プリプロセッサレベルで実行されるドロップを検出できます。
次の例では、TCP正規化プリプロセッサが異常を検出しました。その結果、トラフィックはルール129:14によってドロップされ、TCPストリーム内でタイムスタンプが欠落していることを探します。
注:TCP Stream Configurationプロプロセッサはトラフィックをドロップしますが、インライン正規化プリプロセッサも有効になっているため、ドロップできます。インライン正規化の詳細については、この記事を参照してください。
NAP構成の確認
Firepower Management Center(FMC)のUIで、NAPを[Policies] > [Access Control] > [Intrusion]の下に表示できます。次に、右上の[Network Analysis Policy]オプションをクリックします。このオプションをクリックすると、NAPを表示し、新しいポリシーを作成し、既存のポリシーを編集できます。
上の図に示すように、NAPには「インラインモード」機能が含まれています。これは、侵入ポリシーの「インライン時にドロップ」オプションに相当します。NAPによるトラフィックのドロップを防ぐ簡単な手順は、[インラインモード]をオフにすることです。NAPによって生成された侵入イベントは、インラインモードが無効な状態で[インライン結果]タブに何も表示されません。
NAP設定の表示
NAP内で、現在の設定を表示できます。これには、有効なプリプロセッサの総数と、
次の図に示すように、プリプロセッサはデフォルト以外の設定(手動で微調整したもの)で有効にされ、デフォルト設定で有効にされます。
サイレントドロップを引き起こす可能性のあるNAP設定
トレースセクションで説明した例では、ルールTCPストリーム構成ルール129:14がトラフィックをドロップしています。これは、システムサポートトレースの出力を調べることによって決まります。ただし、該当するルールがそれぞれの侵入ポリシー内で有効になっていない場合、FMCには侵入イベントは送信されません。
この問題が発生する理由は、Block Unresolvable TCP Header Anomalyと呼ばれるインライン正規化プロプロセッサ内の設定が原因です。このオプションは、基本的に、特定のGID 129ルールがTCPストリームの異常を検出したときに、Snortがブロックアクションを実行できるようにします。
Block Unresolvable TCP Header Anloaturesが有効な場合は、次の図に従ってGID 129ルールをオンにすることをお勧めします。
GID 129ルールをオンにすると、FMCがトラフィックに対してアクションを実行するときに、侵入イベントが送信されます。ただし、[Block Unresolvable TCP Header Promises]が有効である限り、侵入ポリシーの[Rule State]が[Generate Events]に設定されている場合でも、トラフィックをドロップする可能性があります。この動作については、『FMCコンフィギュレーションガイド』で説明します。
上記のドキュメントは、この記事に記載されています(バージョン6.4については、この記事の投稿時点で最新のバージョン)。
バックエンド設定の確認
プリプロセッサの動作には、FMCに反映されずに特定の設定をバックエンドで有効にできるという複雑さのレイヤが追加されています。考えられる理由を次に示します。
- 他の有効な機能では、プリプロセッサ設定を強制的に有効にする機能があります(主にファイルポリシーです)
- 一部の侵入ポリシールールでは、検出を実行するために特定のプリプロセッサオプションが必要です
- 不具合は挙動を起こすことがある
- CSCuz50295 – 「マルウェアブロックを使用したファイルポリシーにより、ブロックフラグを使用したTCP正規化が可能になる」という例が見られました。
バックエンドの構成を確認する前に、バックエンドのSnort構成ファイルで使用されるSnortキーワードは、NAP内の特定の設定にカーソルを合わせると表示されることに注意してください。次の図を参照してください。
[NAP]タブの[ブロック未解決TCPヘッダー異常]オプションは、バックエンドのblockキーワードに変換されます。この情報を念頭に置いて、バックエンドの設定をエキスパートシェルから確認できます。
ターゲットNAPの作成
特定のホストがプリプロセッサイベントをトリガーしている場合は、カスタムNAPを使用して、そのホストとの間のトラフィックを検査できます。カスタムNAPでは、問題の原因となっている設定を無効にすることができます。
これらは、ターゲットNAPを実装するための手順です。
- この記事の「NAP構成の確認」セクションで説明されている手順に従ってNAPを作成します。
- アクセスコントロールポリシーの[詳細設定]タブで、[ネットワーク分析と侵入ポリシー]セクションに移動します。[ルールの追加]をクリックし、対象のホストを使用してルールを作成し、[ネットワーク分析ポリシー]セクションで新しく作成したNAPを選択します。
偽陽性分析
プリプロセッサルールの侵入イベントの誤検出のチェックは、ルールの評価に使用されるSnortルール(GIDが1および3である)とは大きく異なります。
プリプロセッサルールイベントに対して誤検出を実行するには、TCPストリーム内の異常を探すために完全なセッションキャプチャが必要です。
次の例では、ルール129:14に対してfalse positive分析が実行されています。これは、上記の例でトラフィックがドロップされていることを示しています。129:14は、タイムスタンプが欠落しているTCPストリームを探しているため、次に示すパケットキャプチャ分析によってルールがトリガーされた理由を明確に確認できます。
緩和手順
NAPで発生する可能性のある問題を迅速に軽減するには、次の手順を実行します。
- カスタムNAPを使用していて、NAP設定でトラフィックがドロップされているかどうかがわからない場合は、[セキュリティと接続のバランス]または[セキュリティを介した接続]ポリシーで置き換えてみてください。
- [カスタムルール]が使用されている場合は、NAPを上記のいずれかのデフォルトに設定してください
- アクセスコントロールルールでファイルポリシーが使用されている場合は、ファイルポリシーでFMCに反映されないバックエンドのプリプロセッサ設定を有効にできるため、一時的に削除する必要があります。
各プロトコルには異なるプリプロセッサがあり、それらのトラブルシューティングはプリプロセッサに固有である可能性があります。この記事では、各プリプロセッサの設定とトラブルシューティング方法については説明しません。
各プリプロセッサのマニュアルを参照して、各オプションの動作を詳しく調べることができます。これは、特定のプリプロセッサのトラブルシューティングに役立ちます。
TACに提供するデータ