GitSync

支援的國家/地區:

GitSync 是由 Google Security Operations SOAR 專業服務團隊建構的強大整合功能,可將 Google Security Operations SOAR 元件與 Git 存放區同步處理。它會使用 git 的內部作業直接寫入存放區本身,基本上是做為檔案儲存服務。這個類別提供的方法可執行下列操作:

  • 在 Google Security Operations SOAR 執行個體之間遷移資產

  • 備份 Google Security Operations SOAR 資產

  • 自動產生說明文件

  • 建立「商店」來分享資產/知識

  • 版本管控

這項整合功能包含多個 Google Security Operations SOAR 工作,包括每個支援資產的推送和提取工作,以及整個 Google Security Operations SOAR 執行個體的推送/提取工作。這些工作不需要定期執行,因為是從 IDE 手動執行,但可以做為一般工作使用 (例如上傳每日提交)。

GitSync 會使用 Google Security Operations SOAR API 擷取相關資產 (例如整合或視覺化系列),並剖析該資產的所有可用資訊 (這些資訊稍後會轉譯為 README.md 檔案,通常會在瀏覽存放區時顯示)。接著,將資產 JSON 定義和算繪的 README 寫入本機存放區,並推送至遠端存放區。

GitSync 的另一項用途是知識分享。透過這項整合功能,git 存放區可做為資產的「商店」,例如先前設計的應對手冊或本體設定,並運用 Google Security Operations SOAR 最佳做法,將平台推向最佳狀態。

必要條件

推送/提取現有存放區:

  • Git 的驗證方式。支援使用者名稱/密碼組合 (不建議)、存取權杖 (建議) 和 Base64 編碼的 SSH 私密金鑰 (建議)。使用後兩者時,不需要 username 參數。

  • 本機 Google Security Operations SOAR 使用者。用於匯入資產。使用者必須具備寫入目標模組的權限 (例如,無法存取 IDE 的使用者就無法提取整合)。

建立新的存放區

  • 先前「推送/提取現有存放區」一節中提及的所有要點。

  • 遠端存放區。建議存放區中至少要有 1 個檔案。建立存放區時,大多數 Git 服務都會提供建立 README 檔案的選項。

設定整合

您必須將整合功能設定為共用執行個體。無法連結至 Google SecOps SOAR 中的現有環境。

整合屬性

參數名稱

說明

存放區網址

存放區網址。使用使用者名稱/密碼驗證時,這個值開頭必須為 https://。如果使用 SSH 驗證,這個值必須以 git@ 或 ssh:// 開頭。(請參閱下方的「設定存放區網址和分支」)。

分支版本

要與存放區同步的分支版本。

Git 密碼/權杖/安全殼層金鑰

Git 的驗證方式。這個值可以是 Git 密碼/權杖/SSH 私密金鑰。私密金鑰應採用 Base64 編碼。支援 RSA 和 Ed25519。

Git 使用者名稱

Git 使用者名稱。使用 SSH 驗證時,這個值並非必要。

修訂版本作者

非必填。可指定修訂版本的作者。這個值必須採用以下格式:使用者名稱

Google Security Operations SOAR 驗證 SSL

驗證 Google Security Operations SOAR API 的 SSL

Git 驗證 SSL

向目標 Git 服務驗證 SSL

設定存放區網址和分支

在本指南中,我們將示範如何在 Bitbucket 中取得正確的值 (請注意,GitHub 的程序相同)。


  1. 在 Bitbucket 中找出存放區。

    gitsync1

  2. 按一下右上角的複製按鈕 (GitHub 中的程式碼)

    • SSH 驗證 - 存放區網址為 git@bitbucket.org:siemplifyproserv/connectors.git

      gitsync2

  3. 使用者/密碼或權杖驗證 - 存放區網址為 https://bitbucket.org/siemplifyproserv/connectors.git。(可忽略使用者名稱)

    gitsync3

  4. 檢查目前的分支 (下圖中的 master)

    gitsync4

使用範例

GitSync 中的每個作業都包含下列參數:


名稱

說明

