收集 Thinkst Canary 記錄
本文說明如何使用第三方 API 設定 Google Security Operations 資訊提供,藉此收集 Thinkst Canary 記錄。
Thinkst Canary 提供以欺騙為基礎的威脅偵測功能:硬體、虛擬和雲端 Canary 會模擬真實資產,而 Canarytoken 則會在檔案、憑證和網址中充當觸發線。當攻擊者觸碰 Canary 或觸發權杖時,Canary 控制台就會記錄事件。動態消息會從 Console API 擷取這些事件。
事前準備
請確認您已完成下列事前準備事項:
- Google SecOps 執行個體
- Thinkst Canary 控制台的特殊存取權
在 Thinkst Canary 中設定 REST API
- 登入 Thinkst Canary Console (
https://<DOMAIN_HASH>.canary.tools)。 - 按一下右上角的齒輪圖示,然後選取「全域設定」。
- 在選單中,按一下「API」。
- 如果 API 已停用,請按一下「啟用 API」。
使用現有的「預設 API 金鑰」,或按一下「+ 新增 API 金鑰」建立專屬金鑰:
- API 金鑰類型:選取「唯讀」。這足以收集記錄。
- 注意:輸入金鑰名稱 (例如
Google SecOps Integration)。
複製下列項目並妥善儲存:
- 網域雜湊:控制台的 ID。您的 API 主機名稱為
<DOMAIN_HASH>.canary.tools。 - 驗證憑證:用於驗證要求的 API 金鑰。
- 網域雜湊:控制台的 ID。您的 API 主機名稱為
在 Google SecOps 中設定動態饋給,擷取 Thinkst Canary 記錄
- 依序前往「SIEM 設定」>「動態饋給」。
- 按一下「新增動態消息」。
- 在下一個頁面中,按一下「設定單一動態饋給」。
- 在「動態饋給名稱」欄位中輸入動態饋給名稱 (例如
Thinkst Canary Logs)。 - 選取「第三方 API」做為「來源類型」。
- 選取「Thinkst Canary」做為「記錄類型」。
- 點選「下一步」。
指定下列輸入參數的值:
- 驗證 HTTP 標頭:先前產生的權杖,格式為
auth_token:<TOKEN>(例如auth_token:AAAABBBBCCCC111122223333)。 - API 主機名稱:Thinkst Canary REST API 端點的完整網域名稱,格式為
<DOMAIN_HASH>.canary.tools(例如myinstance.canary.tools)。 - 資產命名空間:資產命名空間
- 擷取標籤:要套用至這個動態饋給事件的標籤
- 驗證 HTTP 標頭:先前產生的權杖,格式為
點選「下一步」。
在「Finalize」(完成) 畫面中檢查新的動態饋給設定,然後按一下「Submit」(提交)。
設定完成後,動態消息會開始依時間順序從 Thinkst Canary 執行個體擷取記錄。
事件更新和重新遞送
每當事件更新時,Canary 控制台 API 就會再次傳回事件,而不只是在事件建立時傳回。Canary 會將來自相同來源的後續類似事件,併入現有事件。舉例來說,每次嘗試發動暴力攻擊都會成為單一事件中的事件。其他事件修改也可能觸發重新傳送。
Google SecOps 中會出現下列行為:
- 更新後,已交付的事件會重新顯示在動態消息中。
- 重新傳送的事件可能會顯示事件時間戳記,該時間戳記比重新傳送的時間早很多。這是因為剖析器會從事件的原始建立時間和組合事件的發生時間衍生事件時間戳記,而不是從更新時間衍生。
重新傳送是事件收集 API 的記錄行為 (會根據事件的更新計數器進行篩選),並非資料遺失或剖析器缺陷。
UDM 對應表
| 記錄欄位 | UDM 對應 | 邏輯 |
|---|---|---|
_canary_uptime_label |
additional.fields |
已合併 |
desc_events_n_func_code_label |
additional.fields |
已合併 |
desc_events_n_func_name_label |
additional.fields |
已合併 |
desc_events_n_sfunc_code_label |
additional.fields |
已合併 |
desc_events_n_sfunc_name_label |
additional.fields |
已合併 |
desc_events_n_timestamp_std_label |
additional.fields |
已合併 |
desc_events_n_unit_id_label |
additional.fields |
已合併 |
description_created_std_label |
additional.fields |
已合併 |
description_events_list_label |
additional.fields |
已合併 |
event_data_list |
additional.fields |
已合併 |
event_descrip_label |
additional.fields |
已合併 |
events_url_label |
additional.fields |
已合併 |
local_time_label |
additional.fields |
已合併 |
locale_label |
additional.fields |
已合併 |
lt_label |
additional.fields |
已合併 |
offline_text_label |
additional.fields |
已合併 |
updated_label |
additional.fields |
已合併 |
updated_std_label |
additional.fields |
已合併 |
_auth |
extensions.auth |
已重新命名/對應 |
_metadata |
metadata |
已重新命名/對應 |
_event_time |
metadata.event_timestamp |
已剖析為 UNIX |
_metadata_event_timestamp |
metadata.event_timestamp |
已剖析為 UNIX |
description.created_std |
metadata.event_timestamp |
已剖析為 UNIX_MS |
elem.timestamp_std |
metadata.event_timestamp |
已剖析為 yyyy-MM-dd HH:mm:ss ZZZ+0000 |
updated |
metadata.event_timestamp |
已剖析為 EEE, dd MMM yyyy HH:mm:ss ZZZ |
updated_std |
metadata.event_timestamp |
已剖析為 UNIX_MS |
format |
metadata.event_type |
已對應:grok → STATUS_UPDATE、grok → GENERIC_EVENT |
has_principal_hostname |
metadata.event_type |
已對應:true → STATUS_UPDATE |
_network |
network |
已重新命名/對應 |
_observer |
observer |
已重新命名/對應 |
_principal |
principal |
已重新命名/對應 |
ThinkstCanary_Process |
principal.application |
直接對應 |
ThinkstCanary_Process |
principal.asset.hostname |
直接對應 |
ThinkstCanary_Hostname |
principal.hostname |
直接對應 |
_md_product_event_type |
security_result |
對應值 (共 10 個,例如 Shared File Opened → _security_result、Host Port Scan → ... |
_security_result |
security_result |
已合併 |
format |
security_result |
已對應:kv → _security_result、json → _security_result |
_source |
src |
已重新命名/對應 |
_target |
target |
已重新命名/對應 |
| 不適用 | metadata.event_type |
常數:STATUS_UPDATE |
變更記錄
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求解答。