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 の取り込み認証ファイルを取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [収集エージェント] に移動します。
- Ingestion Authentication File をダウンロードします。
Bindplane エージェントがインストールされるシステムにファイルを安全に保存します。
Google SecOps のお客様 ID を取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [プロファイル] に移動します。
[組織の詳細情報] セクションから [お客様 ID] をコピーして保存します。
Bindplane エージェントをインストールする
次の手順に沿って、Windows または Linux オペレーティング システムに Bindplane エージェントをインストールします。
Windows のインストール
- 管理者としてコマンド プロンプトまたは PowerShell を開きます。
次のコマンドを実行します。
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quietインストールが完了するまで待ちます。
次のコマンドを実行して、インストールの内容を確認します。
sc query observiq-otel-collectorサービスは RUNNING と表示されます。
Linux のインストール
- root 権限または sudo 権限でターミナルを開きます。
次のコマンドを実行します。
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.shインストールが完了するまで待ちます。
次のコマンドを実行して、インストールの内容を確認します。
sudo systemctl status observiq-otel-collectorサービスが [active (running)] と表示されます。
その他のインストール リソース
その他のインストール オプションとトラブルシューティングについては、Bindplane エージェントのインストール ガイドをご覧ください。
syslog を取り込んで Google SecOps に送信するように Bindplane エージェントを構成する
Bindplane エージェントを構成して、TCP(推奨)または UDP 経由で syslog メッセージを受信できます。
構成ファイルを見つける
Linux:
sudo nano /etc/bindplane-agent/config.yamlWindows:
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
- Linux:
customer_id: Google SecOps コンソールからコピーしたお客様 IDendpoint: リージョナル エンドポイント URL:- 米国:
malachiteingestion-pa.googleapis.com - ヨーロッパ:
europe-malachiteingestion-pa.googleapis.com - アジア:
asia-southeast1-malachiteingestion-pa.googleapis.com - 完全なリストについては、リージョン エンドポイントをご覧ください。
- 米国:
構成ファイルを保存する
- 編集後、ファイルを保存します。
- Linux:
Ctrl+O、Enter、Ctrl+Xの順に押します。 - Windows: [ファイル>保存] をクリックします。
- Linux:
Bindplane エージェントを再起動して変更を適用する
Linux で Bindplane エージェントを再起動するには、次のコマンドを実行します。
sudo systemctl restart observiq-otel-collectorサービスが実行されていることを確認します。
sudo systemctl status observiq-otel-collectorログでエラーを確認します。
sudo journalctl -u observiq-otel-collector -f
Windows で Bindplane エージェントを再起動するには、次のいずれかのオプションを選択します。
管理者としてコマンド プロンプトまたは PowerShell を開きます。
net stop observiq-otel-collector && net start observiq-otel-collectorサービス コンソール:
Win+Rキーを押して「services.msc」と入力し、Enter キーを押します。- observIQ OpenTelemetry Collector を見つけます。
- 右クリックして [再起動] を選択します。
サービスが実行されていることを確認します。
sc query observiq-otel-collectorログでエラーを確認します。
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 の使用
- 管理者認証情報を使用して Forcepoint Security Manager にログインします。
- [設定] > [ロギング] に移動します。
- 左側のナビゲーションで、[ログサーバー] を選択します。
- [追加] をクリックして、新しいログサーバー構成を作成します。
- 次の構成の詳細を入力します。
- サーバータイプ: [Syslog サーバー] または [CEF サーバー] を選択します。
- 名前: わかりやすい名前を入力します(例:
Google Security Operations Bindplane CEF)。 - ホスト: Bindplane エージェントの IP アドレスまたはホスト名を入力します。
- ポート: Bindplane エージェントのポート番号(例:
514)を入力します。 - プロトコル: Bindplane の構成と一致するプロトコルを選択します。
- Bindplane で
tcplogレシーバを構成した場合は、[TCP] を選択します(推奨)。 - Bindplane で
udplogレシーバーを構成した場合は、[UDP] を選択します。
- Bindplane で
- 形式: [CEF](Common Event Format)を選択します。
- ファシリティ: Local0(または別の利用可能なファシリティ)を選択します。
- 重大度: [Informational] を選択します(すべてのログレベルをキャプチャするため)。
- [ログカテゴリ] または [イベントタイプ] で、転送するイベントを選択します。
- ウェブアクセスログ(トランザクション ログ)
- セキュリティ イベント(脅威の検出)
- 認証イベント(ユーザーのログイン/ログアウト)
- システム イベント(システムと構成の変更)
- または、[All Events] を選択して、利用可能なすべてのログタイプを転送します。
- 省略可: 追加の設定を構成します。
- バッチサイズ: リアルタイム転送の場合は
1に設定し、バッチ処理の場合はそれより大きい値に設定します。 - メッセージ形式: CEF 形式が選択されていることを確認します。
- ユーザー情報を含める: ユーザー ID をログに含める場合に有効にします。
- バッチサイズ: リアルタイム転送の場合は
- [接続をテスト] をクリックして、Bindplane エージェントへの接続を確認します。
- [保存] をクリックして、構成を適用します。
- [Deploy] をクリックして、構成をすべての Forcepoint Web Security ゲートウェイにプッシュします。
Forcepoint Web Security Appliance の使用(直接構成)
アプライアンスで直接構成する場合:
- Forcepoint Web Security Appliance の管理インターフェースにログインします。
- [System > Log Server] に移動します。
- [追加] または [編集] をクリックして、ログサーバーを作成または変更します。
- 次の構成の詳細を入力します。
- サーバー アドレス: Bindplane エージェントの IP アドレスを入力します。
- ポート:
514(またはカスタムポート)を入力します。 - プロトコル: Bindplane の構成に合わせて、TCP または UDP を選択します。
- 形式: [CEF] または [Common Event Format] を選択します。
- Facility: [Local0] を選択します。
- [ログの種類] で、転送するログを選択します。
- アクセスログ
- セキュリティ ログ
- 管理ログ
- [適用] または [保存] をクリックします。
- 複数のアプライアンスを使用している場合は、各アプライアンスでこの構成を繰り返します。
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_name が target.application にマッピングされます。 |
bytes_in |
network.received_bytes |
in が空でない場合、bytes_in にマッピングされます。最後に、bytes_in が network.received_bytes にマッピングされます。 |
bytes_out |
network.sent_bytes |
out が空でない場合、bytes_out にマッピングされます。最後に、bytes_out が network.sent_bytes にマッピングされます。 |
cat |
security_result.category_details |
cat が空でない場合、category にマッピングされます。最後に、category が security_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 にマッピングされます。最後に、ContentType が target.file.mime_type にマッピングされます。 |
cs1 |
target_role.description |
cs1 は target_role.description にマッピングされます。 |
cs2 |
security_result.category_details |
cs2 が空ではなく、0 でもない場合、接頭辞 Dynamic Category: 付きで security_result.category_details にマッピングされます。 |
cs3 |
target.file.mime_type |
cs3 は target.file.mime_type にマッピングされます。 |
description |
metadata.description |
description が空でない場合、metadata.description にマッピングされます。 |
destinationServiceName |
target.application |
destinationServiceName が空でない場合、app_name にマッピングされます。最後に、app_name が target.application にマッピングされます。 |
deviceFacility |
metadata.product_event_type |
product_event と deviceFacility が空でない場合、- と連結されて metadata.product_event_type にマッピングされます。それ以外の場合は、product_event が metadata.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_ip が target.ip にマッピングされます。 |
dst_host |
target.hostname |
dst が空でなく、dvchost が空の場合、dst_host にマッピングされます。最後に、dst_host が target.hostname にマッピングされます。 |
dst_ip |
target.ip |
dst が空でなく、dvchost が空の場合、dst_ip にマッピングされます。最後に、dst_ip が target.ip にマッピングされます。 |
dst_port |
target.port |
dst が空でなく、dvchost が空の場合、dst_port にマッピングされます。最後に、dst_port が target.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 にマッピングされます。最後に、src が principal.ip にマッピングされます。 |
http_method |
network.http.method |
requestMethod が空でない場合、http_method にマッピングされます。それ以外の場合、method が空でなければ、http_method にマッピングされます。最後に、http_method が network.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_in が network.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 にマッピングされます。最後に、role が target_role.name にマッピングされます。 |
log_level |
security_result.severity |
severity が 1 の場合、log_level に info が含まれている場合、または message に notice が含まれている場合、security_result.severity は INFORMATIONAL に設定されます。severity が 7 の場合、security_result.severity は HIGH に設定されます。 |
loginID |
principal.user.userid |
loginID が空でない場合、user にマッピングされます。最後に、user が空でなく、- でなく、LDAP を含まない場合、principal.user.userid にマッピングされます。 |
method |
network.http.method |
requestMethod が空でない場合、http_method にマッピングされます。それ以外の場合、method が空でなければ、http_method にマッピングされます。最後に、http_method が network.http.method にマッピングされます。 |
NatRuleId |
security_result.detection_fields.value |
NatRuleId が空でない場合、キー NatRuleId を使用して security_result.detection_fields.value にマッピングされます。 |
out |
network.sent_bytes |
out が空でない場合、bytes_out にマッピングされます。最後に、bytes_out が network.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_event と deviceFacility が空でない場合、- と連結されて metadata.product_event_type にマッピングされます。それ以外の場合は、product_event が metadata.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_agent が network.http.user_agent にマッピングされます。 |
requestMethod |
network.http.method |
requestMethod が空でない場合、http_method にマッピングされます。最後に、http_method が network.http.method にマッピングされます。 |
role |
target_role.name |
level が空でなく、role が空の場合、role にマッピングされます。最後に、role が target_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 |
severity が 1 の場合、log_level に info が含まれている場合、または message に notice が含まれている場合、security_result.severity は INFORMATIONAL に設定されます。severity が 7 の場合、security_result.severity は HIGH に設定されます。 |
spt |
principal.port |
spt が空でない場合、src_port にマッピングされます。最後に、src_port が principal.port にマッピングされます。 |
src |
principal.ip |
src_host が空でない場合、source_ip_temp にマッピングされます。source_ip_temp が有効な IP アドレスで、src が空の場合、src にマッピングされます。host が空でない場合、src にマッピングされます。最後に、src が principal.ip にマッピングされます。 |
src_host |
principal.hostname |
src_host が空でない場合、source_ip_temp にマッピングされます。source_ip_temp が有効な IP アドレスでない場合は、principal.hostname にマッピングされます。source_ip_temp が有効な IP アドレスで、src が空の場合、src にマッピングされます。最後に、src が principal.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_WEBPROXY は metadata.log_type にハードコードされています。 |
| なし | metadata.product_name |
値 Forcepoint Webproxy は metadata.product_name にハードコードされています。 |
| なし | metadata.vendor_name |
値 Forcepoint は metadata.vendor_name にハードコードされています。 |
| なし | network.application_protocol |
dst_port が 80 の場合、network.application_protocol は HTTP に設定されます。dst_port が 443 の場合、network.application_protocol は HTTPS に設定されます。 |
| なし | 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_msg、action、act が空でない場合、それらの値に基づいて sec_action が ALLOW または BLOCK に設定されます。最後に、sec_action が security_result.action にマッピングされます。 |
| なし | security_result.detection_fields.key |
disposition または cn1 をマッピングするときに、値 Disposition Number が security_result.detection_fields.key にハードコードされます。NatRuleId をマッピングするときに、値 NatRuleId が security_result.detection_fields.key にハードコードされます。category_no をマッピングするときに、値 Category Number が security_result.detection_fields.key にハードコードされます。 |
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。