ArcSight CEF ログを収集する
パーサーのバージョン: 34.0
このドキュメントでは、Bindplane エージェントを使用して ArcSight CEF ログを Google Security Operations に取り込む方法について説明します。
ArcSight(現在は OpenText の一部)は、Common Event Format(CEF)を使用して、複数のソースからのセキュリティ イベントを正規化します。ArcSight SmartConnector はイベントを収集し、CEF 形式で syslog 経由で SIEM プラットフォームなどのダウンストリーム コンシューマに転送します。
始める前に
次の前提条件を満たしていることを確認してください。
- Google SecOps インスタンス
- Windows Server 2016 以降、または
systemdを使用する Linux ホスト - Bindplane エージェントと ArcSight SmartConnector ホスト間のネットワーク接続
- プロキシの背後で実行している場合は、Bindplane エージェントの要件に従ってファイアウォール ポートが開いていることを確認します
- OpenText サポート ポータルにアクセスして SmartConnector をダウンロードする
- SmartConnector サーバーへの管理者権限
Bindplane エージェントの Google SecOps 認証情報を取得する
Bindplane エージェントを Google SecOps に対して認証するには、次のいずれかの方法を選択します。
- 新規デプロイ: Chronicle API を使用します(オプション 1)。
- 以前のデプロイ: 2027 年 7 月 20 日に Ingestion API が廃止されるまで、取り込み認証ファイル(オプション 2)を引き続き使用します。
オプション 1: Chronicle API のサービス アカウントを作成する(推奨)
- Google Cloud コンソールにログインし、Google SecOps インスタンスにリンクされている Google Cloud プロジェクトを選択します。
- [IAM と管理] > [サービス アカウント] に移動します。
- [サービス アカウントを作成] をクリックします。
- 次の構成情報を指定します。
- サービス アカウント名: アカウントの名前を入力します(例:
bindplane-ingest)。 - サービス アカウントの説明: 説明を入力します(例:
Bindplane agent log ingestion)。
- サービス アカウント名: アカウントの名前を入力します(例:
- [作成して続行] をクリックします。
- [このサービス アカウントにプロジェクトへのアクセスを許可する] セクションで、[ロールを選択] をクリックし、[Chronicle 編集者] を選択します。
- [続行] をクリックして [完了] をクリックします。
- 作成したサービス アカウントをクリックし、[キー] タブに移動します。
- [鍵を追加] > [新しい鍵を作成] の順にクリックします。
- [JSON] を選択し、[作成] をクリックします。鍵ファイルがパソコンにダウンロードされます。
- 鍵ファイルを Bindplane コレクタ ディレクトリ(Linux の場合は
/opt/observiq-otel-collector/ingestion-auth.json、Windows の場合はC:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json)にingestion-auth.jsonとして保存するか、config.yamlのcreds_file_pathを保存先のパスと一致するように更新します。 - [IAM と管理] > [設定] に移動し、[プロジェクト番号] をコピーします。エクスポーターの構成に必要になります。
オプション 2: 取り込み認証ファイルをダウンロードする(レガシー)
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [収集エージェント] に移動します。
- 取り込み認証ファイルをダウンロードします。
- 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 エージェントを構成する
構成ファイルを探します。
Linux:
sudo nano /opt/observiq-otel-collector/config.yamlWindows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
構成ファイルを編集します。
config.yamlの内容全体を次の構成に置き換えます。receivers: udplog: listen_address: "0.0.0.0:514" exporters: chronicle/arcsight_cef: protocol: https # Region of your instance, for example us, europe, asia-southeast1 location: <LOCATION> # Project number of the Google Cloud project linked to the instance project: '<PROJECT_NUMBER>' compression: gzip creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json' customer_id: '<customer_id>' endpoint: chronicle.googleapis.com log_type: ARCSIGHT_CEF raw_log_field: body service: pipelines: logs/arcsight_to_chronicle: receivers: - udplog exporters: - chronicle/arcsight_cef
構成パラメータ
各プレースホルダを次のように置き換えます。
レシーバーの構成:
listen_address: リッスンする IP アドレスとポート。0.0.0.0: すべてのインターフェースでリッスンします(推奨)。- ポート
514は標準の syslog ポートです(Linux では root が必要です。root 以外の場合は1514を使用します)。
エクスポータの構成:
creds_file_path: サービス アカウントの JSON キーファイルのフルパス(オプション 1):- Linux:
/opt/observiq-otel-collector/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
customer_id: Google SecOps コンソールからコピーしたお客様 IDlocation:<LOCATION>を Google SecOps インスタンスのリージョン(us、europe、asia-southeast1など)に置き換えます。エクスポートでは、この値がchronicle.googleapis.comの前に付加されます。完全なリストについては、リージョン エンドポイントをご覧ください。project:<PROJECT_NUMBER>を [IAM と管理] > [設定] のプロジェクト番号に置き換えます。endpoint:chronicle.googleapis.comに設定したままにします。
以前の Ingestion API エクスポータ
オプション 2 の取り込み認証ファイルを使用する場合は、
exportersブロックを次のように置き換えます。creds_file_pathを取り込み認証ファイルのパスに設定します。インスタンスが米国以外にある場合は、malachiteingestion-pa.googleapis.comをリージョン エンドポイント(例:europe-malachiteingestion-pa.googleapis.com)に置き換えます。exporters: chronicle/arcsight_cef: compression: gzip creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json' customer_id: '<customer_id>' endpoint: malachiteingestion-pa.googleapis.com log_type: ARCSIGHT_CEF raw_log_field: body
構成ファイルを保存する
- 編集が完了したら、ファイルを保存します。
- 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"
ArcSight SmartConnector をダウンロードする
- OpenText サポート ポータルにログインします。
- 最新の ArcSight SmartConnector for Linux を検索してダウンロードします。
- ファイル名の例:
ArcSight-Connector-Linux64-8.4.0.8499.0.bin
ArcSight SmartConnector をインストールする
.binファイルを SmartConnector サーバーにアップロードします。scp ArcSight-Connector-Linux64-8.4.0.8499.0.bin user@your-smartconnector-host:/tmpSSH を使用して SmartConnector サーバーにログインし、次のコマンドを実行します。
cd /tmp chmod +x ArcSight-Connector-Linux64-8.4.0.8499.0.bin ./ArcSight-Connector-Linux64-8.4.0.8499.0.binインタラクティブ インストーラの手順に沿って操作します。
- インストール ディレクトリを選択します(例:
/opt/arcsight/connectors/current)。 - ライセンスに同意します。
- プロンプトが表示されたら、[コネクタをインストール] を選択します。
- インストール ディレクトリを選択します(例:
CEF を syslog に送信するように ArcSight SmartConnector を構成する
SmartConnector ホストで、宛先ウィザードを起動します。
cd /opt/arcsight/connectors/current/bin ./arcsight connectorsウィザードで次の操作を行います。
- [Add Destination] を選択します。
- [CEF Syslog] を選択します。
次の構成情報を提供してください。
- ホスト/IP: Bindplane エージェントの IP アドレスを入力します。
- ポート: Bindplane エージェントのポート番号(例:
514)を入力します。 - プロトコル: [UDP] を選択します。
設定を完了してコネクタを再起動します。
./arcsight agents接続のチェックを実行します(
Successfully connected to syslog: X.X.X.X:514を探します)。tail -f /opt/arcsight/connectors/current/logs/agent.log
UDM マッピング テーブル
| ログフィールド | UDM マッピング | 論理 |
|---|---|---|
| act | security_result.action_details | act フィールドから直接マッピングされます。 |
| agt | principal.ip | agt フィールドから直接マッピングされます。 |
| agt | principal.asset.ip | agt フィールドから直接マッピングされます。 |
| アプリ | network.application_protocol | app フィールドから直接マッピングされます。 |
| アート | metadata.event_timestamp.seconds | art フィールドから直接マッピングされます。 |
| cs2 | additional.fields.value.string_value | cs2Label が EventlogCategory の場合、cs2 フィールドから直接マッピングされます。 |
| cs2Label | additional.fields.key | 値が EventlogCategory の場合、cs2Label フィールドから直接マッピングされます。 |
| cs3 | additional.fields.value.string_value | cs3Label が Process ID の場合、cs3 フィールドから直接マッピングされます。 |
| cs3Label | additional.fields.key | 値が Process ID の場合、cs3Label フィールドから直接マッピングされます。 |
| cs5 | additional.fields.value.string_value | cs5Label が Authentication Package Name の場合、cs5 フィールドから直接マッピングされます。 |
| cs5Label | additional.fields.key | 値が Authentication Package Name の場合、cs5Label フィールドから直接マッピングされます。 |
| cs6 | additional.fields.value.string_value | cs6Label が Logon GUID の場合、cs6 フィールドから直接マッピングされます。 |
| cs6Label | additional.fields.key | 値が Logon GUID の場合、cs6Label フィールドから直接マッピングされます。 |
| dhost | about.hostname | dhost フィールドから直接マッピングされます。 |
| dhost | target.hostname | dhost フィールドから直接マッピングされます。 |
| dntdom | about.administrative_domain | dntdom フィールドから直接マッピングされます。 |
| dntdom | target.administrative_domain | dntdom フィールドから直接マッピングされます。 |
| dproc | about.process.command_line | dproc フィールドから直接マッピングされます。 |
| dproc | target.process.command_line | dproc フィールドから直接マッピングされます。 |
| dst | principal.ip | dst フィールドから直接マッピングされます。 |
| dst | principal.asset.ip | dst フィールドから直接マッピングされます。 |
| dst | target.ip | dst フィールドから直接マッピングされます。 |
| duid | target.user.userid | duid フィールドから直接マッピングされます。 |
| duser | target.user.user_display_name | duser フィールドから直接マッピングされます。 |
| dvc | about.ip | dvc フィールドから直接マッピングされます。 |
| dvchost | about.hostname | dvchost フィールドから直接マッピングされます。 |
| eventId | additional.fields.value.string_value | eventId フィールドから直接マッピングされます。 |
| externalId | metadata.product_log_id | externalId フィールドから直接マッピングされます。 |
| fname | additional.fields.value.string_value | fname フィールドから直接マッピングされます。 |
| msg | metadata.description | msg フィールドから直接マッピングされます。 |
| proto | network.ip_protocol | proto フィールドから直接マッピングされます。プロトコル名をそれぞれの定数に変換します(例: tcp を TCP に変換)。 |
| rt | metadata.event_timestamp.seconds | rt フィールドから直接マッピングされます。 |
| shost | about.hostname | shost フィールドから直接マッピングされます。 |
| shost | principal.hostname | shost フィールドから直接マッピングされます。 |
| src | principal.ip | src フィールドから直接マッピングされます。 |
| src | principal.asset.ip | src フィールドから直接マッピングされます。 |
| src | target.ip | src フィールドから直接マッピングされます。 |
| sproc | principal.process.command_line | sproc フィールドから直接マッピングされます。 |
| spt | principal.port | spt フィールドから直接マッピングされます。 |
| spt | target.port | spt フィールドから直接マッピングされます。 |
| additional.EventRecordID | additional.fields.value.string_value | ad.EventRecordID フィールドから直接マッピングされます。 |
| additional.ThreadID | additional.fields.value.string_value | ad.ThreadID フィールドから直接マッピングされます。 |
| additional.Opcode | additional.fields.value.string_value | ad.Opcode フィールドから直接マッピングされます。 |
| additional.ProcessID | additional.fields.value.string_value | ad.ProcessID フィールドから直接マッピングされます。 |
| additional.TargetDomainName | additional.fields.value.string_value | ad.TargetDomainName フィールドから直接マッピングされます。 |
| additional.Version | additional.fields.value.string_value | ad.Version フィールドから直接マッピングされます。 |
| deviceExternalId | about.asset.hardware.serial_number | deviceExternalId フィールドから直接マッピングされます。 |
| deviceInboundInterface | additional.fields.value.string_value | deviceInboundInterface フィールドから直接マッピングされます。 |
| deviceOutboundInterface | additional.fields.value.string_value | deviceOutboundInterface フィールドから直接マッピングされます。 |
| PanOSConfigVersion | security_result.detection_fields.value | PanOSConfigVersion フィールドから直接マッピングされます。 |
| PanOSContentVersion | security_result.detection_fields.value | PanOSContentVersion フィールドから直接マッピングされます。 |
| PanOSDGHierarchyLevel1 | security_result.detection_fields.value | PanOSDGHierarchyLevel1 フィールドから直接マッピングされます。 |
| PanOSDestinationLocation | target.location.country_or_region | PanOSDestinationLocation フィールドから直接マッピングされます。 |
| PanOSRuleUUID | metadata.product_log_id | PanOSRuleUUID フィールドから直接マッピングされます。 |
| PanOSThreatCategory | security_result.category_details | PanOSThreatCategory フィールドから直接マッピングされます。 |
| PanOSThreatID | security_result.threat_id | PanOSThreatID フィールドから直接マッピングされます。 |
| about.asset.asset_id | Palo Alto Networks.、ベンダー名(LF)、deviceExternalId フィールドを連結して生成されます。 |
|
| extensions.auth.type | event_name フィールドに logged on が含まれている場合は、AUTHTYPE_UNSPECIFIED に設定します。 |
|
| metadata.description | description フィールドに by と IP アドレスが含まれている場合、IP アドレスが抽出され、principal.ip と principal.asset.ip にマッピングされます。 |
|
| metadata.event_type | event_name、principal_*、target_*、device_event_class_id などのさまざまなフィールドに対する一連の条件チェックに基づいて決定されます。このロジックは、利用可能な情報に基づいて最も適切なイベントタイプを判断します。 |
|
| metadata.log_type | ARCSIGHT_CEF に設定します。 |
|
| metadata.product_event_type | \[, the device_event_class_id field, \] - と name フィールドを連結して生成されます。 |
|
| metadata.product_name | product_name フィールドが LF の場合、NGFW に設定します。 |
|
| principal.asset.ip | description フィールドに by と IP アドレスが含まれている場合、IP アドレスが抽出され、principal.ip と principal.asset.ip にマッピングされます。 |
|
| principal.ip | description フィールドに by とそれに続く IP アドレスが含まれている場合、IP アドレスが抽出され、principal.ip と principal.asset.ip にマッピングされます。 |
|
| security_result.action | act フィールドが alert の場合は ALLOW に設定し、それ以外の場合は BLOCK に設定します。 |
|
| security_result.severity | sev フィールドが 7 以上の場合は HIGH に設定し、それ以外の場合は LOW に設定します。 |
|
PanOSFileType |
event.idm.read_only_udm.target.file.mime_type |
変更履歴からマッピング |
PanOSEmailSubject |
event.idm.read_only_udm.network.email.subject |
変更履歴からマッピング |
PanOSNSSAINetworkSliceType |
event.idm.read_only_udm.additional.fields |
変更履歴からマッピング |
PanOSURLCounter |
event.idm.read_only_udm.additional.fields |
変更履歴からマッピング |
PanOSReportID |
event.idm.read_only_udm.additional.fields |
変更履歴からマッピング |
PanOSDGHierarchyLevel2 |
event.idm.read_only_udm.additional.fields |
変更履歴からマッピング |
PanOSVirtualSystemName |
event.idm.read_only_udm.additional.fields |
変更履歴からマッピング |
PanOSSigFlags |
event.idm.read_only_udm.additional.fields |
変更履歴からマッピング |
PanOSPartialHash |
event.idm.read_only_udm.additional.fields |
変更履歴からマッピング |
version |
event.idm.read_only_udm.additional.fields |
変更履歴からマッピング |
cn3 |
network.duration.seconds |
変更履歴からマッピング |
PanOSTenantID |
additional.fields |
変更履歴からマッピング |
cn3 |
additional.fields |
変更履歴からマッピング |
PanOSCortexDataLakeTenantID |
additional.fields |
変更履歴からマッピング |
target_user |
target.user.userid |
変更履歴からマッピング |
principal_ip |
principal.ip |
変更履歴からマッピング |
PanOSStage", "PanOSConnectionError", and "PanOSEventDetails |
additional.fields |
変更履歴からマッピング |
outcome |
security_result.action_details |
変更履歴からマッピング |
PanOSDescription |
metadata.description |
変更履歴からマッピング |
PanOSSourceUser |
principal.user.userid |
変更履歴からマッピング |
app |
target.application |
変更履歴からマッピング |
flexString2", "PanOSFileHash", and "filePath |
additional.fields |
変更履歴からマッピング |
threat_name |
security_result.threat_name |
変更履歴からマッピング |
principal_ip1 |
principal.ip |
変更履歴からマッピング |
metadata.event_type |
NETWORK_CONNECTION |
変更履歴からマッピング |
deviceOutboundInterface", "deviceInboundInterface |
additional.fields |
変更履歴からマッピング |
query |
additional fields |
変更履歴からマッピング |
変更ログ
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。