搜尋原始記錄

支援的國家/地區:

執行搜尋時,Google Security Operations 會先檢查已擷取、剖析及正規化的安全性資料。如果正規化資料中沒有所需資訊,可以使用原始記錄檔搜尋功能檢查未剖析的原始記錄檔。您也可以使用規則運算式,更詳細地檢查原始記錄。

您可以使用原始記錄搜尋功能,調查記錄中出現 (但未編入索引) 的構件,包括:

  • 使用者名稱
  • 檔案名稱
  • 註冊資料庫機碼
  • 指令列引數
  • 與 HTTP 要求相關的原始資料
  • 以規則運算式為準的網域名稱
  • 資產命名空間和地址

原始記錄搜尋是專為下列用途設計的調查工具:

  • 驗證正規化並排解剖析器問題:比較原始記錄項目與產生的 UDM 事件,找出正規化缺口、驗證欄位對應,或找出未剖析的記錄。
  • 深入的鑑識調查和威脅搜尋:搜尋未對應至結構化 UDM 欄位的罕見或未編列索引的入侵指標 (IOC)、指令列引數、登錄檔機碼、檔案路徑或特定字串。
  • 調查非結構化和自訂資料:立即查詢新加入或專屬的記錄來源,不必等待開發 UDM 剖析器。

您可以使用位於到達網頁或選單列中的「搜尋」列,執行原始記錄搜尋。選擇下列其中一種做法:

請使用 raw= 格式

您可以使用 raw= 格式查詢原始記錄。建議使用這個方法。

  • 如要搜尋子字串,請在搜尋字詞前後加上引號,例如:raw = "ABC"。
  • 如要使用規則運算式搜尋,請在運算式前後加上正斜線 (/), 例如 raw = /AB*C/。
  • 選用:使用 parsed 關鍵字依剖析狀態篩選:
    • parsed = false:顯示未剖析的記錄,其中未產生 UDM 事件。
    • parsed = true:顯示已成功剖析為 UDM 事件的記錄。

舊版方法:使用原始記錄檔搜尋提示

  • 在「搜尋」列中,輸入至少四個字元的搜尋字串 (例如 MD5 雜湊),包括萬用字元。
  • 如果搜尋沒有傳回任何結果,系統會顯示「原始記錄搜尋」選項。
  • 選用:指定「開始時間」和「結束時間」。預設範圍為過去 7 天。
  • 選用:在「記錄來源」清單中,選取一或多個記錄來源。預設為「全部」。
  • 按一下 [搜尋]。

與搜尋字串相關的事件會顯示在「時間軸」中。按一下事件 (或原始記錄圖示),即可開啟對應的原始記錄。您也可以在「原始記錄搜尋」頁面上,查看搜尋查詢和套用的篩選器。

最佳化原始記錄查詢

原始記錄搜尋會掃描未建立索引的記錄酬載,通常比 UDM 搜尋慢。如要提升搜尋效能,請變更搜尋設定,限制查詢的資料量:

  • 時間範圍選取器:限制查詢資料的時間範圍。
  • 記錄來源選取器:將原始記錄搜尋範圍限制為僅來自特定來源的記錄,而非所有記錄來源。在「記錄來源」選單中,選取一或多個記錄來源 (預設為「全部」),或直接在查詢中附加 log_source 篩選器 (log_source = IN["<var>LOG_SOURCE_NAME</var>"])。
  • 規則運算式:使用特定規則運算式。舉例來說,raw = /goo\w{3}\.com/ 會比對 google.com、goodle.com 和 goog1e.com,進一步縮小原始記錄搜尋範圍。

目標原始記錄搜尋範例

將 raw = 前置字元與 log_source 和 parsed 篩選器結合,即可將搜尋範圍限制在相關動態消息,並避免大量記錄來源截斷結果:

  • 在單一記錄來源中搜尋完全相符的字串:

    raw = "<var>SEARCH_TERM</var>" and log_source = IN["<var>LOG_SOURCE_NAME</var>"]
    
  • 搜尋部分記錄來源:

    raw = "<var>SEARCH_TERM</var>" and log_source = IN["<var>LOG_SOURCE_1</var>", "<var>LOG_SOURCE_2</var>"]
    
  • 使用規則運算式搜尋未剖析的記錄:

    raw = /<var>REGULAR_EXPRESSION</var>/ and parsed = false and log_source = IN["<var>LOG_SOURCE_NAME</var>"]
    