工作專屬 - 連接器名稱、整合 ID、劇本許可清單等。

這些參數用於指定要推送或提取至存放區的內容。在 GitSync 中,資產會以 ID 參照。這些值會區分大小寫。

存放區網址和分支

新增對多個存放區的支援,這些存放區使用相同的憑證。設定這些參數後,系統會忽略整合執行個體中設定的存放區。

修訂訊息

將資產推送至存放區時,必須提供提交訊息。您可以在這裡指定推送原因,指出資產中修正、變更或新增的內容。

Readme Addon

新增在推送資產時擴充資產說明文件的功能。這個值可使用:

  • Markdown 語法 - Git 供應商 (例如 GitHub 和 Bitbucket) 的 README 檔案支援此語法

  • Jinja - 顯示資產相關資訊。請參閱整合管理工具常數中的範例

範本會新增至文件結尾,並儲存在存放區根目錄的 GitSync.json 中繼資料檔案中。


提取資產

在本例中,我們會擷取具有正確對應和視覺化系列的連接器。

  1. 首先,請確認資產位於已設定的存放區。只要瀏覽存放區目錄,然後複製資產 ID 即可 (通常是目錄名稱或 README 檔案的標題)。
    gitsync5

    Bitbucket 存放區中的範例,位於 Connectors 目錄。請注意,目錄是整合名稱,目錄內則是連接器的實際 ID。
  2. 在 Google Security Operations SOAR IDE 中找到合適的工作。在本範例中,我們將使用「提取連接器」作業。

    • 注意:拉取連接器時,請確認連接器整合也已安裝。

  3. 按一下「測試」分頁標籤,然後設定參數。由於我們使用一個存放區,且已在整合執行個體中設定該存放區,因此請將「存放區網址」和「分支」參數留空,並將其他參數設為所需值。

  4. 執行工作。

  5. 如要查看作業記錄,請參閱「偵錯輸出內容」。如果一切順利,記錄會顯示相關資訊。

  6. 前往 Google Security Operations SOAR -> 連接器,然後設定連接器。


推送資產

在本範例中,我們會將劇本和區塊推送至存放區。

  1. 找出要推送的劇本。我們將在此推送名為「Failed Login」的新區塊,以及名為「Malicious Activity」的更新版劇本。

    gitsync7

  2. 在 Google Security Operations SOAR IDE 中找到合適的工作。在本範例中,我們將使用「Push Playbook」作業。

  3. 按一下「測試」分頁標籤,然後設定參數。

  4. 由於兩者位於同一個資料夾 (預設),您也可以改用資料夾允許清單。
  5. 執行工作。

  6. 如要查看作業記錄,請參閱「偵錯輸出內容」。如果一切順利,記錄會顯示相關資訊。

  7. 確認存放區包含最新版本的劇本。


建立新的存放區

如要建立新存放區,請務必先在存放區中加入單一檔案,再使用 GitSync 進行設定。建立存放區時,在存放區根目錄中加入 README 檔案,即可快速完成這項操作。
Bitbucket

gitsync8

GitHub

gitsync9

