Forescout NAC のログを収集する

以下でサポートされています。

このドキュメントでは、Bindplane を使用して Forescout Network Access Control(NAC)ログを Google Security Operations に取り込む方法について説明します。このパーサーは、Forescout NAC からの syslog 形式と CEF 形式の両方のログを処理します。grok パターンを使用してフィールドを抽出し、統合データモデル(UDM)にマッピングし、キーワードと抽出されたフィールドに基づいてイベントを分類します。また、ログイン/ログアウト、ネットワーク接続、メール イベント、システム ステータスの更新を処理します。重大度のマッピングやユーザー コンテキストの拡充など、「CounterACT」イベントと「Virtual Firewall」イベントを処理するための特定のロジックが実装されています。

始める前に

次の前提条件を満たしていることを確認してください。

  • Google SecOps インスタンス
  • Windows 2016 以降、または systemd を使用する Linux ホスト
  • プロキシの背後で実行されている場合、ファイアウォール ポートが開いている
  • ForeScout CounterAct v8.0 以降のバージョンがインストールされていること
  • ForeScout CounterAct コア拡張モジュール Syslog プラグイン v3.5 がインストールされていること
  • Forescout Appliance と CounterACT プラグインへの特権アクセス

Google SecOps の取り込み認証ファイルを取得する

  1. Google SecOps コンソールにログインします。
  2. [SIEM 設定] > [コレクション エージェント] に移動します。
  3. Ingestion Authentication File をダウンロードします。Bindplane をインストールするシステムにファイルを安全に保存します。

Google SecOps のお客様 ID を取得する

  1. Google SecOps コンソールにログインします。
  2. [SIEM 設定] > [プロファイル] に移動します。
  3. [組織の詳細情報] セクションから [お客様 ID] をコピーして保存します。

Bindplane エージェントをインストールする

次の手順に沿って、Windows または Linux オペレーティング システムに Bindplane エージェントをインストールします。

Windows のインストール

  1. 管理者として コマンド プロンプトまたは PowerShell を開きます。
  2. 次のコマンドを実行します。

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Linux のインストール

  1. root 権限または sudo 権限でターミナルを開きます。
  2. 次のコマンドを実行します。

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    

その他のインストール リソース

その他のインストール オプションについては、インストール ガイドをご覧ください。

Syslog を取り込んで Google SecOps に送信するように Bindplane エージェントを構成する

  1. 構成ファイルにアクセスします。
    • config.yaml ファイルを見つけます。通常、Linux では /etc/bindplane-agent/ ディレクトリに、Windows ではインストール ディレクトリにあります。
    • テキスト エディタ(nanovi、メモ帳など)を使用してファイルを開きます。
  2. config.yaml ファイルを次のように編集します。

    receivers:
        udplog:
            # Replace the port and IP address as required
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the path to the credentials file you downloaded in Step 1
            creds_file_path: '/path/to/ingestion-authentication-file.json'
            # Replace with your actual customer ID from Step 2
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # Add optional ingestion labels for better organization
            ingestion_labels:
                log_type: 'FORESCOUT_NAC'
                raw_log_field: body
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. 自社のインフラストラクチャでの必要性に応じて、ポートと IP アドレスを置き換えます。

  4. <customer_id> は、実際の顧客 ID に置き換えます。

  5. /path/to/ingestion-authentication-file.json の値を、Google SecOps の取り込み認証ファイルを取得するで認証ファイルを保存したパスに更新します。

Bindplane エージェントを再起動して変更を適用する

  • Linux で Bindplane エージェントを再起動するには、次のコマンドを実行します。

    sudo systemctl restart bindplane-agent
    
  • Windows で Bindplane エージェントを再起動するには、サービス コンソールを使用するか、次のコマンドを入力します。

    net stop BindPlaneAgent && net start BindPlaneAgent
    

CounterACT Syslog プラグインをインストールする

  1. [Forescount Base Plugins] ページに移動し、プラグインの .fpi ファイルをダウンロードします。
  2. CounterACT Console がインストールされているマシンにファイルを保存します。
  3. CounterACT Console にログインします。
  4. [Options>Plugins>Install] を選択します。
  5. 保存したプラグインの FPI ファイルを参照して選択します。
  6. [インストール] をクリックします。
  7. 続行するには、使用許諾契約に同意します。
  8. インストールが完了したら、[閉じる] をクリックします。
  9. [Plugin] ペインでプラグインを選択し、[Start] をクリックします。
  10. プラグインを開始する CounterACT アプライアンスを選択します(環境内のすべてのアプライアンスでプラグインを実行することをおすすめします)。
  11. [OK] をクリックします。
  12. [閉じる] をクリックします。