趨勢變化

使用「一段時間內的趨勢」圖表,瞭解搜尋期間原始記錄的分布情形。您可以在圖表上套用篩選器,尋找已剖析的記錄和原始記錄。按一下「展開更多」圖示 (或「減少顯示」圖示 ),即可展開或收合圖表。

原始記錄檔結果

執行原始記錄搜尋時,結果會包含與搜尋條件相符的原始記錄所產生的 UDM 事件和實體,以及原始記錄。如要進一步探索搜尋結果,請點選任一結果:

  • UDM 事件或實體:如果您點選 UDM 事件或實體,Google SecOps 會顯示任何相關事件和實體,以及與該項目相關的原始記錄。

  • 原始記錄:點選原始記錄後,Google SecOps 會顯示整行原始記錄,以及該記錄的來源。

結果限制和取樣

原始記錄搜尋會強制執行下列結果和查詢限制:

  • 大量結果限制:如果最近擷取的記錄檔儲存在批次儲存空間中,然後才匯出至長期直欄式儲存空間,則從包含 1,000 個以上事件的大量記錄檔批次中,最多只能傳回 1,000 個結果。將記錄匯出至長期資料欄儲存空間後,就不會受到 1,000 筆結果的批次限制。
  • 使用者介面和 CSV 匯出總上限:在 Google SecOps 控制台中進行單一原始記錄搜尋或匯出 CSV 檔案時,所有查詢記錄來源的結果總數最多為 10,000 筆。如果查詢比對超過 10,000 個項目,Google SecOps 會傳回 10,000 個結果的代表性樣本。
  • API 結果限制:Raw Log Search API (SearchRawLogs) 對每個查詢要求 (page_size) 設有 10,000 項記錄的上限。
  • 搜尋查詢長度:原始記錄搜尋輸入欄位的字數上限為 150 個半形字元。

同時搜尋多個記錄來源時 (將「記錄來源」選單設為「全部」),Google SecOps 會在分散式儲存空間分片中平行執行查詢,並在記憶體內篩選前套用保護性查詢限制,以維持快速回應時間。由於採用分散式架構,廣泛多來源查詢和單一來源查詢傳回的結果總數可能有所不同,原因如下:

  • 不同的擷取量:高用量的記錄來源會產生大量批次,比低用量來源更快達到 1,000 個結果的批次限制。
  • 分散式批次取樣:如果批次包含 1,000 個以上的事件,系統會先將傳回的結果限制為 1,000 個,再套用 10,000 個結果的查詢取樣上限,這會改變查詢傳回的取樣記錄比例。
  • 近期和過往的儲存層級:系統會從低延遲批次儲存空間查詢近期擷取的記錄,以便立即搜尋,但大型批次最多只能傳回 1,000 個結果。將記錄匯出至長期直欄儲存空間後,查詢會直接掃描個別記錄項目,不會受到 1,000 筆結果的批次限制 (最多可達 10,000 筆結果的查詢總限制),因此歷來搜尋的結果計數會更加一致。

下載原始記錄結果

如要將原始記錄結果下載為 CSV 檔案,請在「原始記錄」結果表格中,依序點選「更多」 >「下載為 CSV」。

根據預設,CSV 檔案一律會包含「原始記錄」欄。你可以使用「資料欄」按鈕開啟「資料欄管理工具」,然後移除或新增「時間戳記」和「類型」資料欄。如果您新增其他資料欄,這些資料欄會顯示在表格中,但不會下載到 CSV 檔案。

如要下載 UDM 欄位,請執行 UDM 搜尋、選取所需資料欄,然後下載為 CSV 檔案。

如果 Google Chrome 顯示 Failed to execute 'showSaveFilePicker' 錯誤,請按照下列步驟操作:

  1. 依序前往「裝置」>「Chrome」>「設定」。

  2. 選取「使用者和瀏覽器」。

  3. 找出「檔案系統寫入權限」設定。

  4. 將 prefix.backstory.chronicle.security 新增至允許的網站清單。

