使用 Gemini 建立剖析器擴充功能
本指南說明安全分析師和偵測工程師如何使用自然語言提示,擴增預設記錄剖析器。使用 AI 剖析器擴充功能,您就能快速擷取其他欄位、套用條件邏輯,以及將原始記錄檔對應至 Unified Data Model (UDM),不必編寫複雜的剖析器語法或規則運算式。
當 Google SecOps 中的預設記錄剖析器剖析記錄來源時,可能會省略客戶專屬的自訂屬性、選用欄位或專門的遙測資料。使用 AI 剖析器擴充功能,即可執行下列操作:
- 從原始記錄中擷取其他欄位,並對應至標準 UDM 欄位或自訂
additional.fields。 - 套用條件式邏輯和值轉換,例如將字串動作對應至 UDM 列舉型別。
- 在多輪對話工作階段中,以互動方式修正生成的擴充功能,不必從頭開始。
重要術語
- 統合資料模型 (UDM):Google SecOps 用於儲存及分析記錄資料的標準資料結構。
事前準備
開始之前,請確認符合下列先決條件:
- 使用配額:在 24 小時內,您最多可以執行 10 個 AI 剖析器擴充功能生成工作階段,每個工作階段最多可傳送 5 則訊息。
撰寫提示的最佳做法
如要確保第一次就能取得準確的剖析器擴充功能,請遵循下列提示指南:
- 明確指定來源和目標:清楚說明要擷取原始記錄的哪個部分,以及要填入哪個確切的 UDM 欄位路徑,例如
principal.ip、target.user.email_addresses或security_result.action。 - 使用引號表示完全相符的常值:在非結構化記錄中參照常值字串、分隔符或範例值時,請以引號括住,例如
"198.51.100.0"或"allow"。 - 使用 additional.fields 處理自訂欄位:對於沒有專屬 UDM 欄位的專屬或供應商特定屬性,請指示 AI 將這些屬性對應至
additional.fields,並提供清楚的鍵名,例如additional.fields["application"]。
生成剖析器擴充功能
您可以在 Google Security Operations 的下列任一位置啟動剖析器擴充功能工作流程:
- 剖析器設定頁面:前往「剖析器」頁面,選取並擴充任何現有的記錄剖析器。
- 搜尋頁面:在「搜尋」頁面調查記錄時,可直接從含有未剖析欄位的事件開啟擴充功能建立流程。
如要從「Parsers」(剖析器) 設定頁面產生剖析器擴充功能,請按照下列步驟操作:
- 在 Google SecOps 中,前往「剖析器」設定頁面。
- 搜尋要延長的記錄類型。
- 按一下剖析器旁的選單,然後選取擴充選項。
- 在「原始記錄」欄位中,貼上要剖析的記錄樣本。
- 在「擴充方法」部分,選取「使用 AI 生成」分頁標籤。
- 在提示欄位中,以簡單的英文說明要擷取的內容。
按一下「確認」。
系統會生成擴充功能程式碼,並更新 UDM 輸出。
修正剖析器擴充功能
您可以在多輪對話工作階段中,反覆建構及修正剖析器擴充功能。提交後續提示時,AI 會在先前產生的擴充功能上套用新指示。除非您明確要求覆寫或移除,否則系統會自動保留先前回合的現有對應和條件式邏輯。
- 在提示欄位中輸入後續指令,調整生成的程式碼。
- 按一下「確認」。
- 每次輸入提示後,請預覽生成的擴充功能程式碼、檢查 UDM 輸出範例,然後確認或調整邏輯。
以下範例工作流程說明如何透過反覆修正,在多個回合中建構剖析器擴充功能:
- 第 1 輪 (初步擷取):
- 使用者提示:
"Extract source IP '198.51.100.0' to principal.ip and destination IP '198.51.100.1' to target.ip." - 結果:AI 會生成擴充功能對應
principal.ip和target.ip。
- 使用者提示:
- 第 2 回合 (加法對應):
- 使用者提示:
"Also map virtual system string 'vsys1' to observer.administrative_domain." - 結果:AI 會更新擴充功能,以對應
observer.administrative_domain,同時保留第 1 輪的 IP 對應。
- 使用者提示:
- 第 3 輪 (有條件的精修):
- 使用者提示:
"In addition, map action string 'allow' to security_result[0].action as ALLOW." - 結果:AI 會在先前所有擷取內容的基礎上,納入條件式動作列舉對應。
- 使用者提示:
驗證剖析器擴充功能
- 點選「Validate」(驗證)。
- 程序完成後,請查看驗證指標。
存取參考資訊
請參考下列範例,撰寫準確的提示。
結構化記錄提示
如果是結構化記錄,資料會整理成具名的鍵、屬性或 XML 標記,請在提示中指定欄位名稱或路徑。
結構化記錄範例 - JSON 格式
{
"insertId": "u0mlpdesys",
"logName": "projects/sample-project-id/logs/cloudaudit.googleapis.com%2Fdata_access",
"protoPayload": {
"authenticationInfo": {
"principalEmail": "analyst@example-domain.com"
},
"methodName": "GenerateAccessToken",
"requestMetadata": {
"callerIp": "203.0.113.195",
"callerSuppliedUserAgent": "google-cloud-sdk gcloud/392.0.0"
},
"resourceName": "projects/-/serviceAccounts/110649196922301550006",
"serviceName": "iamcredentials.googleapis.com"
}
}
結構化記錄的提示範例
| 提示詞指令 | 來源欄位或鍵 | 目標 UDM 欄位 |
|---|---|---|
"Map principalEmail to principal.user.email_addresses." |
principalEmail |
principal.user.email_addresses |
"Extract callerIp to principal.ip and methodName to metadata.product_event_type." |
callerIp、methodName |
principal.ip、metadata.product_event_type |
"Map resourceName to target.resource.name and serviceName to target.application." |
resourceName、serviceName |
target.resource.name、target.application |
"From XML tags, map /Event/System/Hostname to principal.hostname." |
/Event/System/Hostname |
principal.hostname |
非結構化記錄提示
如果是非結構化記錄,請直接從範例記錄、位置參照或描述性標籤指定常值。
非結構化系統記錄訊息範例
<14>Nov 9 18:52:45 198.51.100.1 1,2021/11/09 18:52:45,007051000184334,TRAFFIC,start,2561,2021/11/09 18:52:45,198.51.100.0,198.51.100.1,0.0.0.0,0.0.0.0,any allow,,,ping,vsys1,LAN,LAN,ethernet1/2,ethernet1/2,LFPpan,2021/11/09 18:52:45,9729,6,0,0,2048,0,0x100000,icmp,allow,444,444,0,6
非結構化記錄的提示範例
| 提示詞指令 | 範例常值或說明 | 目標 UDM 欄位 |
|---|---|---|
"Extract source IP '198.51.100.0' to principal.ip and destination IP '198.51.100.1' to target.ip." |
'198.51.100.0'、'198.51.100.1' |
principal.ip、target.ip |
"Extract the application string 'ping' from the log and map it to additional.fields['application']." |
'ping' |
additional.fields["application"] |
"Map rule name 'any allow' to security_result.rule_id." |
'any allow' |
security_result[0].rule_id |
"Extract sent bytes and received bytes into network.sent_bytes and network.received_bytes." |
記錄中的數值位元組計數器 | network.sent_bytes、network.received_bytes |
條件式邏輯提示
說明條件邏輯,將原始記錄值正規化為特定 UDM 列舉。
- 列舉正規化:
"If the firewall action in the log is 'allow', set security_result.action to ALLOW; otherwise set security_result.action to BLOCK." - 條件式欄位對應:
"If the protocol is 'icmp', map the ICMP type and code into network.icmp.type and network.icmp.code." - 狀態對應:
"When the log status contains 'success' or '0', set security_result.severity to INFO; if it contains 'error', set it to ERROR."
用量限制
為維持最佳效能和資源可用性,AI 剖析器擴充功能設有下列用量配額:
- 每 24 小時 10 個工作階段:每位客戶在 24 小時內最多可產生 10 個 AI 剖析器擴充功能工作階段。
- 每個工作階段最多 5 則訊息:在單一工作階段中,您最多可以傳送 5 則訊息,包括初始提示和後續的修正回合,以製作及修正剖析器擴充功能。
如果達到工作階段訊息上限,你可以儲存目前的擴充功能或啟動新的工作階段。
後續步驟
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求解答。