Forescout CounterACT Syslog プラグインで Syslog を構成する

  1. [Plugins] ペインで、[Syslog > Configure] をクリックします。
  2. ダイアログでアプライアンスまたは Enterprise Manager を選択し、[OK] をクリックします。
  3. [Send Events To] で [Add] をクリックします。
  4. 次の構成の詳細を指定します。
    • サーバー アドレス: Bindplane エージェントの IP アドレスを入力します。
    • サーバーポート: Bindplane エージェントのポート番号を入力します(UDP の場合は 514 など)。
    • Server Protocol: [UDP] を選択します。
    • ID: syslog メッセージを識別するための自由形式のテキスト フィールド。
    • 省略可: ファシリティ: メッセージの優先度フィールドの一部として送信される Syslog メッセージ ファシリティ。ファシリティ値が指定されていない場合は、local5 に設定されます。
    • 重大度: [情報] を選択します。
  5. [Syslog Trigger] タブに移動します。
  6. [「Syslog にメッセージを送信」アクションで生成されたメッセージのみを送信する] チェックボックスはオンにしないでください。
  7. [Include timestamp and CounterACT device identifier in all messages] チェックボックスのみをオンにします。
  8. [オプション] をクリックして、syslog メッセージをトリガーするイベントタイプを定義します。
    • NAC ポリシーログを含めます。
    • NAC ポリシーの一致 / 不一致イベントを含めます。
    • 他のイベントを選択します(利用可能な場合)。
  9. [Default Action Configuration] タブに移動します。
  10. 次の構成の詳細を指定します。
    • サーバー アドレス: Bindplane エージェントの IP アドレスを入力します。
    • サーバーポート: Bindplane エージェントのポート番号を入力します(UDP の場合は 514 など)。
    • Server Protocol: [UDP] を選択します。
    • メッセージ ID: Syslog メッセージを識別するための自由形式のテキスト フィールド。
    • 省略可: ファシリティ: メッセージの優先度フィールドの一部として送信される Syslog メッセージ ファシリティ。ファシリティ値が指定されていない場合、local5 に設定されます。
    • 重大度: [情報] を選択します。
  11. [OK] をクリックします。

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
act security_result.action_details CEF ログの act フィールドから直接マッピングされます。
app network.application_protocol CEF ログの app フィールドから直接マッピングされます。
Available_memory additional.fields event_type が「システム統計情報」の場合に kv_data から抽出されます。キーは「Available memory」で、値は抽出された文字列です。
Available_swap additional.fields event_type が「システム統計情報」の場合、kv_data から抽出されます。キーは「Available swap」で、値は抽出された文字列です。
application_status additional.fields event_type が「Application status」の場合に kv_data から抽出されます。キーは「Application status」、値は抽出された文字列です。
Assigned_hosts additional.fields event_type が「Application status」の場合に kv_log_data から抽出されます。キーは「Assigned hosts」、値は抽出された文字列です。
Category security_result.description et_lower が「nac policy log」の場合の security_result.description の一部。他の詳細情報と連結されます。
command principal.process.command_line CEF ログの rnmsg フィールドから抽出されます(「command:」で始まる場合)。
Connected_clients additional.fields event_type が「Application status」の場合に kv_log_data から抽出されます。キーは「Connected clients」、値は抽出された文字列です。
CPU_usage additional.fields event_type が「システム統計情報」の場合、kv_data から抽出されます。キーは「CPU 使用率」で、値は抽出された文字列です。
cs1 additional.fields CEF ログの cs1 フィールドから直接マッピングされます。キーは「Compliancy Policy Name」です。
cs2 additional.fields CEF ログの cs2 フィールドから直接マッピングされます。キーは「Compliancy Policy Subrule Name」です。
cs3 additional.fields CEF ログの cs3 フィールドから直接マッピングされます。キーは「Host Compliancy Status」です。
cs4 additional.fields CEF ログの cs4 フィールドから直接マッピングされます。キーは「Compliancy Event Trigger」です。
data security_result.description パーサーのさまざまな部分で使用され、情報を抽出して最終的な UDM フィールドに反映されます。単一の UDM フィールドに直接マッピングされません。
details security_result.description 「ログ」イベントの解析やユーザー セッションの変更など、いくつかのケースで security_result.description を入力するために使用されます。特定の情報についてさらに解析される場合があります。
Destination target.iptarget.hostname kv_data または data から解析されます。IP アドレスに変換できる場合は、target.ip にマッピングされます。それ以外の場合は target.hostname にマッピングされます。
deviceExternalId about.asset.asset_id CEF ログの deviceExternalId フィールドから直接マッピングされます(「Forescout.CommandCenter:」という接頭辞が付きます)。
dhost target.hostname CEF ログの dhost フィールドから直接マッピングされます。
dmac target.mac CEF ログの dmac フィールドから直接マッピングされます。
dntdom target.administrative_domain CEF ログの dntdom フィールドから直接マッピングされます。
dst target.ip CEF ログの dst フィールドから直接マッピングされます。
dpt target.port CEF ログの dpt フィールドから直接マッピングされます。
duser target.user.user_display_name CEF ログの duser フィールドから直接マッピングされます。
dvc about.ip CEF ログの dvc フィールドから直接マッピングされます。
dvchost about.hostname CEF ログの dvchost フィールドから直接マッピングされます。
EM_connection_status additional.fields event_type が「Application status」の場合に kv_log_data から抽出されます。キーは「EM connection status」で、値は抽出された文字列です。
Engine_status additional.fields event_type が「Application status」の場合に kv_log_data から抽出されます。キーは「Engine status」、値は抽出された文字列です。
event_type metadata.descriptionsecurity_result.summary ログ メッセージから解析されます。UDM イベントタイプとその他のフィールドを特定するために使用されます。イベントが「GENERIC_EVENT」の場合、説明にも使用されます。
eventtype additional.fields CEF ログの eventtype フィールドから直接マッピングされます。キーは「eventtype」です。
externalId metadata.product_log_id CEF ログの externalId フィールドから直接マッピングされます。
from\[...\] to\[...\] principal.iptarget.ip 「from[...] to[...]」パターンから送信元と宛先の IP を抽出します。
Host principal.ipprincipal.hostname et_lower が「block event」の場合に kv_data から解析されます。IP に変換できる場合は principal.ip にマッピングし、それ以外の場合は principal.hostname にマッピングします。
Hostname principal.hostnameprincipal.asset.hostname プロパティ変更検出イベントに存在する場合、principal.hostname および principal.asset.hostname にマッピングされます。
Installed_Plugins additional.fields event_type が「Application status」の場合に kv_log_data から抽出されます。キーは「Installed Plugins」、値は抽出された文字列です。
iporhost intermediary.ipintermediary.hostname header_data から解析されます。IP に変換できる場合は intermediary.ip にマッピングし、それ以外の場合は intermediary.hostname にマッピングします。
Is Virtual Firewall blocking rule security_result.actionsecurity_result.rule_name 「true」の場合、security_result.action を「BLOCK」に、security_result.rule_name を「Virtual Firewall blocking」に設定します。
log_description security_result.summary 存在する場合に security_result.summary に直接マッピングされます。
log_type metadata.log_type 定数値「FORESCOUT_NAC」に設定します。
MAC principal.mac プロパティ変更検出イベントの kv_data から解析され、MAC アドレスとしてフォーマットされます。
mail_from network.email.from mail_details から抽出された mail_from フィールドから直接マッピングされます。
mail_subject network.email.subject mail_details から抽出された mail_subject フィールドから直接マッピングされます。
mail_to network.email.to mail_details から抽出された mail_to フィールドから直接マッピングされます。
Match security_result.rule_name et_lower が「nac policy log」の場合、Match フィールドから直接マッピングされます。
metadata.event_type metadata.event_type ログメッセージ内の特定のフィールドとキーワードの存在など、パーサー内のさまざまな条件によって決定されます。デフォルトは GENERIC_EVENT で、解析されたデータに基づいて更新されます。たとえば、USER_LOGINUSER_LOGOUTNETWORK_CONNECTIONSCAN_NETWORKSTATUS_UPDATEEMAIL_TRANSACTIONUSER_UNCATEGORIZED などがあります。
metadata.product_name metadata.product_name ほとんどのイベントでは「FORESCOUT NAC」に設定します。product フィールドが存在する場合は、その値に設定します。CEF イベントの場合、「CounterAct」に設定されます。
metadata.vendor_name metadata.vendor_name ほとんどのイベントでは「FORESCOUT」に設定されます。CEF イベントの場合、cs1Label フィールドが存在する場合はそこから取得され、存在しない場合は「ForeScout Technologies」に設定されます。
msg metadata.description CEF ログの msg フィールドから直接マッピングされます。
pid intermediary.process.pid header_data から抽出された pid フィールドから直接マッピングされます。
policy_details security_result.description et_lower が「nac policy log」の場合の security_result.description の一部。他の詳細情報と連結されます。
product metadata.product_name 存在する場合に metadata.product_name に直接マッピングされます。
proto network.ip_protocol CEF ログの proto フィールドから直接マッピングされます。
Reason security_result.description et_lower が「ブロック イベント」の場合、Reason フィールドから直接マッピングされます。
resource principal.resource.name CEF ログの resource フィールドから直接マッピングされます。
rnmsg security_result.descriptionprincipal.process.command_line 「command:」で始まる場合、「command:」の後の部分が principal.process.command_line にマッピングされます。それ以外の場合は security_result.description にマッピングされます。
rt metadata.event_timestamp CEF ログの rt フィールドから直接マッピングされ、タイムスタンプに変換されます。
Rule security_result.rule_id et_lower が「nac policy log」の場合、Rule フィールドから直接マッピングされます。
security_result.severity security_result.severity severity_level フィールドから取得されます。0 ~ 3 は LOW に、4 ~ 6 は MEDIUM に、7 ~ 8 は HIGH に、9 ~ 10 は CRITICAL にマッピングされます。
security_result.severity_details security_result.severity_details CEF ログの severity フィールドから直接マッピングされます。
Service target.portnetwork.ip_protocol 解析してポートとプロトコルを抽出します。ポートは target.port に、プロトコルは network.ip_protocol にマッピングされます。
session_id network.session_id session_id フィールドから直接マッピングされます。
severity security_result.severity_details CEF ログの severity フィールドから直接マッピングされます。
severity_level security_result.severity security_result.severity の決定に使用されます。

さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。