規則運算式

您可以在 Google SecOps 中使用規則運算式,搜尋並比對安全性資料中的字元字串集。規則運算式可協助您使用資訊片段縮小搜尋範圍,而不必完全相符。

如要使用規則運算式語法執行搜尋,請按照下列步驟操作:

  • 在 SIEM 搜尋中,於搜尋欄位輸入 raw = /YOUR_REGEX/,然後按一下「執行搜尋」。
  • 在舊版「搜尋」列中:
    1. 在「搜尋」欄位中輸入規則運算式 (長度為 4 到 66 個字元)。
    2. 勾選「將查詢做為 Regex 執行」核取方塊,然後按一下「搜尋」(或「原始記錄搜尋」結果頁面上的「更新搜尋」)。

Google SecOps 規則運算式基礎架構是以 Google RE2 為基礎,這是開放原始碼的規則運算式引擎。Google SecOps 使用相同的規則運算式語法。

下表列出一些可用於搜尋的常見規則運算式語法。

任何字元 .
x 個任意字元 {x}
字元類別 [xyz]
否定字元類別 [^xyz]
英數字元 (0-9A-Za-z) [[:alnum:]]
字母 (A-Za-z) [[:alpha:]]
數字 (0-9) [[:digit:]]
小寫 (a-z) [[:lower:]]
大寫 (A-Z) [[:upper:]]
文字字元 (0-9A-Za-z_) [[:word:]]
十六進位數字 (0-9A-Fa-f) [[:xdigit:]]
問號符號 (?) 比對前一個元素出現零次或一次的情況。
星號 (*) 比對前面字元或群組出現零次以上的情況。
加號 (+) 比對前面字元或群組出現一或多次的情況。

以下範例說明如何使用規則運算式搜尋資料:

  • goo.le\.com:比對開頭為 goo 的任何字串,後面接著任何單一字元,再接著 le.com,例如 google.com 或 goo0le.com。
  • goo\w{3}\.com:比對開頭為 goo 的字串,後面接著正好三個單字字元 (\w),結尾為 .com。例如 google.com、goojle.com 或 goodle.com。
  • [[:digit:]]\.[[:alpha:]]:比對的字串必須包含一個數字、一個半形句號 (.) 和一個英文字母,例如 34323.system、23458.office 或 897.net。

搜尋 Windows 記錄的規則運算式範例

本節提供可搭配 Google SecOps 原始記錄搜尋功能使用的規則運算式查詢字串,方便您尋找常見的 Windows 監控事件。這些範例假設 Windows 記錄訊息採用 JSON 格式。

如要進一步瞭解常見的 Windows 事件 ID 監控項目,請參閱「要監控的事件」。提供的範例遵循類似模式,如這些用途所述。

