收集 Aqua Security 記錄
總覽
這個剖析器會從 Aqua Security 記錄檔中擷取欄位,並轉換為統一資料模型 (UDM)。這個外掛程式會將 message
欄位剖析為 JSON,擷取使用者、來源 IP 和其他相關欄位,將這些欄位對應至 UDM 欄位,並根據 action
欄位將事件分類,然後以規則名稱、說明和 CVE 詳細資料等安全性內容擴充資料。
事前準備
請確認您已完成下列事前準備事項:
- Google SecOps 執行個體。
- Aqua Security 管理主控台的特殊存取權。
設定動態饋給
在 Google SecOps 平台中,有兩種不同的進入點可設定動態饋給:
- 「SIEM 設定」>「動態消息」
- 內容中心 > 內容包
依序前往「SIEM 設定」>「動態饋給」,設定動態饋給
如要設定動態消息,請按照下列步驟操作:
- 依序前往「SIEM 設定」>「動態消息」。
- 按一下「新增動態消息」。
- 在下一個頁面中,按一下「設定單一動態饋給」。
- 在「動態消息名稱」欄位中,輸入動態消息名稱 (例如「Aqua Security Logs」)。
- 選取「Webhook」做為「來源類型」。
- 選取「Aqua Security」做為「記錄類型」。
- 點選「下一步」。
- 選用:指定下列輸入參數的值:
- 分割分隔符號:用於分隔記錄行的分隔符號,例如
\n
。 - 資產命名空間:資產命名空間。
- 擷取標籤:套用至這個動態饋給事件的標籤。
- 分割分隔符號:用於分隔記錄行的分隔符號,例如
- 點選「下一步」。
- 在「Finalize」畫面中檢查動態饋給設定,然後按一下「Submit」。
- 按一下「產生密鑰」,產生驗證這個動態消息的密鑰。
- 複製並儲存密鑰。您無法再次查看這個密鑰。如有需要,您可以重新產生新的密鑰,但這項操作會使先前的密鑰失效。
- 在「詳細資料」分頁中,從「端點資訊」欄位複製動態消息端點網址。您需要在用戶端應用程式中指定這個端點網址。
- 按一下 [完成]。
從內容中心設定動態饋給
為下列欄位指定值:
- 分割分隔符號:用於分隔記錄行的分隔符號,例如
\n
。
進階選項
- 動態饋給名稱:系統預先填入的值,用於識別動態饋給。
- 來源類型:將記錄收集到 Google SecOps 的方法。
- 資產命名空間:與動態饋給相關聯的命名空間。
擷取標籤:套用至這個動態饋給所有事件的標籤。
按一下「產生密鑰」,產生驗證這個動態消息的密鑰。
複製並儲存密鑰。您無法再次查看這個密鑰。如有需要,您可以重新產生新的密鑰,但這項操作會使先前的密鑰失效。
在「詳細資料」分頁中,從「端點資訊」欄位複製動態消息端點網址。您需要在用戶端應用程式中指定這個端點網址。
為 Webhook 資訊提供建立 API 金鑰
依序前往 Google Cloud 控制台 >「憑證」。
按一下 [Create credentials] (建立憑證),然後選取 [API key] (API 金鑰)。
限制 API 金鑰對 Chronicle API 的存取權。
指定端點網址
- 在用戶端應用程式中,指定 webhook 動態饋給中提供的 HTTPS 端點網址。
如要啟用驗證,請在自訂標頭中指定 API 金鑰和私密金鑰,格式如下:
X-goog-api-key = API_KEY X-Webhook-Access-Key = SECRET
建議:請將 API 金鑰指定為標頭,而非在網址中指定。
如果 Webhook 用戶端不支援自訂標頭,您可以使用查詢參數指定 API 金鑰和密鑰,格式如下:
ENDPOINT_URL?key=API_KEY&secret=SECRET
更改下列內容:
ENDPOINT_URL
:動態消息端點網址。API_KEY
:用於向 Google SecOps 進行驗證的 API 金鑰。SECRET
:您產生的密鑰,用於驗證動態饋給。
在 Aqua Security 中為 Google SecOps 建立 Webhook
- 登入 Aqua Security 控制台。
- 依序前往「設定」>「圖片掃描結果 Webhook」。
- 勾選「啟用傳送圖片掃描結果」核取方塊。
- 輸入
<ENDPOINT_URL>
,然後依序輸入<API_KEY>
和<SECRET>
。 - 按一下 [儲存]。
UDM 對應表
記錄欄位 (遞增) | UDM 對應 | 邏輯 |
---|---|---|
jsonPayload.action | metadata.event_type | 根據「jsonPayload.action」的值對應。請參閱特定對應項目的剖析器程式碼。 |
jsonPayload.action | security_result.summary | 直接對應。 |
jsonPayload.adjective | target.file.full_path | 如果「jsonPayload.container」為空白,則直接對應。 |
jsonPayload.category | target.asset.category | 直接對應。 |
jsonPayload.cfappname | target.application | 直接對應。 |
jsonPayload.cfspace | principal.user.userid | 如果「jsonPayload.user」為空白,則直接對應。 |
jsonPayload.command | principal.ip | 使用 grok 模式「user %{GREEDYDATA:user_id} \(%{IP:src_ip}\)」擷取。 |
jsonPayload.command | principal.user.userid | 使用 grok 模式「user %{GREEDYDATA:user_id} \(%{IP:src_ip}\)」擷取。 |
jsonPayload.container | target.asset.product_object_id | 直接對應。 |
jsonPayload.data | security_result.detection_fields | 剖析為鍵/值組合,並對應至「security_result.detection_fields」中的個別欄位。 |
jsonPayload.description | security_result.description | 如果「jsonPayload.reason」為空白,則直接對應。 |
jsonPayload.host | principal.hostname | 直接對應。 |
jsonPayload.hostgroup | target.group.group_display_name | 直接對應。 |
jsonPayload.hostid | target.asset_id | 對應為「主機 ID:%{jsonPayload.hostid}」。 |
jsonPayload.hostip | target.ip | 直接對應。 |
jsonPayload.image | target.file.full_path | 直接對應。 |
jsonPayload.level | security_result.action | 如果「jsonPayload.level」為「success」,請設為「ALLOW」。 |
jsonPayload.reason | security_result.description | 直接對應。 |
jsonPayload.rule | security_result.rule_name | 直接對應。 |
jsonPayload.user | principal.user.userid | 直接對應。 |
jsonPayload.vm_location | target.asset.location.name | 直接對應。 |
jsonPayload.vm_name | target.resource.name | 直接對應。 |
resource.labels.instance_id | target.resource.id | 直接對應。 |
resource.labels.project_id | target.asset.attribute.cloud.project.id | 直接對應。 |
resource.labels.zone | target.asset.attribute.cloud.availability_zone | 直接對應。 |
時間戳記 | metadata.event_timestamp | 轉換為 ISO8601 格式後直接對應。 |
extensions.auth.type | 如果「jsonPayload.description」包含「SAML」,請設為「SSO」;如果「jsonPayload.action」為「login」或「Login」,請設為「AUTHTYPE_UNSPECIFIED」。 | |
metadata.log_type | 設為「AQUA_SECURITY」。 | |
metadata.product_name | 設為「AQUA_SECURITY」。 | |
metadata.vendor_name | 設為「AQUA_SECURITY」。 | |
target.asset.attribute.cloud.environment | 設為「GOOGLE_CLOUD_PLATFORM」。 | |
target.resource.type | 設為「VIRTUAL_MACHINE」。 |
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。