CyberArk PAM ログを収集する
以下でサポートされています。
Google SecOps
SIEM
このパーサーコードは、まず正規表現を使用して CyberArk Privileged Access Manager(PAM)の syslog メッセージからフィールドを抽出します。次に、抽出されたフィールドを統合データモデル(UDM)にマッピングし、追加のコンテキストでデータを拡充して、特定の条件に基づいてイベントタイプを標準化します。
始める前に
- Google Security Operations インスタンスがあることを確認します。
- Windows 2016 以降、または systemd を使用する Linux ホストを使用していることを確認します。
- プロキシの背後で実行している場合は、ファイアウォール ポートが開いていることを確認します。
Google SecOps の取り込み認証ファイルを取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [収集エージェント] に移動します。
- Ingestion Authentication File をダウンロードします。
Google SecOps のお客様 ID を取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [プロファイル] に移動します。
- [組織の詳細情報] セクションから [お客様 ID] をコピーして保存します。
Bindplane エージェントをインストールする
- Windows へのインストールの場合は、次のスクリプトを実行します。
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet - Linux へのインストールの場合は、次のスクリプトを実行します。
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh - その他のインストール オプションについては、インストール ガイドをご覧ください。
Syslog を取り込んで Google SecOps に送信するように Bindplane Agent を構成する
- Bindplane エージェントがインストールされているマシンにアクセスします。
config.yamlファイルを次のように編集します。receivers: tcplog: # Replace the below port <54525> and IP <0.0.0.0> with your specific values listen_address: "0.0.0.0:54525" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the creds location below according the placement of the credentials file you downloaded creds: '{ json file for creds }' # Replace <customer_id> below with your actual ID that you copied customer_id: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # You can apply ingestion labels below as preferred ingestion_labels: log_type: SYSLOG namespace: Cyberark_PAM raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - tcplog exporters: - chronicle/chronicle_w_labelsBindplane エージェントを再起動して変更を適用します。
sudo systemctl restart bindplane
CyberArk Vault の Syslog エクスポートを構成する
- Vault サーバーにログインします。
C:\Program Files (x86)\CyberArk\Vault\Server\dbparm.iniにある構成ファイルdbparm.iniを開きます。次のパラメータを追加または変更します。
SyslogServer=<syslog_server_ip> SyslogPort=<syslog_server_port> SyslogProtocol=<TCP or UDP> SyslogFormat=Syslogdbparm.iniファイルを保存します。Vault Server を再起動します。
net stop CyberArkVault net start CyberArkVault
PVWA で Syslog Export を構成する
- PVWA サーバーにログインします。
C:\inetpub\wwwroot\PasswordVault\にあるWeb.configファイルを開きます。次のキーを追加または変更します。
<add key="SyslogServer" value="<syslog_server_ip>" /> <add key="SyslogPort" value="<syslog_server_port>" /> <add key="SyslogProtocol" value="<TCP or UDP>" /> <add key="SyslogFormat" value="Syslog" />Web.configファイルへの変更を保存します。IIS サービスを再起動します。
iisreset
PTA で Syslog Export を構成する
- SSH を使用して PTA サーバーにアクセスします。
/opt/cta/config/application.propertiesにあるapplication.propertiesファイルを開きます。次の行を追加または変更します。
syslog.server.ip=<syslog_server_ip> syslog.server.port=<syslog_server_port> syslog.protocol=<TCP or UDP>application.propertiesファイルを保存します。PTA サービスを再起動して変更を適用します。
sudo service pta restart
UDM マッピング テーブル
| ログフィールド | UDM マッピング | 論理 |
|---|---|---|
| act | metadata.description | act フィールドから直接マッピングされます。 |
| cn1 | additional.fields.value.string_value | cn1Label が空でない場合、cn1 フィールドから直接マッピングされます。 |
| cn1Label | additional.fields.key | cn1 が空でない場合、cn1Label フィールドから直接マッピングされます。 |
| cn2 | additional.fields.value.string_value | cn2Label が空でない場合、cn2 フィールドから直接マッピングされます。 |
| cn2Label | additional.fields.key | cn2 が空でない場合、cn2Label フィールドから直接マッピングされます。 |
| cs1 | additional.fields.value.string_value | cs1Label が空でない場合、cs1 フィールドから直接マッピングされます。 |
| cs1Label | additional.fields.key | cs1 が空でない場合、cs1Label フィールドから直接マッピングされます。 |
| cs2 | additional.fields.value.string_value | cs2Label が空でない場合、cs2 フィールドから直接マッピングされます。 |
| cs2Label | additional.fields.key | cs2 が空でない場合、cs2Label フィールドから直接マッピングされます。 |
| cs3 | additional.fields.value.string_value | cs3Label が空でない場合、cs3 フィールドから直接マッピングされます。 |
| cs3Label | additional.fields.key | cs3 が空でない場合、cs3Label フィールドから直接マッピングされます。 |
| cs4 | additional.fields.value.string_value | cs4Label が空でない場合、cs4 フィールドから直接マッピングされます。 |
| cs4Label | additional.fields.key | cs4 が空でない場合、cs4Label フィールドから直接マッピングされます。 |
| cs5 | additional.fields.value.string_value | cs5Label が空でない場合、cs5 フィールドから直接マッピングされます。 |
| cs5Label | additional.fields.key | cs5 が空でない場合、cs5Label フィールドから直接マッピングされます。 |
| dhost | target.hostname | IP アドレスでない場合は、dhost フィールドからマッピングされます。dhost が空の場合、shost(IP またはホスト名)からマッピングされます。 |
| dhost | target.asset.hostname | IP アドレスでない場合は、dhost フィールドからマッピングされます。dhost が空の場合、shost(IP またはホスト名)からマッピングされます。 |
| dhost | target.ip | IP アドレスの場合は、dhost フィールドからマッピングされます。 |
| dhost | target.asset.ip | IP アドレスの場合は、dhost フィールドからマッピングされます。 |
| duser | target.user.userid | duser フィールドから直接マッピングされます。 |
| dvc | intermediary.ip | IP アドレスの場合は、dvc フィールドからマッピングされます。 |
| externalId | metadata.product_log_id | externalId フィールドから直接マッピングされます。 |
| fname | target.file.full_path | fname フィールドから直接マッピングされます。 |
| name | metadata.event_type | name、shost、dhost フィールドの組み合わせに基づいて event_type を決定するために使用されます。有効な値: USER_CHANGE_PASSWORD、FILE_READ、USER_LOGIN、FILE_OPEN、FILE_DELETION。一致するものが見つからず、has_principal が true で has_target が false の場合、event_type は STATUS_UPDATE に設定されます。それ以外の場合は、デフォルトで GENERIC_EVENT になります。 |
| prin_hostname | principal.hostname | prin_hostname フィールドから直接マッピングされます。空の場合、shost が IP アドレスでない場合は shost からマッピングされます。 |
| prin_hostname | principal.asset.hostname | prin_hostname フィールドから直接マッピングされます。空の場合、shost が IP アドレスでない場合は shost からマッピングされます。 |
| prin_ip | principal.ip | prin_ip フィールドから直接マッピングされます。空の場合、shost が IP アドレスであれば、shost からマッピングされます。 |
| prin_ip | principal.asset.ip | prin_ip フィールドから直接マッピングされます。空の場合、shost が IP アドレスであれば、shost からマッピングされます。 |
| 商品 | metadata.product_name | product フィールドから直接マッピングされます。ログに存在しない場合は、デフォルトで「PAM」になります。 |
| reason | security_result.description | reason フィールドから直接マッピングされます。 |
| 重要度 | security_result.severity | 次のロジックに基づいて severity フィールドからマッピングされます。1~3: INFORMATIONAL、4: ERROR、5: CRITICAL。 |
| shost | principal.hostname | prin_hostname が空で、shost が IP アドレスでない場合、prin_hostname にマッピングされます。 |
| shost | principal.asset.hostname | prin_hostname が空で、shost が IP アドレスでない場合、prin_hostname にマッピングされます。 |
| shost | principal.ip | prin_ip が空で、shost が IP アドレスの場合、prin_ip にマッピングされます。 |
| shost | principal.asset.ip | prin_ip が空で、shost が IP アドレスの場合、prin_ip にマッピングされます。 |
| shost | target.hostname | dhost が空で、shost が IP アドレスでない場合、target.hostname にマッピングされます。 |
| shost | target.asset.hostname | dhost が空で、shost が IP アドレスでない場合、target.hostname にマッピングされます。 |
| shost | target.ip | dhost が空で、shost が IP アドレスの場合、target.ip にマッピングされます。 |
| shost | target.asset.ip | dhost が空で、shost が IP アドレスの場合、target.ip にマッピングされます。 |
| ステータス | additional.fields.value.string_value | status フィールドから直接マッピングされます。 |
| suser | principal.user.userid | suser フィールドからマッピングされます。duser が空の場合、ターゲット ユーザー ID と見なされます。 |
| 時間 | metadata.event_timestamp.seconds | タイムスタンプ形式に変換した後、time フィールドから直接マッピングされます。 |
| 時間 | metadata.event_timestamp.nanos | タイムスタンプ形式に変換した後、time フィールドから直接マッピングされます。 |
| vendor | metadata.vendor_name | vendor フィールドから直接マッピングされます。ログに存在しない場合は、デフォルトで「CYBERARK」になります。 |
| version | metadata.product_version | version フィールドから直接マッピングされます。 |
| metadata.log_type | 「CYBERARK_PAM」にハードコードされています。 | |
| extensions.auth.mechanism | event_type が「USER_LOGIN」の場合、「USERNAME_PASSWORD」に設定します。 |
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。