收集 Netwrix Privilege Secure for Discovery (舊稱 Remediant SecureONE) 記錄
本文說明如何使用 Bindplane 代理程式,將 Netwrix Privilege Secure for Discovery (舊稱 Remediant SecureONE) 記錄檔擷取至 Google Security Operations。
Netwrix Privilege Secure for Discovery 是一種無代理程式的特權存取管理 (PAM) 解決方案,可提供動態的即時 (JIT) 特權帳戶存取權。這項解決方案可持續監控特權帳戶,消除常設權限,有效防止橫向移動攻擊,並縮小組織的攻擊面。
事前準備
請確認您已完成下列事前準備事項:
- Google SecOps 執行個體
- Windows 2016 以上版本或 Linux 主機,並安裝
systemd - 如果透過 Proxy 執行,請確保防火牆通訊埠已根據 Bindplane 代理程式需求開啟
- Remediant SecureONE 設備的特殊權限存取權 (對執行 fluentd 的節點具備 SSH 存取權)
- Remediant SecureONE 2.8 以上版本 (或升級至 fluentd 1 版的
s1_fluentd服務)
取得 Bindplane 代理程式的 Google SecOps 憑證
如要向 Google SecOps 驗證 Bindplane 代理程式,請選擇下列其中一種方法:
- 新部署作業:使用 Chronicle API (選項 1)。
- 舊版部署作業:在 2027 年 7 月 20 日停用 Ingestion API 前,請繼續使用擷取驗證檔案 (選項 2)。
方法 1:為 Chronicle API 建立服務帳戶 (建議)
- 登入 Google Cloud 控制台,選取連結至 Google SecOps 執行個體的 Google Cloud 專案。
- 依序前往「IAM & Admin」(IAM 與管理) >「Service Accounts」(服務帳戶)。
- 按一下「建立服務帳戶」。
- 請提供下列設定詳細資料:
- 服務帳戶名稱:輸入帳戶名稱 (例如
bindplane-ingest)。 - 服務帳戶說明:輸入說明 (例如
Bindplane agent log ingestion)。
- 服務帳戶名稱:輸入帳戶名稱 (例如
- 點按「Create and continue」(建立並繼續)。
- 在「將專案存取權授予這個服務帳戶」部分,按一下「選取角色」,然後選取「Chronicle 編輯者」。
- 依序點選「繼續」和「完成」。
- 按一下您建立的服務帳戶,然後前往「金鑰」分頁標籤。
- 依序點選「新增金鑰」>「建立新的金鑰」。
- 選取「JSON」,然後點選「建立」。金鑰檔案會下載到電腦。
- 將金鑰檔案儲存為 Bindplane 收集器目錄中的
ingestion-auth.json(Linux 上的/opt/observiq-otel-collector/ingestion-auth.json或 Windows 上的C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json),或更新config.yaml中的creds_file_path,使其與儲存路徑相符。 - 依序前往「IAM 與管理」>「設定」,然後複製「專案編號」。匯出工具設定時會用到。
方法 2:下載擷取驗證檔案 (舊版)
- 登入 Google SecOps 控制台。
- 依序前往「SIEM 設定」>「收集代理程式」。
- 下載擷取驗證檔案。
- 將檔案安全地儲存在要安裝 Bindplane 代理程式的系統中。
取得 Google SecOps 客戶 ID
- 登入 Google SecOps 控制台。
- 依序前往「SIEM Settings」(SIEM 設定) >「Profile」(設定檔)。
- 複製並儲存「機構詳細資料」部分的客戶 ID。
安裝 Bindplane 代理程式
請按照下列操作說明,在 Windows 或 Linux 作業系統上安裝 Bindplane 代理程式。
Windows 安裝
- 以管理員身分開啟命令提示字元或 PowerShell。
執行下列指令:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Linux 安裝
- 開啟具有根層級或 sudo 權限的終端機。
執行下列指令:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
其他安裝資源
如需其他安裝選項,請參閱 Bindplane 代理程式安裝指南。
設定 Bindplane 代理程式,擷取系統記錄並傳送至 Google SecOps
找出設定檔
Linux:
sudo nano /opt/observiq-otel-collector/config.yaml
編輯設定檔
將
config.yaml的全部內容替換為下列設定:receivers: tcplog: # Replace the port and IP address as required listen_address: "0.0.0.0:514" exporters: chronicle/chronicle_w_labels: 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 # 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: chronicle.googleapis.com # Add optional ingestion labels for better organization log_type: 'REMEDIANT_SECUREONE' raw_log_field: body ingestion_labels: service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - tcplog exporters: - chronicle/chronicle_w_labels- 視基礎架構需求更換連接埠和 IP 位址。
- 將
<LOCATION>替換為 Google SecOps 執行個體的區域 (例如us、europe或asia-southeast1)。匯出工具會以這個值做為chronicle.googleapis.com的前置字元。 - 將
<PROJECT_NUMBER>替換為「IAM 與管理」>「設定」中的專案編號。 - 將
<customer_id>替換為實際的客戶 ID。 - 將
/path/to/ingestion-authentication-file.json更新為儲存服務帳戶金鑰檔案的路徑 (選項 1)。
舊版 Ingestion API 匯出工具
如果您使用選項 2 的擷取驗證檔案,請將
exporters區塊替換為下列內容。將creds_file_path設為擷取驗證檔案的路徑,如果您的執行個體位於美國境外,請將malachiteingestion-pa.googleapis.com替換為區域端點 (例如europe-malachiteingestion-pa.googleapis.com)。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: 'REMEDIANT_SECUREONE' raw_log_field: body ingestion_labels:
重新啟動 Bindplane 代理程式,套用變更
如要在 Linux 中重新啟動 Bindplane 代理程式,請執行下列指令:
sudo systemctl restart observiq-otel-collector如要在 Windows 中重新啟動 Bindplane 代理程式,可以使用「服務」控制台,也可以輸入下列指令:
net stop observiq-otel-collector && net start observiq-otel-collector
設定 Remediant SecureONE syslog 轉送
- 使用 SSH 連線至執行
fluentd服務的 Remediant SecureONE 節點。 備份現有的
fluentd設定檔:sudo cp /secureone/conf/fluentd/fluent.conf /secureone/conf/fluentd/fluent.conf.$(date +%Y.%m.%d)開啟
fluentd設定檔進行編輯:sudo vim /secureone/conf/fluentd/fluent.conf編輯
match docker.**部分,新增remote_syslog商店。將整個檔案內容替換為下列設定:#fluent.conf for fluentd version 1 <source> @type forward </source> <filter docker.**> @type parser time_key key3 format json key_name log reserve_data true </filter> <match docker.**> @type copy <store> @type remote_syslog host BINDPLANE_IP port 514 protocol tcp packet_size 4096 program secureone hostname SECUREONE_HOSTNAME <format> @type single_value message_key log </format> </store> <store> @type stdout_pp pp true time_color blue tag_color yellow record_colored true </store> </match> <match **> @type stdout_pp pp true time_color blue tag_color yellow record_colored true </match>替換下列值:
- BINDPLANE_IP:輸入 Bindplane 代理程式主機的 IP 位址 (例如
10.100.11.13)。 - 514:輸入與 Bindplane 代理程式
listen_address通訊埠相符的通訊埠編號。 - SECUREONE_HOSTNAME:輸入 SecureONE 節點的主機名稱 (例如
secureone-prod-01)。
- BINDPLANE_IP:輸入 Bindplane 代理程式主機的 IP 位址 (例如
儲存設定檔並結束編輯器。
重新啟動 fluentd 服務,套用新設定:
s1 restart fluentd確認 fluentd 版本和執行設定:
sudo docker exec -it $(sudo docker ps | grep fluentd | cut -d' ' -f1) fluent-gem list | grep fluentd驗證設定語法:
sudo docker exec -it $(sudo docker ps | grep fluentd | cut -d' ' -f1) fluentd -c /fluentd/etc/fluent.conf --dry-run監控 syslog 通訊埠的流量,確認記錄是否已轉送:
sudo tcpdump -vv -i any port 514
詳情請參閱 Netwrix Privilege Secure for Discovery 說明文件。
UDM 對應表
| 記錄欄位 | UDM 對應 | 邏輯 |
|---|---|---|
access_tokenId_label |
additional.fields |
已合併 |
access_tokenType_label |
additional.fields |
已合併 |
access_type_label |
additional.fields |
已合併 |
createdBy_label |
additional.fields |
已合併 |
details.failover_dc_label |
additional.fields |
已合併 |
details.initial_dc_label |
additional.fields |
已合併 |
details.sync_end_ts_label |
additional.fields |
已合併 |
duration_label |
additional.fields |
已合併 |
ldapName_label |
additional.fields |
已合併 |
manage_local_sids_label |
additional.fields |
已合併 |
persistent_label |
additional.fields |
已合併 |
req_query_limit_label |
additional.fields |
已合併 |
req_query_page_label |
additional.fields |
已合併 |
scan_label |
additional.fields |
已合併 |
secure_label |
additional.fields |
已合併 |
strict_secure_label |
additional.fields |
已合併 |
sync_start_ts_label |
additional.fields |
已合併 |
targetSystem_cn_label |
additional.fields |
已合併 |
targetSystem_distinguishedName_label |
additional.fields |
已合併 |
targetSystem_operatingSystem_label |
additional.fields |
已合併 |
user_distinguishedName_label |
additional.fields |
已合併 |
req_headers_host |
intermediary.asset.hostname |
直接對應 |
req_headers_host |
intermediary.hostname |
直接對應 |
json_message |
metadata.description |
直接對應 |
msg |
metadata.description |
直接對應 |
time |
metadata.event_timestamp |
剖析為 ISO8601 |
event_type |
metadata.event_type |
直接對應 |
name |
metadata.product_event_type |
直接對應 |
req_id |
metadata.product_log_id |
直接對應 |
req.method |
network.http.method |
直接對應 |
res.statusCode |
network.http.response_code |
已重新命名/對應 |
req_header_user_agent |
network.http.user_agent |
直接對應 |
targetSystem.domain_netbios |
principal.administrative_domain |
直接對應 |
user_domain_fqdn |
principal.administrative_domain |
直接對應 |
source_application |
principal.application |
直接對應 |
req_headers_host |
principal.hostname |
直接對應 |
targetSystem.cn |
principal.hostname |
直接對應 |
client_ip |
principal.ip |
已合併 |
remote_address |
principal.ip |
已合併 |
client_ua_os |
principal.platform |
對應:(?i)windows → WINDOWS、(?i)linux → LINUX、(?i)mac → MAC |
client_ua_platform |
principal.platform_version |
直接對應 |
client_ua_version |
principal.platform_version |
直接對應 |
req.remotePort |
principal.port |
已重新命名/對應 |
script_cmd |
principal.process.command_line |
直接對應 |
pid |
principal.process.pid |
直接對應 |
browser_label |
principal.resource.attribute.labels |
已合併 |
req_header_map_label |
principal.resource.attribute.labels |
已合併 |
system |
principal.resource.product_object_id |
直接對應 |
domain_netbios_label |
principal.user.attribute.labels |
已合併 |
objectSid_label |
principal.user.attribute.labels |
已合併 |
user_domain_label |
principal.user.attribute.labels |
已合併 |
user_domain_netbios_label |
principal.user.attribute.labels |
已合併 |
user_id_label |
principal.user.attribute.labels |
已合併 |
user_objectSid_label |
principal.user.attribute.labels |
已合併 |
authData.access.role |
principal.user.role_name |
直接對應 |
user_user |
principal.user.user_display_name |
直接對應 |
access.user.sAMAccountName |
principal.user.userid |
直接對應 |
user_cn |
principal.user.userid |
直接對應 |
user_sid |
principal.user.windows_sid |
直接對應 |
disabled_label |
security_result.detection_fields |
已合併 |
disabled_label1 |
security_result.detection_fields |
已合併 |
level_label |
security_result.detection_fields |
已合併 |
req_id_key_label |
security_result.detection_fields |
已合併 |
req_params_computerId_label |
security_result.detection_fields |
已合併 |
targetSystem_id_label |
security_result.detection_fields |
已合併 |
hostname |
src.hostname |
直接對應 |
ldapName |
target.administrative_domain |
直接對應 |
targetsystem |
target.asset.hostname |
直接對應 |
server |
target.hostname |
直接對應 |
targetsystem |
target.hostname |
直接對應 |
header_map_label |
target.resource.attribute.labels |
已合併 |
req.url |
target.url |
直接對應 |
user_user |
target.user.userid |
直接對應 |
| 不適用 | metadata.product_name |
常數:SecureONE |
| 不適用 | metadata.vendor_name |
常數:Remediant |
| 不適用 | principal.platform |
常數:WINDOWS |
targetSystem.cn |
event.idm.read_only_udm.target.hostname 和 event.idm.read_only_udm.target.asset.hostname |
從變更記錄對應 |
req.query.page |
event.idm.read_only_udm.additional.fields |
從變更記錄對應 |
user.distinguishedName |
event.idm.read_only_udm.additional.fields |
從變更記錄對應 |
targetSystem.operatingSystem |
event.idm.read_only_udm.additional.fields |
從變更記錄對應 |
req.query.limit |
event.idm.read_only_udm.additional.fields |
從變更記錄對應 |
req.params.computerId |
event.idm.read_only_udm.security_result.detection_fields |
從變更記錄對應 |
req.id |
event.idm.read_only_udm.security_result.detection_fields |
從變更記錄對應 |
targetSystem._id |
event.idm.read_only_udm.security_result.detection_fields |
從變更記錄對應 |
user.domain_netbios |
event.idm.read_only_udm.principal.user.attribute.labels |
從變更記錄對應 |
user.id |
event.idm.read_only_udm.principal.user.attribute.labels |
從變更記錄對應 |
user.objectSid |
event.idm.read_only_udm.principal.user.attribute.labels |
從變更記錄對應 |
persistent |
event.idm.read_only_udm.additional.fields |
從變更記錄對應 |
access.type |
event.idm.read_only_udm.additional.fields |
從變更記錄對應 |
access.tokenId |
event.idm.read_only_udm.additional.fields |
從變更記錄對應 |
access.tokenType |
event.idm.read_only_udm.additional.fields |
從變更記錄對應 |
targetSystem.cn |
event.idm.read_only_udm.additional.fields |
從變更記錄對應 |
targetSystem.distinguishedName |
event.idm.read_only_udm.additional.fields |
從變更記錄對應 |
targetSystem.policy.strict_secure |
event.idm.read_only_udm.additional.fields |
從變更記錄對應 |
targetSystem.policy.secure |
event.idm.read_only_udm.additional.fields |
從變更記錄對應 |
targetSystem.policy.scan |
event.idm.read_only_udm.additional.fields |
從變更記錄對應 |
targetSystem.policy.manage_local_sids |
event.idm.read_only_udm.additional.fields |
從變更記錄對應 |
user.domain |
event.idm.read_only_udm.principal.user.attribute.labels |
從變更記錄對應 |
access.user.domain_netbios |
event.idm.read_only_udm.principal.user.attribute.labels |
從變更記錄對應 |
access.user.objectSid |
event.idm.read_only_udm.principal.user.attribute.labels |
從變更記錄對應 |
user.sid |
event.idm.read_only_udm.principal.user.windows_sid |
從變更記錄對應 |
user.user |
event.idm.read_only_udm.principal.user.user_display_name |
從變更記錄對應 |
failover_dc","initial_dc","ldapName","sync_end_ts" ,and "sync_start_ts |
additional.fields |
從變更記錄對應 |
變更記錄
還有其他問題嗎?向社群成員和 Google SecOps 專家尋求解答。