使用進階 BigQuery 匯出功能串流資料
本文說明如何使用進階 BigQuery 匯出功能,在 BigQuery 中存取及使用 Google SecOps 資料。Enterprise Plus 客戶可透過這項功能,使用全代管的串流資料管道,近乎即時地存取安全防護資料。這項功能有助於解決安全防護作業中資料延遲的重大問題,進而更及時有效地偵測及回應威脅。
事前準備
建議您詳閱下列要點,瞭解資格規定和必要行動:
僅限 Enterprise Plus 客戶:這項功能僅適用於 Google SecOps Enterprise Plus 客戶。如為其他客戶,請參閱在自行管理的專案中設定資料匯出至 BigQuery Google Cloud 。
必須啟用這項功能:這項功能需要提出要求才能啟用,且可能需要在貴機構的 Google SecOps 執行個體中進行初始設定。如有需要,請與 Google SecOps 代表聯絡,確認是否已啟用這項功能。
遷移警示:啟用這項功能後,系統會覆寫舊方法 (請參閱「BigQuery 中的 Google SecOps 資料」一文)。遷移至進階 BigQuery 匯出功能期間,我們會讓舊管道在過渡期內保持運作。這項雙重作業旨在支援您順利遷移至新功能,不會造成任何中斷。舊匯出管道停用前,我們會通知您的帳戶。
功能總覽
進階 BigQuery 匯出功能會自動在 Google 代管的 BigQuery 專案中,佈建及管理重要的 Google SecOps 資料集,包括統一資料模型 (UDM) 事件、規則偵測結果和遭入侵指標 (IoC) 比對結果,確保資料安全無虞。您可透過 BigQuery 連結的資料集,安全地以唯讀模式存取這項資料,該資料集會直接顯示在您的專案中 Google Cloud 。這項功能可讓您查詢安全防護資料,就像資料儲存在本機一樣,但不必管理資料管道或儲存空間,因此不會造成額外負擔。
Google SecOps 會將下列類別的安全防護資料匯出至 BigQuery:
- UDM 事件記錄:根據客戶擷取的記錄資料建立的 UDM 記錄。這些記錄會加入別名資訊。
- 規則相符 (偵測):規則與一或多個事件相符的例項。
- 入侵指標 (IoC) 比對結果:事件中的構件 (例如網域或 IP 位址) 與 IoC 資訊來源相符。包括與全球動態饋給和客戶專屬動態饋給的相符項目。
- 擷取指標:統計資料,例如擷取的記錄行數、從記錄產生的事件數,以及指出記錄無法剖析的記錄錯誤數。
- 實體圖和實體關係:實體及其與其他實體的關係說明。
主要優點
進階 BigQuery 匯出功能的主要優點包括:
- 近乎即時的資料更新間隔:串流架構可讓您在擷取安全資料後幾分鐘內查詢資料。UDM 事件、規則偵測和 IoC 比對結果的預期延遲時間為 5 到 10 分鐘。
- 簡化且可預測的費用模式:Google SecOps 會支付受管理 BigQuery 專案中的所有資料擷取和儲存費用。貴機構只需支付執行查詢時產生的 BigQuery 分析費用。
- 免維護資料存取權:Google 會全面管理基礎架構,讓團隊專注於資料分析,不必費心處理資料工程。
典型應用實例
進階 BigQuery 匯出功能適用於安全分析師、威脅獵人、資料科學家和安全工程師,可直接存取最新的安全資料,並以高效能進行個案調查、自訂分析,以及與商業智慧工具整合。
進階 BigQuery 匯出功能的常見用途包括:
- 直接在 BigQuery 中執行臨時查詢。
- 使用 Microsoft Power BI 等商業智慧工具,建立資訊主頁、報表和數據分析。
- 將 Google SecOps 資料與第三方資料集彙整。
架構
進階 BigQuery 匯出架構採用持續串流管道。Google SecOps 執行個體的資料會透過高處理量的 BigQuery Storage Write API,推送至安全的 Google 代管租戶專案。
Google SecOps 會使用 BigQuery 共用功能建立安全的資料目錄,並授予您存取權。在 BigQuery Explorer 窗格中,您的 Google Cloud 專案會自動訂閱這個目錄,並顯示為secops_linked_data 連結的資料集。
這個模型支援強大的資料隔離功能,同時提供無縫的唯讀查詢存取權。
使用進階 BigQuery Export
本節說明如何在 BigQuery 中存取及使用 Google SecOps 資料。
重要詞彙與概念
以下是進階 BigQuery Export 的重要詞彙和概念:
- 連結的資料集:唯讀 BigQuery 資料集,做為其他專案中共用資料集的符號連結或指標。您不必複製資料即可查詢,資料供應商管理實體儲存空間時,您也能安全存取資料。
- BigQuery sharing:這項 Google Cloud 服務可讓機構安全地共用資料和數據分析資產 (例如 BigQuery 資料集),無論是內部或外部皆可共用。
- 租戶專案:由 Google SecOps 擁有及管理的 Google Cloud 專案。匯出的安全性資料會實際儲存及管理於這個專案中。您無法直接存取這個專案。
- 您的專案:貴機構擁有並連結至 Google SecOps 執行個體的 Google Cloud 專案。連結的資料集會顯示在這個專案中,您也會在這裡執行查詢並產生分析費用。
- 專案 ID:專案的全域專屬 ID。
- 統合式資料模型 (UDM):Google 的可擴充標準結構定義,可將數百種供應商產品的安全遙測資料剖析及正規化為一致的格式。
設定系統
請按照下列步驟設定系統,使用進階 BigQuery 匯出功能並開始查詢資料:
- 確認授權:確認貴機構擁有 Google SecOps Enterprise Plus 授權。
- 找出專案:登入 Google Cloud 控制台,然後選取連結至 Google SecOps 執行個體的 Google Cloud 專案。
- 找出連結的資料集:在 BigQuery 控制台中,使用「Explorer」窗格前往專案的資源。您會看到名為
secops_linked_data的連結資料集。這個資料集是 Google SecOps 管理的即時安全資料的唯讀指標。 驗證 Identity and Access Management (IAM) 權限:如要查詢資料,使用者或服務帳戶必須在專案中具備下列 IAM 角色:
roles/bigquery.dataViewerroles/bigquery.jobUser
使用者 (例如安全分析師和資料消費者) 透過這些角色,即可在連結的資料集中查詢資料,並在專案中執行 BigQuery 工作。
執行測試查詢:開啟 BigQuery SQL 工作區並執行基本查詢,確認存取權設定正確無誤。您可以採用下列程式碼片段 (將 PROJECT_ID 替換為實際的專案 ID): Google Cloud
SELECT * FROM `PROJECT_ID.secops_linked_data.events` LIMIT 10;
查詢 BigQuery 資料
您可以直接在 BigQuery 中執行查詢,也可以將自己的商業智慧工具 (例如 Microsoft Power BI) 連線至 BigQuery。
如要進一步瞭解查詢,請參閱下列文章:
BigQuery 中的資料保留期限
BigQuery 中的資料保留期限與為 Google SecOps 租戶設定的資料保留期限相同。您無法另外設定 BigQuery 資料的保留政策。資料超過租戶的保留期限後,系統會自動從 BigQuery 資料表清除。
連結的資料集
連結的資料集包含多個表格,每個表格對應不同類型的安全性資料。
下表摘要列出可用的資料集、目標資料更新間隔,以及用於確保資料完整性的主鍵:
| 資料集名稱 | 說明 | 預期最新鮮 | 用於簡化的主鍵 |
|---|---|---|---|
events |
UDM 結構定義中的正規化安全事件。 如要瞭解結構定義,請參閱「Google SecOps 事件結構定義」。 |
少於 5 分鐘 | metadata.id(字串表示法) |
查詢範例
以下範例說明如何查詢資料集,以瞭解常見的安全性用途。請記得將 PROJECT_ID 替換為實際 Google Cloud 專案 ID。
範例:尋找過去 24 小時內來自特定 IP 位址的所有網路連線
這項查詢會在 events 資料表中,搜尋來自可疑 IP 位址的近期網路活動。
SELECT
metadata.product_event_type,
principal.ip,
target.ip,
network.application_protocol
FROM
`PROJECT_ID.secops_linked_data.events`
WHERE
principal.ip = '192.0.2.1'
AND metadata.event_timestamp > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 24 HOUR);
範例:計算最常偵測到的前 10 項規則
rule_detections 表格的這項查詢有助於找出環境中偵測到的最常見威脅或政策違規事項。
SELECT
rule_name,
COUNT(*) AS detection_count
FROM
`PROJECT_ID.secops_linked_data.rule_detections`
WHERE
detection.id IS NOT NULL
GROUP BY
1
ORDER BY
2 DESC
LIMIT
10;
最佳做法
以下是使用進階 BigQuery 匯出功能查詢資料的最佳做法:
- 盡可能提高成本效益:避免
SELECT *。在查詢中,只指定您需要的資料欄,即可減少掃描的資料量,並降低查詢費用。 - 使用分區篩選條件:events 資料表會依
hour_time_bucket資料欄分區。請務必在這個資料欄中加入WHERE子句篩選器,將查詢限制在盡可能小的時間範圍內,大幅提升效能並降低成本。 - 撰寫有效率的查詢:UDM 結構定義範圍廣泛,但資料稀疏。如要有效篩選特定事件類型,請在相關欄位使用
WHERE... IS NOT NULL。舉例來說,如要只找出 DNS 查詢,請篩選WHERE network.dns.questions.name IS NOT NULL。 - 驗證查詢:執行查詢前,請先使用 BigQuery 網頁介面中的查詢驗證工具,估算資料處理的大小和費用。這有助於避免可能耗費大量資源和費用的查詢。
依叢集資料欄篩選:在
WHERE子句中使用叢集資料欄,可減少查詢延遲和掃描成本。依叢集資料欄篩選的效率較高,因為 BigQuery 能更有效地縮小需要處理的資料範圍。事件資料表中的叢集資料欄為
metadata.log_type、metadata.event_type和metadata.product_event_type。
已知限制
以下是進階 BigQuery Export 功能的已知限制:
- 實體圖形延遲時間:
entity_graph資料集是透過批次程序匯出,資料更新間隔約為四小時。 - 客戶自行管理的加密金鑰 (CMEK):如果客戶在 Google SecOps 執行個體上啟用 CMEK,就無法使用進階 BigQuery Export。
- UDM 結構定義資料欄:BigQuery 的每個資料表最多可有 10,000 個資料欄。UDM 結構定義包含超過 27,000 個欄位,但填入的資料很少。匯出管道只會智慧地納入特定事件的已填入資料的資料欄,因此大多數客戶都不會超過上限。Google SecOps 會監控資料欄用量,如果租戶專案即將達到上限,就會主動要求提高上限。
- 保留政策:匯出至 BigQuery 的所有安全性資料保留期限,都會自動與 Google SecOps 專案的資料保留期限同步,無法另外設定。
- 延遲送達的資料:在極少數情況下,如果資料延遲送達處理管道的時間過長,資料可能無法正確合併。系統的設計目標是盡量減少這種情況,但這是高處理量串流系統的已知特性,這類系統依賴最終一致性。
- 擴增資料:涵蓋範圍僅限於單次擴增的 UDM 事件。重新擴增的 UDM 事件不會匯出至租戶專案的 BigQuery 執行個體。
- 歷史資料:啟用進階 BigQuery Export 後,系統就會開始匯出資料,而舊資料仍可在現有專案中存取。如要查詢啟用進階 BigQuery Export 前匯出的資料,您必須使用單一查詢,將兩個專案中的資料聯結在一起,或在個別專案中執行兩項查詢 (一個查詢舊資料集,另一個查詢新資料集)。
疑難排解與支援
下表提供常見問題的解決方案:
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。