Forcepoint Web Security のログを収集する

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

このドキュメントでは、Bindplane エージェントを使用して Forcepoint Web Security ログを Google Security Operations に取り込む方法について説明します。

Forcepoint Web Security は、ウェブ アクセス、セキュリティ イベント、認証、ポリシー適用に関する syslog メッセージを CEF(Common Event Format)で生成するウェブ プロキシとセキュリティ ゲートウェイです。パーサーは、CEF 形式と Syslog 形式のログからフィールドを抽出し、Unified Data Model(UDM)にマッピングします。

始める前に

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

  • Google SecOps インスタンス
  • Windows Server 2016 以降、または systemd を使用する Linux ホスト
  • Bindplane エージェントと Forcepoint Web Security 間のネットワーク接続
  • プロキシの背後で実行している場合は、Bindplane エージェントの要件に従ってファイアウォール ポートが開いていることを確認します。
  • Forcepoint Security Manager またはアプライアンス管理インターフェースに対する管理者権限

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

  1. Google SecOps コンソールにログインします。
  2. [SIEM 設定] > [収集エージェント] に移動します。
  3. Ingestion Authentication File をダウンロードします。
  4. 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
    
  3. インストールが完了するまで待ちます。

  4. 次のコマンドを実行して、インストールの内容を確認します。

    sc query observiq-otel-collector
    

    サービスは RUNNING と表示されます。

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
    
  3. インストールが完了するまで待ちます。

  4. 次のコマンドを実行して、インストールの内容を確認します。

    sudo systemctl status observiq-otel-collector
    

    サービスが [active (running)] と表示されます。

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

その他のインストール オプションとトラブルシューティングについては、Bindplane エージェントのインストール ガイドをご覧ください。

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

Bindplane エージェントを構成して、TCP(推奨)または UDP 経由で syslog メッセージを受信できます。

構成ファイルを見つける

  • Linux:

    sudo nano /etc/bindplane-agent/config.yaml
    
  • Windows:

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

構成ファイルを編集します。

config.yaml の内容全体を、選択したプロトコルの構成に置き換えます。

  • オプション A: TCP 構成(推奨)

    receivers:
        tcplog:
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/forcepoint_webproxy:
            compression: gzip
            creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
            customer_id: '<customer_id>'
            endpoint: malachiteingestion-pa.googleapis.com
            log_type: FORCEPOINT_WEBPROXY
            raw_log_field: body
    
    service:
        pipelines:
            logs/forcepoint_tcp_to_chronicle:
                receivers:
                    - tcplog
                exporters:
                    - chronicle/forcepoint_webproxy
    
  • オプション B: UDP 構成

    receivers:
        udplog:
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/forcepoint_webproxy:
            compression: gzip
            creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
            customer_id: '<customer_id>'
            endpoint: malachiteingestion-pa.googleapis.com
            log_type: FORCEPOINT_WEBPROXY
            raw_log_field: body
    
    service:
        pipelines:
            logs/forcepoint_udp_to_chronicle:
                receivers:
                    - udplog
                exporters:
                    - chronicle/forcepoint_webproxy
    

構成パラメータ

各プレースホルダを次のように置き換えます。

  • レシーバーの構成:

    • listen_address: リッスンする IP アドレスとポート:
      • すべてのインターフェースでリッスンする 0.0.0.0(推奨)
      • ポート 514 は標準の syslog ポートです(Linux で root が必要。root 以外の場合は 1514 を使用)
  • エクスポータの構成:

    • creds_file_path: 取り込み認証ファイルのフルパス:
      • Linux: /etc/bindplane-agent/ingestion-auth.json
      • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
    • customer_id: Google SecOps コンソールからコピーしたお客様 ID
    • endpoint: リージョナル エンドポイント URL:
      • 米国: malachiteingestion-pa.googleapis.com
      • ヨーロッパ: europe-malachiteingestion-pa.googleapis.com
      • アジア: asia-southeast1-malachiteingestion-pa.googleapis.com
      • 完全なリストについては、リージョン エンドポイントをご覧ください。

