收集 CyberArk PAM 記錄
支援的國家/地區:
Google SecOps
SIEM
這個剖析器程式碼會先使用規則運算式,從 CyberArk Privileged Access Manager (PAM) 系統記錄訊息中擷取欄位。接著,系統會將擷取的欄位對應至整合式資料模型 (UDM),根據特定條件豐富資料的額外情境資訊,並將事件類型標準化。
事前準備
- 確認您有 Google Security Operations 執行個體。
- 確認您使用的是 Windows 2016 以上版本,或是搭載 systemd 的 Linux 主機。
- 如果透過 Proxy 執行,請確認防火牆通訊埠已開啟。
取得 Google SecOps 擷取驗證檔案
- 登入 Google SecOps 控制台。
- 依序前往「SIEM 設定」>「收集代理程式」。
- 下載擷取驗證檔案。
取得 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 - 如需其他安裝選項,請參閱這份安裝指南。
設定 Bindplane 代理程式,擷取系統記錄檔並傳送至 Google SecOps
- 存取安裝 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_labels重新啟動 Bindplane 代理程式,以套用變更:
sudo systemctl restart bindplane
設定 CyberArk Vault 的系統記錄匯出功能
- 登入 Vault 伺服器。
- 開啟設定檔
dbparm.ini,該檔案位於C:\Program Files (x86)\CyberArk\Vault\Server\dbparm.ini。 新增或修改下列參數:
SyslogServer=<syslog_server_ip> SyslogPort=<syslog_server_port> SyslogProtocol=<TCP or UDP> SyslogFormat=Syslog儲存
dbparm.ini檔案。重新啟動 Vault 伺服器:
net stop CyberArkVault net start CyberArkVault
在 PVWA 中設定 Syslog 匯出功能
- 登入 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 匯出功能
- 使用 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」欄位對應。 |
| 名稱 | 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 對應,前提是 shost 不是 IP 位址。 |
| prin_hostname | principal.asset.hostname | 直接從「prin_hostname」欄位對應。如果為空白,則會從 shost 對應,前提是 shost 不是 IP 位址。 |
| prin_ip | principal.ip | 直接從「prin_ip」欄位對應。如果為空白,則會從 shost 對應,前提是 shost 為 IP 位址。 |
| prin_ip | principal.asset.ip | 直接從「prin_ip」欄位對應。如果為空白,則會從 shost 對應,前提是 shost 為 IP 位址。 |
| 產品 | metadata.product_name | 直接從「product」欄位對應。如果記錄中沒有這個值,預設值為「PAM」。 |
| 原因 | 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 專業人員尋求答案。