CyberArk Privilege Cloud のログを収集する
このドキュメントでは、Bindplane を使用して CyberArk Privilege Cloud ログを Google Security Operations に取り込む方法について説明します。パーサーコードは、ログを未加工の SYSLOG + KV 形式から Google SecOps 統合データモデル(UDM)形式に変換します。まず、grok パターンと Key-Value 解析を使用して CEF 形式のメッセージからフィールドを抽出し、それらのフィールドなどを対応する UDM フィールドにマッピングします。ベンダー、プロダクト、重大度の標準化された値でデータを拡充します。
始める前に
次の前提条件を満たしていることを確認してください。
- Google SecOps インスタンス
- Windows 2016 以降、または
systemd
を使用する Linux ホスト - プロキシの背後で実行されている場合、ファイアウォール ポートが開いている
- CyberArk Privilege Cloud への特権アクセス
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
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: tcplog: # Replace the port and IP address as required listen_address: "0.0.0.0:6514" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the path to the credentials file you downloaded in Step 1 creds_file_path: '/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 log_type: 'CYBERARK_PRIVILEGE_CLOUD' raw_log_field: body ingestion_labels: service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - tcplog 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
Secure Tunnel をインストールする
- マシンが複数のドメインにデプロイされている場合でも、マシン ID が一意であることを確認します。
- Privilege Cloud Connector(Standard)をデプロイするから Privilege Cloud ソフトウェア パッケージをダウンロードし、Secure Tunnel ZIP ファイルをコピーして解凍します。
- 解凍したフォルダからインストールを実行します。
- [Select Installation Folder] ページで、インストール フォルダの場所を入力し、[Next] をクリックします。
- [Ready to Install] ページで、[Install] をクリックします。
- インストールが完了したら、[完了] をクリックします。構成ツールが起動します。
Secure Tunnel を構成する
- [Authenticate to Privilege Cloud] ページで、次の詳細を入力して [Next] をクリックします。
- サブドメインまたは顧客 ID: サブドメインは、Privilege Cloud Portal FQDN(
https://<subdomain>.Privilegecloud.cyberark.com
)に表示されるシステム アドレスのシステム ID です。URL 全体ではなく、<subdomain>
識別子のみを入力します。または、CyberArk から提供された顧客 ID を使用します。 - ユーザー名とパスワード: CyberArk サポートから提供された認証情報を入力します。
- サブドメインまたは顧客 ID: サブドメインは、Privilege Cloud Portal FQDN(
- [オンプレミス コンポーネントの構成] ページで、セキュア トンネルを介して接続するコンポーネントを追加し、[コンポーネントを構成] をクリックします。
- 次の構成の詳細を指定します。
- コンポーネント タイプ: [SIEM] を選択します。
- ホストアドレス: Bindplane エージェントのホストアドレスを入力します(SIEM コンポーネントにはホスト名を含める必要があります)。
- 宛先ポート: Bindplane エージェントのポート番号を入力します。
- リモートポート: CyberArk が Secure Tunnel とのインターフェースに使用するポート(リモートポートは CyberArk サポートから提供されます。通常、ポートは
1468
です)。 - この列を表示するには、[詳細設定] をクリックします。
- セキュア トンネル経由のアクセス: サーバーがアクセスするセキュア トンネルを構成できます。これらのセキュア トンネルが別のマシンで実行されている場合でも構成できます。
- [Configure Components] > [Close] をクリックします。
UDM マッピング テーブル
ログフィールド | UDM マッピング | 論理 |
---|---|---|
act | security_result.action_details | 未加工ログの act フィールドから直接マッピングされます。 |
アプリ | network.application_protocol | 未加工ログの app フィールドからマッピングされ、parse_app_protocol.include のロジックを使用して変換されます。 |
cn1 | additional.fields.value.string_value | 未加工ログの cn1 フィールドから直接マッピングされます。 |
cn1Label | additional.fields.key | 未加工ログの cn1Label フィールドから直接マッピングされます。 |
cn2 | additional.fields.value.string_value | 未加工ログの cn2 フィールドから直接マッピングされます。 |
cn2Label | additional.fields.key | 未加工ログの cn2Label フィールドから直接マッピングされます。 |
cs1 | additional.fields.value.string_value | 未加工ログの cs1 フィールドから直接マッピングされます。 |
cs1Label | additional.fields.key | 未加工ログの cs1Label フィールドから直接マッピングされます。 |
cs2 | additional.fields.value.string_value | 未加工ログの cs2 フィールドから直接マッピングされます。 |
cs2Label | additional.fields.key | 未加工ログの cs2Label フィールドから直接マッピングされます。 |
cs3 | additional.fields.value.string_value | 未加工ログの cs3 フィールドから直接マッピングされます。 |
cs3Label | additional.fields.key | 未加工ログの cs3Label フィールドから直接マッピングされます。 |
cs4 | additional.fields.value.string_value | 未加工ログの cs4 フィールドから直接マッピングされます。 |
cs4Label | additional.fields.key | 未加工ログの cs4Label フィールドから直接マッピングされます。 |
cs5 | additional.fields.value.string_value | 未加工ログの cs5 フィールドから直接マッピングされます。 |
cs5Label | additional.fields.key | 未加工ログの cs5Label フィールドから直接マッピングされます。 |
device_event_class_id | metadata.product_event_type | 未加工ログの device_event_class_id フィールドから直接マッピングされます。 |
device_version | metadata.product_version | 未加工ログの device_version フィールドから直接マッピングされます。 |
dhost | target.hostname | 未加工ログの dhost フィールドから直接マッピングされます。 |
duser | target.user.user_display_name | 未加工ログの duser フィールドから直接マッピングされます。 |
dvc | about.ip | 未加工ログの dvc フィールドから直接マッピングされます。 |
event_name | metadata.product_event_type | 未加工ログの event_name フィールドから直接マッピングされます。 |
externalId | metadata.product_log_id | 未加工ログの externalId フィールドから直接マッピングされます。 |
fname | additional.fields.value.string_value | 未加工ログの fname フィールドから直接マッピングされます。 |
msg | metadata.description | 未加工ログの msg フィールドから直接マッピングされます。 |
reason | security_result.summary | 未加工ログの reason フィールドから直接マッピングされます。 |
重要度 | security_result.severity | 未加工ログの severity フィールドからマッピングされ、その値に基づいて「LOW」、「MEDIUM」、「HIGH」、「CRITICAL」に変換されます。 |
shost | principal.ip | 未加工ログの shost フィールドから直接マッピングされます。 |
suser | principal.user.user_display_name | 未加工ログの suser フィールドから直接マッピングされます。 |
時間 | metadata.event_timestamp.seconds | 解析されてタイムスタンプに変換された後、未加工ログの time フィールドから直接マッピングされます。 |
metadata.event_type | suser が存在し、duser が存在しない場合は、「USER_UNCATEGORIZED」に設定されます。それ以外の場合は、「GENERIC_EVENT」に設定されます。 |
|
metadata.log_type | 「CYBERARK_PRIVILEGE_CLOUD」に設定されます。 | |
metadata.product_name | 「CYBERARK_PRIVILEGE_CLOUD」に設定されます。 | |
principal.asset.hostname | shost フィールドまたは dvc フィールドにホスト名が含まれている場合は、その値が使用されます。 |
|
principal.asset.ip | shost フィールドまたは dvc フィールドに IP アドレスが含まれている場合は、その値が使用されます。 |
|
principal.hostname | shost フィールドまたは dvc フィールドにホスト名が含まれている場合は、その値が使用されます。 |
|
target.asset.hostname | ホスト名が含まれている場合は、dhost フィールドから取得された値。 |
|
additional.fields.key | 追加フィールドのキーは、対応するラベル フィールドによって決まります(例: cn1 の場合、cn1Label )。 |
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。