收集 Cylance PROTECT 記錄
支援的國家/地區:
Google SecOps
SIEM
本文說明如何使用 Bindplane,將 Cylance PROTECT 記錄擷取至 Google Security Operations。Logstash 剖析器程式碼會將 Cylance PROTECT 系統記錄訊息轉換為統一資料模型 (UDM)。這個外掛程式會從系統記錄訊息中擷取欄位、將欄位正規化、對應至 UDM 欄位,並加入威脅嚴重程度和類別資訊,擴充資料內容。
事前準備
請確認您已完成下列事前準備事項:
- Google SecOps 執行個體
- Windows 2016 以上版本,或搭載
systemd
的 Linux 主機 - 如果透過 Proxy 執行,防火牆通訊埠已開啟
- Cylance PROTECT 的特殊存取權
取得 Google SecOps 擷取驗證檔案
- 登入 Google SecOps 控制台。
- 依序前往「SIEM 設定」>「收集代理程式」。
- 下載擷取驗證檔案。將檔案安全地儲存在要安裝 Bindplane 的系統上。
取得 Google SecOps 客戶 ID
- 登入 Google SecOps 控制台。
- 依序前往「SIEM 設定」>「設定檔」。
- 複製並儲存「機構詳細資料」專區中的客戶 ID。
安裝 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 代理程式,擷取系統記錄檔並傳送至 Google SecOps
- 存取設定檔:
- 找出
config.yaml
檔案。通常位於 Linux 的/etc/bindplane-agent/
目錄,或 Windows 的安裝目錄。 - 使用文字編輯器 (例如
nano
、vi
或記事本) 開啟檔案。
- 找出
按照下列方式編輯
config.yaml
檔案:receivers: udplog: # Replace the port and IP address as required listen_address: "0.0.0.0:514" 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 ingestion_labels: log_type: 'CYLANCE_PROTECT' raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog 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 代理程式,可以使用「服務」控制台,或輸入下列指令:
net stop BindPlaneAgent && net start BindPlaneAgent
在 Cylance Protect 中設定 Syslog
- 登入 Cylance 管理控制台。
- 依序前往「設定」>「應用程式」。
- 勾選「Syslog/SIEM」核取方塊。
- 選取所有事件。
- 提供下列設定詳細資料:
- SIEM:選取「Syslog」。
- 「通訊協定」:選取「UDP」。
- 勾選「允許超過 2 KB 的訊息」核取方塊。
- IP/網域:輸入 Bindplane 代理程式 IP 位址。
- 「Port」(通訊埠):輸入 Bindplane 代理程式通訊埠編號 (例如 UDP 的
514
)。 - 設施:選取應用程式記錄類型。
- 按一下「測試連線」。
- 按一下 [儲存]。
UDM 對應表
記錄欄位 | UDM 對應 | 邏輯 |
---|---|---|
代理程式版本 | metadata.product_version | 從 Agent Version: <value> 擷取的值 |
Cylance 分數 | security_result.severity_details | 從 Cylance Score: <value> 擷取的值 |
security_result.severity | 根據下列邏輯對應: - HIGH:如果 Cylance 分數 > 67 - MEDIUM:如果 Cylance 分數 > 33 - LOW:如果 Cylance 分數 <= 33 |
|
偵測者 | security_result.detection_fields.value | 從 Detected By: <value> 擷取的值 |
裝置 ID | principal.asset_id | 從 Device Id: <value> 擷取的值,並在前面加上 Cylance: |
裝置 ID | principal.asset_id | 從 Device Ids: <value> 擷取的值,並加上 Cylance: 前置字元,用於 Device Id 不存在的情況 |
裝置名稱 | principal.hostname | 從 Device Name: <value> 擷取的值 |
裝置名稱 | target.hostname | 從 Device Name: <value> 擷取的值,用於特定事件類型,例如 ScriptControl |
裝置名稱 | principal.hostname | 從 Device Names: <value> 擷取的值,用於 Device Name 不存在的情況 |
說明 | security_result.summary | 從 Description: <value> 擷取的值,用於特定事件類型,例如 OpticsCaeNetworkEvent |
目的地 IP | target.ip | 從 Destination IP: <value> 擷取的值 |
目的地通訊埠 | target.port | 從 Destination Port: <value> 擷取的值 |
活動 ID | metadata.product_log_id | 從 Event Id: <value> 擷取的值 |
事件名稱 | 用於判斷特定事件子類型,並套用對應的邏輯 | |
事件類型 | metadata.product_event_type | 從 Event Type: <value> 擷取的值 |
metadata.event_type | 根據 Event Type 和 Event Name 欄位對應,預設值為 GENERIC_EVENT |
|
檔案名稱 | principal.process.file.full_path | 從 File Name: <value> 擷取的值,並與 Path: <value> 結合形成完整路徑 |
檔案路徑 | target.file.full_path | 從 File Path: <value> 擷取的值 |
Instigating Process ImageFileSha256 | principal.process.file.sha256 | 從 Instigating Process ImageFileSha256: <value> 擷取的值 |
啟動程序名稱 | principal.process.file.full_path | 從 Instigating Process Name: <value> 擷取的值 |
啟動程序擁有者 | principal.user.userid | 從 Instigating Process Owner: <value> 擷取的值,如果存在,則在依 // 分割後擷取使用者名稱 |
啟動程序擁有者 | principal.administrative_domain | 從 Instigating Process Owner: <value> 擷取的網域名稱 (如有 // ,則會依此分隔) |
IP 位址 | principal.ip | 從 IP Address: (<value>) 擷取的 IP 位址 |
解譯器 | security_result.rule_labels.value | 從 Interpreter: <value> 擷取的值 |
解譯器版本 | security_result.rule_labels.value | 從 Interpreter Version: <value> 擷取的值 |
已登入的使用者 | about.user.userid | 從 Logged On Users: (<value>) 擷取的使用者名稱 |
MAC 位址 | principal.mac | 從 MAC Address: (<value>) 擷取 MAC 位址,並以冒號格式化 |
MD5 | principal.process.file.md5 | 從 MD5: <value> 擷取的值 |
訊息 | 用於擷取特定事件類型的資料,例如 AuditLog |
|
作業系統 | principal.platform | 如果 OS 欄位包含 Windows ,則會對應至 WINDOWS |
路徑 | principal.process.file.full_path | 從 Path: <value> 擷取的值,並與 File Name: <value> 結合形成完整路徑 |
政策名稱 | security_result.rule_name | 從 Policy Name: <value> 擷取的值 |
程序 ID | principal.process.pid | 從 Process ID: <value> 擷取的值 |
程序名稱 | principal.process.file.full_path | 從 Process Name: <value> 擷取的值 |
已解決的地址 | network.dns.answers.name | 從 Resolved Address: <value> 擷取的值 |
SHA256 | principal.process.file.sha256 | 從 SHA256: <value> 擷取的值 |
來源 IP | principal.ip | 從 Source IP: <value> 中擷取的值,用於特定事件類型 |
狀態 | security_result.action | 根據值對應至特定 UDM 動作: - Quarantined :QUARANTINE - Cleared :ALLOW_WITH_MODIFICATION |
目標網域名稱 | network.dns.questions.name | 從 Target Domain Name: <value> 擷取的值 |
目標程序 ImageFileSha256 | target.process.file.sha256 | 從 Target Process ImageFileSha256: <value> 擷取的值 |
目標程序名稱 | target.process.file.full_path | 從 Target Process Name: <value> 擷取的值 |
目標程序擁有者 | target.user.userid | 從 Target Process Owner: <value> 擷取的值,如果存在,則在依 // 分割後擷取使用者名稱 |
目標程序擁有者 | target.administrative_domain | 從 Target Process Owner: <value> 擷取的網域名稱 (如有 // ,則會依此分隔) |
目標登錄檔 KeyPath | target.registry.registry_key | 從 Target Registry KeyPath: <value> 擷取的值 |
威脅分類 | security_result.threat_name | 從 Threat Classification: <value> 擷取的值 |
使用者 | principal.user.userid | 如果存在,則從 User: <value> 擷取使用者名稱;如果不存在,則使用 User Name |
使用者 | principal.user.email_addresses | 從 User: <value> 中擷取的電子郵件地址 (如有),用於 User Name 不存在的情況 |
使用者名稱 | principal.user.userid | 從 User Name: <value> 擷取的值 |
違規類型 | security_result.summary | 從 Violation Type: <value> 擷取的值,並在前面加上 ExploitAttempt: |
違規類型 | security_result.threat_name | 從 Violation Type: <value> 擷取的值 |
區域名稱 | security_result.description | 從 Zone Names: (<value>) 擷取的值,並在前面加上 Zone_Names: |
metadata.vendor_name | 硬式編碼為 Cylance |
|
metadata.product_name | 從記錄訊息中擷取的值,可以是 PROTECT 或 OPTICS |
|
metadata.log_type | 硬式編碼為 CYLANCE_PROTECT |
|
network.ip_protocol | 針對 OpticsCaeNetworkEvent 個事件硬式編碼為 TCP |
|
network.application_protocol | 針對 OpticsCaeDnsEvent 個事件硬式編碼為 DNS |
|
security_result.rule_labels.key | 根據可用欄位設為 Interpreter 或 Interpreter Version |
|
security_result.detection_fields.key | 硬式編碼為 Detected By |
|
security_result.category | 根據事件類型對應,可能的值包括: - SOFTWARE_SUSPICIOUS - AUTH_VIOLOATION - POLICY_VIOLATION - NETWORK_SUSPICIOUS - EXPLOIT - SOFTWARE_MALICIOUS |
|
security_result.action | 根據事件類型和特定條件對應,可能的值包括: - ALLOW - BLOCK - QUARANTINE - ALLOW_WITH_MODIFICATION |
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。