構成ファイルを保存する

  • 編集後、ファイルを保存します。
    • Linux: Ctrl+OEnterCtrl+X の順に押します。
    • Windows: [ファイル>保存] をクリックします。

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

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

    sudo systemctl restart observiq-otel-collector
    
    1. サービスが実行されていることを確認します。

      sudo systemctl status observiq-otel-collector
      
    2. ログでエラーを確認します。

      sudo journalctl -u observiq-otel-collector -f
      
  • Windows で Bindplane エージェントを再起動するには、次のいずれかのオプションを選択します。

    • 管理者としてコマンド プロンプトまたは PowerShell を開きます。

      net stop observiq-otel-collector && net start observiq-otel-collector
      
    • サービス コンソール:

      1. Win+R キーを押して「services.msc」と入力し、Enter キーを押します。
      2. observIQ OpenTelemetry Collector を見つけます。
      3. 右クリックして [再起動] を選択します。
      4. サービスが実行されていることを確認します。

        sc query observiq-otel-collector
        
      5. ログでエラーを確認します。

        type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
        

Forcepoint Web Security で syslog 転送を構成する

ログを CEF(Common Event Format)形式で Bindplane エージェントに転送するように Forcepoint Web Security を構成します。

Forcepoint Security Manager の使用

  1. 管理者認証情報を使用して Forcepoint Security Manager にログインします。
  2. [設定] > [ロギング] に移動します。
  3. 左側のナビゲーションで、[ログサーバー] を選択します。
  4. [追加] をクリックして、新しいログサーバー構成を作成します。
  5. 次の構成の詳細を入力します。
    • サーバータイプ: [Syslog サーバー] または [CEF サーバー] を選択します。
    • 名前: わかりやすい名前を入力します(例: Google Security Operations Bindplane CEF)。
    • ホスト: Bindplane エージェントの IP アドレスまたはホスト名を入力します。
    • ポート: Bindplane エージェントのポート番号(例: 514)を入力します。
    • プロトコル: Bindplane の構成と一致するプロトコルを選択します。
      • Bindplane で tcplog レシーバを構成した場合は、[TCP] を選択します(推奨)。
      • Bindplane で udplog レシーバーを構成した場合は、[UDP] を選択します。
    • 形式: [CEF](Common Event Format)を選択します。
    • ファシリティ: Local0(または別の利用可能なファシリティ)を選択します。
    • 重大度: [Informational] を選択します(すべてのログレベルをキャプチャするため)。
  6. [ログカテゴリ] または [イベントタイプ] で、転送するイベントを選択します。
    • ウェブアクセスログ(トランザクション ログ)
    • セキュリティ イベント(脅威の検出)
    • 認証イベント(ユーザーのログイン/ログアウト)
    • システム イベント(システムと構成の変更)
    • または、[All Events] を選択して、利用可能なすべてのログタイプを転送します。
  7. 省略可: 追加の設定を構成します。
    • バッチサイズ: リアルタイム転送の場合は 1 に設定し、バッチ処理の場合はそれより大きい値に設定します。
    • メッセージ形式: CEF 形式が選択されていることを確認します。
    • ユーザー情報を含める: ユーザー ID をログに含める場合に有効にします。
  8. [接続をテスト] をクリックして、Bindplane エージェントへの接続を確認します。
  9. [保存] をクリックして、構成を適用します。
  10. [Deploy] をクリックして、構成をすべての Forcepoint Web Security ゲートウェイにプッシュします。

Forcepoint Web Security Appliance の使用(直接構成)

