CyberArk のログを収集する
このドキュメントでは、Bindplane エージェントを使用して CyberArk ログを Google Security Operations に取り込む方法について説明します。
CyberArk Privileged Access Manager(PAM)は、オンプレミス環境とクラウド環境全体で特権アカウントと認証情報を保護、管理、モニタリングするエンタープライズ グレードの特権アクセス セキュリティ ソリューションです。認証情報のボールトへの保管、セッションの分離とモニタリング、Privileged Threat Analytics(PTA)による脅威検出、すべての特権アクティビティの包括的な監査ロギングを提供します。
始める前に
次の前提条件を満たしていることを確認してください。
- Google SecOps インスタンス
- Windows Server 2016 以降、または
systemdを使用する Linux ホスト - Bindplane エージェントと CyberArk Vault Server 間のネットワーク接続
- プロキシの背後で実行している場合は、Bindplane エージェントの要件に従ってファイアウォール ポートが開いていることを確認します。
- CyberArk Vault Server への管理者アクセス権(
Server\Confインストール フォルダへのアクセス権) - CyberArk Vault バージョン 10.0 以降
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 エージェントを構成する
構成ファイルを見つける
Linux:
sudo nano /etc/bindplane-agent/config.yamlWindows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
構成ファイルを編集します。
config.yamlの内容全体を次の構成に置き換えます。receivers: udplog: listen_address: "0.0.0.0:514" exporters: chronicle/cyberark: compression: gzip creds_file_path: '/etc/bindplane-agent/ingestion-auth.json' customer_id: 'your-customer-id' endpoint: malachiteingestion-pa.googleapis.com log_type: CYBERARK raw_log_field: body service: pipelines: logs/cyberark_to_chronicle: receivers: - udplog exporters: - chronicle/cyberark各プレースホルダを次のように置き換えます。
レシーバーの構成:
listen_address: リッスンする IP アドレスとポート:0.0.0.0:514: ポート 514 のすべてのインターフェースをリッスンします(Linux で root が必要)。0.0.0.0:1514: 非特権ポートでリッスンする(Linux の非 root ユーザーにおすすめ)
受信機のタイプ オプション:
- UDP syslog の
udplog(CyberArk Vault のデフォルト) - TCP Syslog の
tcplog - CyberArk Vault が
SyslogServerProtocol=TCPで構成されている場合はtcplogを使用する
- UDP syslog の
エクスポータの構成:
creds_file_path: Google SecOps の取り込み認証ファイルの完全パス:- 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: [ファイル>保存] をクリックします。
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"
CyberArk syslog 転送を構成する
CyberArk Vault は、syslog 経由で CEF(Common Event Format)の監査イベントを送信します。Vault Server は、XSL 変換ファイルを使用して XML 監査レコードを CEF メッセージに変換し、Bindplane エージェントに転送します。
syslog を送信するように Vault サーバーを構成する
- 管理者権限で CyberArk Vault Server ホストマシンにログインします。
- CyberArk Vault Server のインストール フォルダ(例: `C:\Program Files (x86)\PrivateArk\Server\Conf`)に移動します。
- テキスト エディタで
DBParm.iniファイルを開きます。 DBParm.sample.iniファイル(同じフォルダにあります)から[SYSLOG]セクションをコピーし、DBParm.iniの下部に貼り付けます。[SYSLOG]セクションで、次の syslog パラメータを構成します。[SYSLOG] SyslogServerIP=<BINDPLANE_AGENT_IP> SyslogServerPort=514 SyslogServerProtocol=UDP UseLegacySyslogFormat=No SyslogTranslatorFile=Syslog\Arcsight.sample.xsl SyslogMessageCodeFilter=0-999次の値を置き換えます。
- SyslogServerIP: Bindplane エージェント ホストの IP アドレスを入力します(例:
192.168.1.100)。 - SyslogServerPort: Bindplane エージェントの
listen_addressに一致するポートを入力します(例:514)。 SyslogServerProtocol: プロトコルを選択します。
- UDP Syslog の
UDP(デフォルト) - TCP Syslog の
TCP
- UDP Syslog の
SyslogTranslatorFile: CEF 形式の XSL トランスレータ ファイルを入力します。
- 標準 CEF 出力の場合は
Syslog\Arcsight.sample.xsl(推奨)
- 標準 CEF 出力の場合は
SyslogMessageCodeFilter: 転送するメッセージ コードを入力します。
0-999: すべてのイベントを転送- 個々のコードまたは範囲(
1,2,3,5-10,30など)を指定して、特定のイベントをフィルタリングします。
UseLegacySyslogFormat: RFC 5424 形式の場合は
Noに設定します。
- SyslogServerIP: Bindplane エージェント ホストの IP アドレスを入力します(例:
DBParm.iniファイルを保存します。PrivateArk Server サービスを再起動します。
- Windows サービス(
services.msc)を開きます。 - CyberArk Vault Disaster Recovery サービスを見つけて停止します(実行中の場合)。
- PrivateArk Server サービスを見つけます。
- 右クリックして [再起動] を選択します。
- CyberArk Vault Disaster Recovery サービスを再度開始します(該当する場合)。
- Windows サービス(
syslog を複数の宛先に転送する
Vault syslog イベントを Bindplane エージェントと他の宛先(PTA など)の両方に転送するには、複数の IP アドレスと変換ファイル(カンマで区切る)を指定します。
SyslogServerIP=<BINDPLANE_AGENT_IP>,<PTA_SERVER_IP> SyslogTranslatorFile=Syslog\Arcsight.sample.xsl,Syslog\PTA.xsl
Privileged Threat Analytics(PTA)の syslog 転送を構成する(省略可)
PTA セキュリティ アラートを Google SecOps に転送する場合は、PTA SIEM 統合を構成します。
- PVWA(Password Vault Web Access)コンソールにログインします。
- [Administration] > [Configuration Options] > [Privileged Threat Analytics] に移動します。
- [SIEM] セクションで、次の構成を行います。
- Syslog サーバー IP: Bindplane エージェント ホストの IP アドレスを入力します。
- Syslog サーバー ポート: Bindplane エージェントの構成と一致するポート(
514など)を入力します。 - プロトコル: Bindplane エージェント レシーバに合わせて、UDP または TCP を選択します。
- 形式: [CEF] を選択します。
- [保存] をクリックします。
使用可能な XSL 変換ファイル
CyberArk Server のインストール フォルダの
Syslogサブフォルダには、サンプル XSL トランスレータ ファイルが含まれています。翻訳者ファイル 形式 説明 Arcsight.sample.xslCEF 標準 CEF 形式(Google SecOps に推奨) SplunkCIM.xslCIM Splunk Common Information Model 形式 PTA.xslカスタム CyberArk PTA への転送形式 XSIAM.xslCEF Palo Alto Cortex XSIAM 形式
syslog 転送を確認する
- PrivateArk Server サービスを再起動したら、Vault でテスト アクション(パスワードの取得や PVWA へのログインなど)を実行します。
- Bindplane エージェントのログで、受信した syslog メッセージを確認します。
- Linux:
sudo journalctl -u observiq-otel-collector -f - Windows:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
- Linux:
CEF 形式のメッセージがログに表示されることを確認します。次に例を示します。
CEF:0|Cyber-Ark|Vault|10.0|22|CPM password retrieved|5|suser=Administrator src=10.0.0.1 fname=Root\operating system-server1-admin
UDM マッピング テーブル
| ログフィールド | UDM マッピング | ロジック |
|---|---|---|
| RequestId_label | additional.fields | Key-Value ペアとしてマッピング |
| Category_label | additional.fields | Key-Value ペアとしてマッピング |
| ExtraDetails_label | additional.fields | Key-Value ペアとしてマッピング |
| CAPolicy_label | additional.fields | Key-Value ペアとしてマッピング |
| line_number_label | additional.fields | Key-Value ペアとしてマッピング |
| pasvc_action_label | additional.fields | Key-Value ペアとしてマッピング |
| control_socket_label | additional.fields | Key-Value ペアとしてマッピング |
| data_socket_label | additional.fields | Key-Value ペアとしてマッピング |
| timeout_label | additional.fields | Key-Value ペアとしてマッピング |
| vault_name_label | additional.fields | Key-Value ペアとしてマッピング |
| class_name_label | additional.fields | Key-Value ペアとしてマッピング |
| status_label | additional.fields | Key-Value ペアとしてマッピング |
| Publisher_Event | additional.fields | Key-Value ペアとしてマッピング |
| Last_Event | additional.fields | Key-Value ペアとしてマッピング |
| Total_Events | additional.fields | Key-Value ペアとしてマッピング |
| cs1_var | additional.fields | Key-Value ペアとしてマッピング |
| cs3_var | additional.fields | Key-Value ペアとしてマッピング |
| app_var | additional.fields | Key-Value ペアとしてマッピング |
| reason_var | additional.fields | Key-Value ペアとしてマッピング |
| cs5_var | additional.fields | Key-Value ペアとしてマッピング |
| cs4_var | additional.fields | Key-Value ペアとしてマッピング |
| _auth_mechanism | extensions.auth.mechanism | 直接マージ |
| dvc | intermediary.ip | 値が IP アドレス パターンと一致する場合 |
| EventName | metadata.description | プロセスが exe パターンと一致しない場合 |
| act | metadata.description | fname が空の場合 |
| EventMessage | metadata.description | act が空の場合 |
| LastEventDate | metadata.event_timestamp | ISO8601 または yyyy-MM-ddTHH:mm:ss 形式を使用して変換されます |
| _temp_datetime | metadata.event_timestamp | dd/MM/yyyy HH:mm:ss 形式で変換 |
| datetime | metadata.event_timestamp | ISO8601 または MMM d HH:mm:ss 形式を使用して変換 |
| _event_type | metadata.event_type | 直接名前を変更しました |
| name | metadata.event_type | 条件に基づいて設定されます。「Store File」の場合は FILE_CREATION、「Logon」の場合は USER_LOGIN、has_principal と has_target の場合は NETWORK_CONNECTION、has_target_file_details の場合は FILE_UNCATEGORIZED、has_target_process_details の場合は PROCESS_UNCATEGORIZED、has_principal のみの場合は STATUS_UPDATE、app_error と has_principal と has_target の場合は NETWORK_UNCATEGORIZED、それ以外の場合は GENERIC_EVENT |
| EventType | metadata.product_event_type | 直接マッピングされます。 |
| signature_id、name | metadata.product_event_type | signature_id と name から連結 |
| LastEventID | metadata.product_log_id | 文字列に変換しました |
| tid | metadata.product_log_id | 直接マッピングされます。 |
| product | metadata.product_name | 直接名前を変更しました |
| version | metadata.product_version | 直接名前を変更しました |
| vendor | metadata.vendor_name | 直接名前を変更しました |
| ホスト | observer.hostname | 直接マッピングされます。 |
| LastEventUserName | principal.administrative_domain | grok パターン domain\user を使用して抽出されます |
| ApplicationType | principal.application | 直接マッピングされます。 |
| shost | principal.asset.hostname | 値が IP アドレス パターンと一致しない場合 |
| shost | principal.asset.hostname | dhost が空の場合のフォールバック |
| shost | principal.asset.ip | 値が IP アドレス パターンと一致する場合 |
| src | principal.asset.ip | 直接マッピングされます。 |
| ip_address | principal.asset.ip | 直接マッピングされます。 |
| shost | principal.asset.ip | dhost が空の場合のフォールバック |
| shost | principal.ip | 値が IP アドレス パターンと一致する場合、統合されます |
| src | principal.ip | 直接マージ |
| ip_address | principal.ip | 直接マージ |
| 場所 | principal.location.name | 直接マッピングされます。 |
| LastEventSourceName | principal.platform | 値が Windows パターンと一致する場合は WINDOWS に設定 |
| EventName | principal.process.command_line | プロセスが exe パターンと一致する場合 |
| LastEventPackageName | principal.resource.name | 値が EventName でない場合 |
| ApplicationType | principal.user.attribute.roles | 値が AdminTask の場合は ADMINISTRATOR に設定 |
| LastEventUserName | principal.user.user_display_name | grok パターン domain\user を使用して抽出されたユーザー部分 |
| user_name | principal.user.user_display_name | 直接マッピングされます。 |
| SourceUser | principal.user.userid | 直接マッピングされます。 |
| suser | principal.user.userid | イベントが USER_ タイプでない場合 |
| usrName | principal.user.userid | 直接マッピングされます。 |
| _action | security_result.action | 直接マージ |
| name | security_result.action | 値が「Failure」または「Failed」で始まる場合は BLOCK、それ以外の場合は ALLOW に設定します。 |
| msg | security_result.description | 直接マッピングされます。 |
| msg、reason | security_result.description | 失敗条件の場合、msg と reason から連結されます |
| _sec_result_description | security_result.description | 直接マッピングされます。 |
| PolicyName | security_result.rule_name | 直接マッピングされます。 |
| cs2 | security_result.rule_name | 直接マッピングされます。 |
| 重要度 | security_result.severity | 値が 5 以下の場合は LOW、8 以下の場合は MEDIUM、それ以外の場合は HIGH に設定します。 |
| sev | security_result.severity | 直接マッピングされます。 |
| sev | security_result.severity_details | 直接マッピングされます。 |
| 理由 | security_result.summary | 直接マッピングされます。 |
| name | security_result.summary | 直接マッピングされます。 |
| dhost | target.asset.hostname | 値が IP アドレス パターンと一致しない場合 |
| shost | target.asset.hostname | dhost が空の場合のフォールバック |
| dhost | target.asset.ip | 値が IP アドレス パターンと一致する場合 |
| GatewayStation | target.asset.ip | 直接マッピングされます。 |
| shost | target.asset.ip | dhost が空の場合のフォールバック |
| FileQualifier | target.asset_id | 「ASSET ID:」の接頭辞が付き、文字列に変換されます |
| ファイル | target.file.full_path | 直接マッピングされます。 |
| file_path | target.file.full_path | 直接マッピングされます。 |
| LastEventSourceName | target.file.full_path | 値が「C:」で始まる場合 |
| fname | target.file.full_path | 直接マッピングされます。 |
| ハッシュ | target.file.sha1 | SHA1 型の場合、「SHA1##」接頭辞が削除され、値が小文字に変換されます |
| GatewayStation | target.ip | 直接マージ |
| pid | target.process.pid | 文字列に変換しました |
| 安全 | target.resource.name | 直接マッピングされます。 |
| user_name | target.user.user_display_name | 直接マッピングされます。 |
| TargetUser | target.user.userid | 直接マッピングされます。 |
| duser | target.user.userid | 直接マッピングされます。 |
| suser | target.user.userid | イベントが USER_ タイプの場合 |
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。