收集 Jenkins 記錄

支援的國家/地區:

總覽

這個剖析器會從 JSON 和 SYSLOG 格式的記錄中,擷取時間戳記、使用者 ID、來源 IP、動作和物件 ID 等重要資訊。它會使用 grok 模式比對各種記錄訊息格式、處理結構變化,並以擷取的欄位填入統一資料模型 (UDM)。剖析器也會根據使用者或 IP 資訊的存在與否,將事件分類。

事前準備

請確認您已完成下列事前準備事項:

  • Google SecOps 執行個體。
  • IAM 的特殊存取權 Google Cloud 。
  • 具有 Google Cloud 儲存空間的特殊存取權。
  • Jenkins 的特殊存取權。

建立 Google Cloud 儲存空間 bucket

  1. 前往「Cloud Storage」
  2. 建立新 bucket。選擇不重複的名稱和適當區域。
  3. 確認值區具有適當的存取權控管機制 (例如,只有獲得授權的服務帳戶才能寫入)。

建立 Google Cloud 服務帳戶

  1. 依序前往「IAM & Admin」(IAM 與管理) >「Service Accounts」(服務帳戶)
  2. 建立新的服務帳戶。為其設定描述性名稱 (例如 jenkins-logs)。
  3. 在上一個步驟中建立的 GCS bucket 上,授予服務帳戶「Storage Object Creator」角色。
  4. 為服務帳戶建立 SSH 金鑰:請參閱「建立及刪除服務帳戶金鑰」。
  5. 下載服務帳戶的 JSON 金鑰檔案。

在 Jenkins 中安裝 Google Cloud Storage 外掛程式

  1. 依序前往「Manage Jenkins」>「Plugins」
  2. 選取「可用外掛程式」
  3. 搜尋 Google Cloud Storage 外掛程式。
  4. 安裝外掛程式,並視需要重新啟動 Jenkins。

在 Jenkins 中安裝 Google OAuth 憑證外掛程式

  1. 依序前往「Manage Jenkins」>「Plugins」
  2. 選取「可用外掛程式」
  3. 搜尋 Google OAuth 憑證外掛程式。
  4. 安裝外掛程式,並視需要重新啟動 Jenkins。

設定 Jenkins 以向 Google Cloud

  1. 依序前往「Manage Jenkins」>「Credentials」>「System」

  2. 依序按一下「新增」 「新增憑證」。

  3. 「Kind」:選取「Google Service Account from private key」

  4. 專案名稱:設定憑證名稱。

  5. 上傳您在 Google Cloud 建立服務帳戶時取得的 JSON 金鑰檔案。

  6. 點選「建立」

設定 Jenkins 記錄檔,以上傳至 Google SecOps

  1. 在 Jenkins 工作設定中,於建構後動作新增「Google Storage Build Log Upload」,並使用下列參數:
    • Google 憑證:您在上一步中建立的 Google 憑證名稱。
    • 記錄檔名稱:要儲存 Jenkins 建構記錄的檔案名稱,位於指定的儲存路徑下。
    • 儲存位置:要上傳記錄的 bucket 名稱。您建立的服務帳戶必須能存取該值區。
  2. 測試記錄上傳功能。

設定動態饋給

在 Google SecOps 平台中,有兩種不同的進入點可設定動態饋給:

  • 「SIEM 設定」>「動態消息」
  • 內容中心 > 內容包

依序前往「SIEM 設定」>「動態饋給」,設定動態饋給

如要設定動態消息,請按照下列步驟操作:

  1. 依序前往「SIEM 設定」>「動態消息」
  2. 按一下「新增動態消息」
  3. 在下一個頁面中,按一下「設定單一動態饋給」
  4. 在「動態消息名稱」欄位中,輸入動態消息的名稱,例如「Jenkins Logs」
  5. 選取「Google Cloud Storage」做為「來源類型」。
  6. 選取「Jenkins」做為「記錄類型」
  7. 按一下「Chronicle 服務帳戶」的「取得服務帳戶」
  8. 點選「下一步」
  9. 指定下列輸入參數的值:

    • 儲存空間值區 URI: Google Cloud gs://my-bucket/<value> 格式的儲存空間值區 URL。
    • URI 為:選取「包含子目錄的目錄」
    • 來源刪除選項:根據偏好設定選取刪除選項。
  10. 點選「下一步」

  11. 在「Finalize」畫面上檢查新的動態饋給設定,然後按一下「Submit」

從內容中心設定動態饋給

為下列欄位指定值:

  • 儲存空間值區 URI: Google Cloud gs://my-bucket/<value> 格式的儲存空間值區 URL。
  • URI 為:選取「包含子目錄的目錄」
  • 來源刪除選項:根據偏好設定選取刪除選項。

進階選項

  • 動態饋給名稱:系統預先填入的值,用於識別動態饋給。
  • 來源類型:將記錄收集到 Google SecOps 的方法。
  • 資產命名空間:與動態饋給相關聯的命名空間。
  • 擷取標籤:套用至這個動態饋給所有事件的標籤。

UDM 對應表

記錄欄位 UDM 對應 邏輯
act security_result.action_details msg1msg2 欄位擷取。代表執行的動作。移除開頭的空白字元。
資料 principal.user.useridprincipal.ipmetadata.description 如果 data 符合 IP 位址模式,則會對應至 principal.ip。如果符合使用者名稱模式,則會對應至 principal.user.userid。否則會對應至 metadata.description
msg1 target.asset.product_object_idsecurity_result.action_details 用於擷取「object」和「act」。如果存在 /,則會分割為「object」和「act」。如果存在 »,則會分割為「object」和「act」。否則,會視為「act」,並可能進一步剖析。
msg2 metadata.descriptionsecurity_result.action_details 如果存在,則最初會對應至 metadata.description。如果包含「completed:」,系統會擷取後方的值,並對應至 security_result.action_details
object target.asset.product_object_id 從「msg1」msg1擷取。代表所執行的物件。
object_id target.resource.attribute.labels.value 如果存在 /,則從 object 擷取。代表更具體的物件 ID。索引鍵會以硬式編碼方式指定為「外掛程式名稱」。
src_ip principal.ip 訊息資料中擷取。代表來源 IP 位址。
user principal.user.userid 訊息資料中擷取。代表與事件相關聯的使用者。
metadata.event_timestamp 從計算出的 @timestamp 欄位複製。
metadata.event_type 取決於剖析器邏輯。如果存在 user,請設為 USER_UNCATEGORIZED;如果存在 src_ip,請設為 STATUS_UNCATEGORIZED;否則請設為 GENERIC_EVENT
metadata.product_name 硬式編碼為 Jenkins
metadata.product_version 硬式編碼為 Jenkins
metadata.vendor_name 硬式編碼為 JENKINS
metadata.event_timestamp yearmonthdaytimeampm 欄位建構而成。

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