Forcepoint Proxy のログを収集する
このドキュメントでは、Bindplane を使用して Forcepoint Proxy のログを Google Security Operations に取り込む方法について説明します。パーサーはまず、入力ログ メッセージをクリーンアップし、grok パターンと正規表現を使用して Key-Value ペアを抽出します。次に、抽出されたフィールドを特定の条件とフィールド値に基づいて統合データモデル(UDM)にマッピングし、さまざまなログ形式とエッジケースを処理して、一貫したデータ表現を実現します。
始める前に
- Google Security Operations インスタンスがあることを確認します。
- Windows 2016 以降、または
systemd
を使用する Linux ホストを使用していることを確認します。 - プロキシの背後で実行している場合は、ファイアウォールのポートが開いていることを確認します。
- Forcepoint Proxy への特権アクセス権があることを確認します。
Google SecOps の取り込み認証ファイルを取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [コレクション エージェント] に移動します。
- Ingestion Authentication File をダウンロードします。ファイルを、Bindplane をインストールするシステムに安全に保存します。
Google SecOps のお客様 ID を取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [プロファイル] に移動します。
- [組織の詳細情報] セクションから [お客様 ID] をコピーして保存します。
Bindplane エージェントをインストールする
Windows へのインストール
- 管理者として コマンド プロンプトまたは PowerShell を開きます。
次のコマンドを実行します。
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Linux へのインストール
- root 権限または sudo 権限でターミナルを開きます。
次のコマンドを実行します。
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
その他のインストール リソース
- その他のインストール オプションについては、こちらのインストール ガイドをご覧ください。
Syslog を取り込んで Google SecOps に送信するように Bindplane エージェントを構成する
構成ファイルにアクセスします。
config.yaml
ファイルを見つけます。通常、Linux では/etc/bindplane-agent/
ディレクトリ、Windows ではインストール ディレクトリにあります。- テキスト エディタ(
nano
、vi
、メモ帳など)を使用してファイルを開きます。
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: '/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: FORCEPOINT_WEBPROXY raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labels
自社のインフラストラクチャでの必要性に応じて、ポートと IP アドレスを置き換えます。
<customer_id>
は、実際のお客様 ID に置き換えます。/path/to/ingestion-authentication-file.json
の値を、Google SecOps の取り込み認証ファイルを取得するで認証ファイルを保存したパスに更新します。
Bindplane エージェントを再起動して変更を適用する
Linux で Bindplane エージェントを再起動するには、次のコマンドを実行します。
sudo systemctl restart bindplane-agent
Windows で Bindplane エージェントを再起動するには、Services コンソールを使用するか、次のコマンドを入力します。
net stop BindPlaneAgent && net start BindPlaneAgent
Forcepoint Web Security Suite を構成する
- Forcepoint コンソールにログインします。
- [ウェブ] > [設定] > [全般] に移動します。
- [SIEM 統合] をクリックします。
- [このポリシー サーバーの SIEM 統合を有効にする] チェックボックスをオンにします。
- 次の構成情報を提供してください。
- IP アドレスまたはホスト名: Bindplane エージェントの IP アドレスを入力します。
- ポート番号: Bindplane エージェントで構成されたポート番号を入力します(例:
514
)。 - Transport protocol: UDP プロトコルを選択します。
- SIEM 形式: [Syslog/CEF(Arcsight)] を選択します。
- [OK] をクリックします。
- [保存してデプロイ] をクリックします。
UDM マッピング テーブル
ログフィールド | UDM マッピング | ロジック |
---|---|---|
アクション | security_result.summary | action_msg が空でない場合、security_result.summary にマッピングされます。それ以外の場合、action が空でない場合、action は security_result.summary にマッピングされます。それ以外の場合、act が空でない場合、act は security_result.summary にマッピングされます。 |
action_msg | security_result.summary | action_msg が空でない場合、security_result.summary にマッピングされます。それ以外の場合、action が空でない場合、action は security_result.summary にマッピングされます。それ以外の場合、act が空でない場合、act は security_result.summary にマッピングされます。 |
アプリ | target.application | destinationServiceName が空でない場合、app_name にマッピングされます。それ以外の場合、アプリが空ではなく、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 にマッピングされます。 |
猫 | security_result.category_details | cat が空でない場合、category にマッピングされます。最後に、category が security_result.category_details にマッピングされます。 |
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 にマッピングされます。 |
説明 | 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 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 にマッピングされます。 |
ホスト | principal.ip | host が空でない場合、src にマッピングされます。最後に、src は principal.ip にマッピングされます。 |
http_method | network.http.method | requestMethod が空でない場合、http_method にマッピングされます。それ以外の場合、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 が空の場合、level は 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 が空でないか - でないか、LDAP が含まれていない場合は、principal.user.userid にマッピングされます。 |
method | network.http.method | requestMethod が空でない場合、http_method にマッピングされます。それ以外の場合、method が空でない場合、method は http_method にマッピングされます。最後に、http_method は network.http.method にマッピングされます。 |
NatRuleId | security_result.detection_fields.value | NatRuleId が空でない場合、キー NatRuleId を使用して security_result.detection_fields.value にマッピングされます。 |
どうなるでしょうか | network.sent_bytes | out が空でない場合、bytes_out にマッピングされます。最後に、bytes_out は network.sent_bytes にマッピングされます。 |
pid | target.process.pid | pid が空でない場合、pid は target.process.pid にマッピングされます。 |
ポリシー | target_role.description | Policy が空でない場合、Policy はポリシーにマッピングされます。policy が空でないか - でない場合、target_role.description にマッピングされます。 |
ポリシー | 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 にマッピングされます。 |
ロール | target_role.name | level が空で、role が空の場合、level は 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 にマッピングされます。 |
重要度 | 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 が空でない場合、ユーザーにマッピングされます。suser が空でない場合、user にマッピングされます。最後に、user が空でないか - でないか、LDAP が含まれていない場合は、principal.user.userid にマッピングされます。 |
URL | target.url | url が空でない場合、target.url にマッピングされます。 |
ユーザー | principal.user.userid | loginID が空でない場合、ユーザーにマッピングされます。suser が空でない場合、user にマッピングされます。それ以外の場合、usrName が空でない場合、user にマッピングされます。最後に、user が空でないか - でないか、LDAP が含まれていない場合は、principal.user.userid にマッピングされます。 |
usrName | principal.user.userid | loginID が空でない場合、ユーザーにマッピングされます。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 が含まれている場合、user 文字列のユーザー名部分が抽出され、principal.user.user_display_name にマッピングされます。 |
|
security_result.action | action_msg、action、act が空でない場合、sec_action は値に基づいて ALLOW または BLOCK に設定されます。最後に、sec_action は security_result.action にマッピングされます。 |
|
security_result.category_details | cat が空でない場合、category にマッピングされます。最後に、category が security_result.category_details にマッピングされます。cs2 が空でないか 0 でない場合、接頭辞 Dynamic Category: 付きで security_result.category_details にマッピングされます。 |
|
security_result.detection_fields.key | ディスパッチまたは cn1 をマッピングするときに、値 Disposition Number が security_result.detection_fields.key にハードコードされます。NatRuleId をマッピングするときに、値 NatRuleId が security_result.detection_fields.key にハードコードされます。category_no のマッピング時に、値 Category Number が security_result.detection_fields.key にハードコードされています。 |
|
security_result.severity | severity が 1 の場合、または log_level に info が含まれている場合、または message に notice が含まれている場合、security_result.severity は INFORMATIONAL に設定されます。severity が 7 の場合、security_result.severity は HIGH に設定されます。 |
|
target_role.description | Policy が空でない場合、Policy はポリシーにマッピングされます。policy が空でないか - でない場合、target_role.description にマッピングされます。 |
|
target_role.name | level が空で、role が空の場合、level は role にマッピングされます。最後に、role は target_role.name にマッピングされます。 | |
category_no | security_result.detection_fields.value | category_no が空でない場合、キー Category Number を使用して security_result.detection_fields.value にマッピングされます。 |
変更点
2025-01-16
機能強化:
s-action
がTCP_DENIED
の場合にsecurity_result.action
をBLOCK
にマッピングしました。
2024-10-18
機能強化:
- 未解析の CSV ログの解析サポートを追加しました。
- 無効な CSV ログを破棄するサポートを追加しました。
host-url
をprincipal.url
にマッピングしました。
2024-07-10
機能強化:
- 新しい KV 形式のログの Grok パターンを追加しました。
username
をprincipal.user.userid
にマッピングしました。cs-uri
をtarget.url
にマッピングしました。cs-uri-query
、time-taken
、filter-category
、cs-uri-path
、cs-uri-extension
、rs_content_type
をadditional.fields
にマッピングしました。sc-filter-result
がOBSERVED
の場合はsecurity_result.action
をALLOW
に設定します。sc-filter-result
がDENIED
の場合はsecurity_result.action
をBLOCK
に設定します。それ以外の場合はsecurity_result.action
をALLOW
に設定します。cs-auth-group
をprincipal.user_group_identifiers
にマッピングしました。cs-method
をnetwork.http.method
にマッピングしました。sc-status
をresponse_code
にマッピングしました。s-action
をsecurity_result.detection_fields
にマッピングしました。srcport
をprincipal.port
にマッピングしました。dstport
をtarget.port
にマッピングしました。sc-bytes
をnetwork.received_bytes
にマッピングしました。cs-bytes
をnetwork.sent_bytes
にマッピングしました。cs
をsecurity_result.summary
にマッピングしました。cs_referer
をnetwork.http.referral_url
にマッピングしました。cs-host
をtarget.hostname
にマッピングしました。
2024-06-10
機能強化:
- CSV 形式のログのサポートを追加しました。
2023-06-12
機能強化:
- 一部の値が「-」として存在する失敗したログを解析するように Grok パターンを変更しました。
- マッピング前にフィールド「http_response」の条件チェックを追加しました。
2022-08-11
機能強化:
- syslog ヘッダーのない CEF タイプのログを解析するように grok を変更しました。
2022-05-16
機能強化:
- カテゴリ番号を security_result.detection_fields にマッピングしました。
2022-05-05
機能強化:
- フィールドのマッピングを追加しました。
requestClientApplication
を http.user_agent、proxyStatus-code
を http.response_code、disposition
とcn1
を security_result.detection_fields にマッピングしました。 - 「cs2Label」の値が「DynCat」の場合、「cs2」フィールドを「security_result.category_details」にマッピングしました。
- 「cs2Label」の値が「NatRuleId」の場合、「cs2」フィールドを「security_result.detection_fields」にマッピングしました。
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。