アプライアンスで直接構成する場合:

  1. Forcepoint Web Security Appliance の管理インターフェースにログインします。
  2. [System > Log Server] に移動します。
  3. [追加] または [編集] をクリックして、ログサーバーを作成または変更します。
  4. 次の構成の詳細を入力します。
    • サーバー アドレス: Bindplane エージェントの IP アドレスを入力します。
    • ポート: 514(またはカスタムポート)を入力します。
    • プロトコル: Bindplane の構成に合わせて、TCP または UDP を選択します。
    • 形式: [CEF] または [Common Event Format] を選択します。
    • Facility: [Local0] を選択します。
  5. [ログの種類] で、転送するログを選択します。
    • アクセスログ
    • セキュリティ ログ
    • 管理ログ
  6. [適用] または [保存] をクリックします。
  7. 複数のアプライアンスを使用している場合は、各アプライアンスでこの構成を繰り返します。

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
action security_result.summary action_msg が空でない場合、security_result.summary にマッピングされます。それ以外の場合、action が空でなければ、security_result.summary にマッピングされます。それ以外の場合、act が空でなければ、security_result.summary にマッピングされます。
action_msg security_result.summary action_msg が空でない場合、security_result.summary にマッピングされます。それ以外の場合、action が空でなければ、security_result.summary にマッピングされます。それ以外の場合、act が空でなければ、security_result.summary にマッピングされます。
app target.application destinationServiceName が空でない場合、app_name にマッピングされます。それ以外の場合、app が空ではなく、http または HTTP が含まれていない場合は、app_name にマッピングされます。最後に、app_nametarget.application にマッピングされます。
bytes_in network.received_bytes in が空でない場合、bytes_in にマッピングされます。最後に、bytes_innetwork.received_bytes にマッピングされます。
bytes_out network.sent_bytes out が空でない場合、bytes_out にマッピングされます。最後に、bytes_outnetwork.sent_bytes にマッピングされます。
cat security_result.category_details cat が空でない場合、category にマッピングされます。最後に、categorysecurity_result.category_details にマッピングされます。
category_no security_result.detection_fields.value category_no が空でない場合、キー Category Number を使用して security_result.detection_fields.value にマッピングされます。
cn1 security_result.detection_fields.value cn1 が空でない場合、キー Disposition Number を使用して security_result.detection_fields.value にマッピングされます。
ContentType target.file.mime_type contentType が空でない場合、ContentType にマッピングされます。最後に、ContentTypetarget.file.mime_type にマッピングされます。
cs1 target_role.description cs1target_role.description にマッピングされます。
cs2 security_result.category_details cs2 が空ではなく、0 でもない場合、接頭辞 Dynamic Category: 付きで security_result.category_details にマッピングされます。
cs3 target.file.mime_type cs3target.file.mime_type にマッピングされます。
description metadata.description description が空でない場合、metadata.description にマッピングされます。
destinationServiceName target.application destinationServiceName が空でない場合、app_name にマッピングされます。最後に、app_nametarget.application にマッピングされます。
deviceFacility metadata.product_event_type product_eventdeviceFacility が空でない場合、- と連結されて metadata.product_event_type にマッピングされます。それ以外の場合は、product_eventmetadata.product_event_type にマッピングされます。
disposition security_result.detection_fields.value disposition が空でない場合、キー Disposition Number を使用して security_result.detection_fields.value にマッピングされます。
dst target.ip dst が空でなく、dvchost が空の場合、dst_ip にマッピングされます。最後に、dst_iptarget.ip にマッピングされます。
dst_host target.hostname dst が空でなく、dvchost が空の場合、dst_host にマッピングされます。最後に、dst_hosttarget.hostname にマッピングされます。
dst_ip target.ip dst が空でなく、dvchost が空の場合、dst_ip にマッピングされます。最後に、dst_iptarget.ip にマッピングされます。
dst_port target.port dst が空でなく、dvchost が空の場合、dst_port にマッピングされます。最後に、dst_porttarget.port にマッピングされます。
duration network.session_duration.seconds duration が空でなく、0 でない場合、network.session_duration.seconds にマッピングされます。
dvchost intermediary.ip dvchost が空でない場合、int_ip にマッピングされます。最後に、int_ip が有効な IP アドレスの場合は intermediary.ip にマッピングされ、それ以外の場合は intermediary.hostname にマッピングされます。
file_path target.file.full_path file_path が空でない場合、target.file.full_path にマッピングされます。
host principal.ip host が空でない場合、src にマッピングされます。最後に、srcprincipal.ip にマッピングされます。
http_method network.http.method requestMethod が空でない場合、http_method にマッピングされます。それ以外の場合、method が空でなければ、http_method にマッピングされます。最後に、http_methodnetwork.http.method にマッピングされます。
http_proxy_status_code network.http.response_code http_response が空または 0 または - で、http_proxy_status_code が空でない場合、network.http.response_code にマッピングされます。
http_response network.http.response_code http_response が空でなく、0 でもなく、- でもない場合、network.http.response_code にマッピングされます。
http_user_agent network.http.user_agent http_user_agent が空でなく、- でない場合、network.http.user_agent にマッピングされます。
in network.received_bytes in が空でない場合、bytes_in にマッピングされます。最後に、bytes_innetwork.received_bytes にマッピングされます。
int_host intermediary.hostname int_ip が空でなく、int_host が空でなく、int_ip と異なる場合、intermediary.hostname にマッピングされます。
int_ip intermediary.ip dvchost が空でない場合、int_ip にマッピングされます。最後に、int_ip が有効な IP アドレスの場合は intermediary.ip にマッピングされ、それ以外の場合は intermediary.hostname にマッピングされます。
level target_role.name level が空でなく、role が空の場合、role にマッピングされます。最後に、roletarget_role.name にマッピングされます。
log_level security_result.severity severity1 の場合、log_levelinfo が含まれている場合、または messagenotice が含まれている場合、security_result.severityINFORMATIONAL に設定されます。severity7 の場合、security_result.severityHIGH に設定されます。
loginID principal.user.userid loginID が空でない場合、user にマッピングされます。最後に、user が空でなく、- でなく、LDAP を含まない場合、principal.user.userid にマッピングされます。
method network.http.method requestMethod が空でない場合、http_method にマッピングされます。それ以外の場合、method が空でなければ、http_method にマッピングされます。最後に、http_methodnetwork.http.method にマッピングされます。
NatRuleId security_result.detection_fields.value NatRuleId が空でない場合、キー NatRuleId を使用して security_result.detection_fields.value にマッピングされます。
out network.sent_bytes out が空でない場合、bytes_out にマッピングされます。最後に、bytes_outnetwork.sent_bytes にマッピングされます。
pid target.process.pid pid が空でない場合、target.process.pid にマッピングされます。
policy target_role.description Policy が空でない場合、policy にマッピングされます。policy が空でなく、- でない場合、target_role.description にマッピングされます。
Policy target_role.description Policy が空でない場合、policy にマッピングされます。policy が空でなく、- でない場合、target_role.description にマッピングされます。
product_event metadata.product_event_type product が空でない場合、product_event にマッピングされます。product_eventdeviceFacility が空でない場合、- と連結されて metadata.product_event_type にマッピングされます。それ以外の場合は、product_eventmetadata.product_event_type にマッピングされます。
proxyStatus-code network.http.response_code http_response が空または 0 または - で、http_proxy_status_code が空で proxyStatus-code が空でない場合、network.http.response_code にマッピングされます。
refererUrl network.http.referral_url refererUrl が空でなく、- でない場合、network.http.referral_url にマッピングされます。
requestClientApplication network.http.user_agent requestMethod が空でない場合、http_user_agent にマッピングされます。最後に、http_user_agentnetwork.http.user_agent にマッピングされます。
requestMethod network.http.method requestMethod が空でない場合、http_method にマッピングされます。最後に、http_methodnetwork.http.method にマッピングされます。
role target_role.name level が空でなく、role が空の場合、role にマッピングされます。最後に、roletarget_role.name にマッピングされます。
RuleID security_result.rule_id RuleID が空でない場合、security_result.rule_id にマッピングされます。
serverStatus-code network.http.response_code http_response が空または 0 または - で、http_proxy_status_code が空で proxyStatus-code が空でない場合、network.http.response_code にマッピングされます。
severity security_result.severity severity1 の場合、log_levelinfo が含まれている場合、または messagenotice が含まれている場合、security_result.severityINFORMATIONAL に設定されます。severity7 の場合、security_result.severityHIGH に設定されます。
spt principal.port spt が空でない場合、src_port にマッピングされます。最後に、src_portprincipal.port にマッピングされます。
src principal.ip src_host が空でない場合、source_ip_temp にマッピングされます。source_ip_temp が有効な IP アドレスで、src が空の場合、src にマッピングされます。host が空でない場合、src にマッピングされます。最後に、srcprincipal.ip にマッピングされます。
src_host principal.hostname src_host が空でない場合、source_ip_temp にマッピングされます。source_ip_temp が有効な IP アドレスでない場合は、principal.hostname にマッピングされます。source_ip_temp が有効な IP アドレスで、src が空の場合、src にマッピングされます。最後に、srcprincipal.ip にマッピングされます。
src_port principal.port src_port が空でない場合、principal.port にマッピングされます。
suser principal.user.userid loginID が空でない場合、user にマッピングされます。suser が空でない場合、user にマッピングされます。最後に、user が空でなく、- でなく、LDAP を含まない場合、principal.user.userid にマッピングされます。
url target.url url が空でない場合、target.url にマッピングされます。
user principal.user.userid loginID が空でない場合、user にマッピングされます。suser が空でない場合、user にマッピングされます。それ以外の場合、usrName が空でなければ、user にマッピングされます。最後に、user が空でなく、- でなく、LDAP を含まない場合、principal.user.userid にマッピングされます。
usrName principal.user.userid loginID が空でない場合、user にマッピングされます。suser が空でない場合、user にマッピングされます。それ以外の場合、usrName が空でなければ、user にマッピングされます。最後に、user が空でなく、- でなく、LDAP を含まない場合、principal.user.userid にマッピングされます。
when metadata.event_timestamp when が空でない場合、解析されて metadata.event_timestamp にマッピングされます。
なし metadata.log_type FORCEPOINT_WEBPROXYmetadata.log_type にハードコードされています。
なし metadata.product_name Forcepoint Webproxymetadata.product_name にハードコードされています。
なし metadata.vendor_name Forcepointmetadata.vendor_name にハードコードされています。
なし network.application_protocol dst_port80 の場合、network.application_protocolHTTP に設定されます。dst_port443 の場合、network.application_protocolHTTPS に設定されます。
なし principal.user.group_identifiers user が空でなく、- でなく、LDAP を含む場合、ユーザー文字列の OU 部分が抽出され、principal.user.group_identifiers にマッピングされます。
なし principal.user.user_display_name user が空でなく、- でなく、LDAP を含む場合、ユーザー文字列のユーザー名部分が抽出され、principal.user.user_display_name にマッピングされます。
なし security_result.action action_msgactionact が空でない場合、それらの値に基づいて sec_actionALLOW または BLOCK に設定されます。最後に、sec_actionsecurity_result.action にマッピングされます。
なし security_result.detection_fields.key disposition または cn1 をマッピングするときに、値 Disposition Numbersecurity_result.detection_fields.key にハードコードされます。NatRuleId をマッピングするときに、値 NatRuleIdsecurity_result.detection_fields.key にハードコードされます。category_no をマッピングするときに、値 Category Numbersecurity_result.detection_fields.key にハードコードされます。

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