已知問題和限制

  • 首次設定存放區後,系統會使用預先定義的目錄結構,確保瞭解每個資產的位置。如果未遵循目錄結構,或對存放區進行自訂提交或變更,整合功能就會發生故障。您可以在本文結尾找到存放區目錄結構的結構定義。

  • 將這項整合功能用於公開存放區時,請務必謹慎小心。Google Security Operations SOAR 資產會使用含有應用程式 ID、用戶端 ID、使用者名稱和其他私密資訊的參數。GitSync 無法判斷參數是否為機密資訊,因此系統會將所有非「Password」類型的參數上傳至存放區。此外,推送 Google Security Operations SOAR 執行個體 (推送環境作業) 時,可以選擇提交密碼。這個選項會指示 GitSync 嘗試從整合設定匯出所有密碼參數。如果存放區是公開的,請勿將這個值設為 true,否則所有憑證都會在網路上洩漏。

  • 提取 Google Security Operations SOAR 執行個體 (提取環境工作) 時,安裝所有整合項目可能需要超過 5 分鐘,工作會因逾時而失敗。建議您事先從 Google Security Operations Marketplace 手動安裝所有商業整合項目,以免發生任何問題。不過,如果作業因逾時而失敗,也可以重新執行。

  • 商業整合和自訂整合的處理方式不同。自訂整合功能會以整合功能的完整 ZIP 匯出檔案形式推送,以進行匯入/匯出作業。系統只會推送自訂代碼,不會推送商業整合。提取後,GitSync 會從 Google SecOps Marketplace 安裝最新版本的整合項目,並將自訂程式碼儲存在官方整合項目中。

  • 擷取對應時,事件實際擷取至 Google Security Operations SOAR 之前,對應不會顯示在「設定」->「本體」->「本體狀態」表格中,因為對應尚未建立索引。

  • 本機存放區會儲存在 /opt/siemplify/siemplify_server/GitSyncFiles/{RepoName} 中。由於整合功能會寫入 Git 物件而非檔案,這個資料夾不代表存放區,且每當執行作業時,系統都會覆寫所有變更。建議使用存放區的其他副本,而非 GitSync 建立的副本。

  • 如果劇本的權限受限 (例如預設權限設為「可查看」),您必須在來源系統中設定特定權限,才能透過 GitSync 順利同步。詳情請參閱「使用應對手冊權限」。

  • Google SecOps 支援使用 GitSync 備份 SOAR 資產。不過,Google SecOps 不支援使用 GitSync 在系統間「發布」SOAR 資產。這可能會導致非預期的結果,因為資料庫物件可能不具唯一性。


使用應對手冊權限

使用 GitSync 同步處理權限受限的應對手冊 (例如預設權限設為「可查看」,或使用其他非預設設定) 時,如果目的地系統缺少修改應對手冊的授權,可能會發生錯誤。這是因為 GitSync 使用具有 Administrator SOC 角色權限的內部系統 API 金鑰執行動作。如要確保應對手冊順利同步,請在來源系統中,為這些應對手冊授予 Administrator SOC 角色「可以編輯」權限。

啟用 GitSync,提取具有受限制權限的應對手冊

  1. 在來源系統中:
    1. 前往要透過 GitSync 同步處理的劇本。
    2. 開啟劇本的權限設定。
    3. 確認Administrator SOC 角色已新增至具有「可編輯」權限的實體清單。
  2. 調整來源系統的權限後,請在 GitSync 中執行「Push Playbook」(推送劇本)動作,更新 Git 存放區中的劇本及其權限。
  3. 在目標系統中,於 GitSync 執行「Pull Playbook」動作。

建立安全殼層金鑰,以便搭配 GitSync 使用

  1. 首先,請產生金鑰組。系統要求輸入通關密語時,請按下 Enter 鍵: ssh-keygen -b 2048 -t rsa -f ./id_rsa

    系統會建立兩個檔案:id_rsa (私密金鑰) 和 id_rsa.pub (公開金鑰)。將私密金鑰存放在安全的地方。

  2. 在存放區中設定公開金鑰。舉例來說,在 Bitbucket 中,輸入存放區的設定,然後按一下「存取金鑰」。按一下「新增金鑰」,然後將 id_rsa.pub 的內容貼到「金鑰」參數中。

  3. 私密金鑰必須先編碼為 Base64,才能新增至整合設定。

    使用下列指令編碼檔案:

    • Linux:
      cat id_rsa | base64 -w 0
    • Windows:

      開啟 id_rsa 所在的 PowerShell,然後貼上 (這是單行):

      Write-Output [System.Text.Encoding]::ASCII.GetString([convert]::ToBase64String(([IO.File]::ReadAllBytes((Join-Path (pwd) 'id_rsa')))))
  4. 將列印的值複製到整合資源的「密碼/權杖/SSH 金鑰」,然後測試整合連線。

GitSync 存放區目錄結構

遠端存放區的預期目錄結構如下。

* 這是範例存放區的 tree 指令輸出內容。註解會以紅色顯示。


gitsync10

gitsync11

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