用途:傳回 EventID 為 1150 的事件
規則運算式字串: \"EventID\"\:\s*1150
相符的值: "EventID":1150
用途:傳回事件 ID 為 1150 或 1151 的事件
規則運算式字串 (?:\"EventID\"\:\s*)(?:1150|1151)
相符的值 "EventID":1150 和 "EventID":1151
用途:傳回 Event ID 為 1150 或 1151,且 ThreadID 為 9092 的事件
規則運算式字串 (?:\"EventID\"\:\s*)(?:1150|1151).*(?:\"ThreadID\"\:\s*9092)
相符的值 "EventID":1150 <...any number of characters...> "ThreadID":9092
和
"EventID":1151 <...any number of characters...> "ThreadID":9092

尋找帳戶管理事件

這些規則運算式查詢字串會使用 EventID 屬性,找出常見的帳戶管理事件。

活動類型 規則運算式
已建立使用者帳戶 "EventID\"\:\s*4720
已啟用使用者帳戶 "EventID\"\:\s*4722
使用者帳戶已停用 "EventID\"\:\s*4725
使用者帳戶已刪除 "EventID\"\:\s*4726
使用者權限修改 "EventID\"\:\s*4703
成員新增至已啟用安全性的全域群組 "EventID\"\:\s*4728
已從啟用安全性的全域群組中移除成員 "EventID\"\:\s*4729
已刪除啟用安全性的全域群組 "EventID\"\:\s*4730

找出登入成功事件

這些規則運算式查詢字串會使用 EventID 和 LogonType 屬性,識別成功登入事件的類型。

活動類型 規則運算式
登入成功 "EventID\"\:\s*4624
登入成功 - 互動式 (LogonType=2) "EventID\"\:\s*4624.*?LogonType\"\:\s*\"2\"
登入成功 - 批次登入 (LogonType=4) "EventID\"\:\s*4624.*?LogonType\"\:\s*\"4\"
登入成功 - 服務登入 (LogonType=5) "EventID\"\:\s*4624.*?LogonType\"\:\s*\"5\"
登入成功 - RemoteInteractive 登入 (LogonType=10) "EventID\"\:\s*4624.*?LogonType\"\:\s*\"10\"
登入成功 - 互動式、批次、服務或遠端互動式 (?:"EventID\"\:\s*4624.*?LogonType\"\:\s*\")(?:2|4|5|10)\"

尋找登入失敗事件

這些規則運算式查詢字串會使用 EventID 和 LogonType 屬性,識別登入失敗事件類型。

活動類型 規則運算式
登入失敗 "EventID\"\:\s*4625
登入失敗 - 互動式 (LogonType=2) "EventID\"\:\s*4625.*?LogonType\"\:\s*\"2\"
登入失敗 - 批次登入 (LogonType=4) "EventID\"\:\s*4625.*?LogonType\"\:\s*\"4\"
登入失敗 - 服務登入 (LogonType=5) "EventID\"\:\s*4625.*?LogonType\"\:\s*\"5\"
登入失敗 - RemoteInteractive 登入 (LogonType=10) "EventID\"\:\s*4625.*?LogonType\"\:\s*\"10\"
登入失敗 - 互動式、批次、服務或遠端互動式 (?:"EventID\"\:\s*4625.*LogonType\"\:\s*\")(?:2|4|5|10)\"

尋找程序、服務和工作事件

這些規則運算式查詢字串會使用 EventID 屬性,識別特定程序和服務事件。

活動類型 規則運算式
程序開始 "EventID\"\:\s*4688
程序結束 "EventID\"\:\s*4689
已安裝服務 "EventID\"\:\s*4697
已建立新服務 "EventID\"\:\s*7045
已建立排定的工作 "EventID\"\:\s*4698

這些規則運算式查詢字串會使用 EventID 屬性,識別不同類型的程序和服務相關事件。

活動類型 規則運算式
稽核記錄已清除 "EventID\"\:\s*1102
嘗試存取物件 "EventID\"\:\s*4663
分享存取權 "EventID\"\:\s*5140

疑難排解

請參閱下表,解決常見的原始記錄搜尋問題:

問題 說明 修正
不同搜尋的結果數量不一致 查詢多個記錄來源 (「全部」) 時,由於批次儲存空間和分散式取樣功能對大型批次 (含有 1,000 個以上事件的批次) 設有 1,000 個結果的限制,因此與單一來源查詢相比,最近擷取的記錄傳回的結果總數會有所不同。 從「記錄來源」選單選取特定記錄來源,或使用 log_source = IN["LOG_SOURCE_NAME"] 篩選,縮小搜尋時間範圍。
結果遭到截斷或取樣 (已達 10,000 筆結果的上限) 搜尋查詢在使用者介面、CSV 匯出或 SearchRawLogs API (page_size) 中,比對出超過 10,000 筆記錄,因此只傳回 10,000 筆結果的樣本。 縮短查詢時間範圍 (例如 1 小時),並新增特定 RE2 規則運算式或 parsed = false 篩選器。
大量擷取稽核差異 原始記錄搜尋結果計數與擷取的記錄總量不符,是因為系統會在記憶體內篩選前,套用保護性批次和分片限制。 使用 UDM 搜尋、UDM 搜尋中的統計資料和彙整資料,或擷取健康狀態指標,驗證擷取完整性和容量一致性。
查詢超過字元限制 搜尋字串超過原始記錄查詢的 150 個字元限制。 簡化規則運算式,或將調查拆分為較小的個別查詢,分別鎖定個別記錄來源。

還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求解答。