GitSync
GitSync 是由 Google SecOps 專業服務團隊建構的強大整合功能,可將 Google SecOps 元件與 Git 存放區同步。它會使用 git 的內部作業直接寫入存放區本身,基本上是做為檔案儲存服務。這個類別提供的方法可執行下列操作:
在 Google SecOps 執行個體之間遷移資產
備份 Google SecOps 資產
自動產生說明文件
建立「商店」來分享資產/知識
版本管控
用途
這項整合功能包含多個 Google SecOps 工作,包括每個支援資產的推送和提取工作,以及整個 Google SecOps 執行個體的推送/提取工作。這些工作不需要定期執行,因為是從 IDE 手動執行,但可以做為一般工作使用 (例如上傳每日提交)。
GitSync 會使用 Chronicle API 擷取相關資產 (例如整合或視覺化系列),並剖析該資產的所有可用資訊 (這些資訊稍後會轉譯為 README.md 檔案,通常會在瀏覽存放區時顯示)。接著,將資產 JSON 定義和算繪的 README 寫入本機存放區,並推送至遠端存放區。
GitSync 的另一項用途是知識分享。透過這項整合功能,您可以將 Git 存放區做為資產「商店」,存放先前設計的劇本或本體設定等資產,並運用 Google SecOps 最佳做法,將平台推向最佳狀態。
安全性更新:主機指紋固定 (GitSync V42.0)
GitSync V42.0 已發布安全強化功能,可支援主機指紋固定,防範中間人 (PITM) 攻擊。這項功能可確保 GitSync 整合功能只會連線至經過驗證的 Git 伺服器。
須知事項與必要行動
Host Fingerprint 欄位為選填,現有工作會繼續執行,不會受到影響。不過,我們強烈建議您立即設定這項功能,提升整合的安全性。
主機指紋是 Git 伺服器的專屬 ID。這項新功能會在連線時驗證這個專屬指紋,防止攻擊者冒用伺服器身分並攔截資料。
啟用主機指紋釘選
如要啟用主機指紋固定功能,您必須取得 Git 伺服器的指紋,並將其新增至整合設定。
尋找主機指紋:您可以從 Git 伺服器的說明文件或使用信任的方法,取得 Git 伺服器的公開金鑰指紋。如要使用
ssh-keyscan指令取得指紋,請在終端機中執行下列指令:ssh-keyscan -t rsa <hostname>舉例來說,如果是 GitHub,請執行
ssh-keyscan -t rsa github.com。輸出內容包含主機指紋,看起來類似這樣:github.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC...將指紋新增至整合服務: 將複製的指紋新增至 GitSync 整合服務設定的
Host Fingerprint欄位。
必要條件
推送/提取現有存放區:
Git 的驗證方式。支援使用者名稱/密碼組合 (不建議)、存取權杖 (建議) 和 Base64 編碼的 SSH 私密金鑰 (建議)。使用後兩者時,不需要 username 參數。
Google SecOps 本機使用者。用於匯入資產。使用者必須具備寫入目標模組的權限 (舉例來說,如果使用者無法存取 IDE,就無法提取整合項目)。
建立新的存放區
先前「推送/提取現有存放區」一節中提及的所有要點。
遠端存放區。建議存放區中至少要有 1 個檔案。建立存放區時,大多數 Git 服務都會提供建立 README 檔案的選項。
設定整合
您必須將整合功能設定為共用執行個體。無法連結至 Google SecOps SOAR 中的現有環境。
整合屬性
參數名稱 | 說明 |
存放區網址 | 存放區網址。使用使用者名稱/密碼驗證時,這個值開頭必須為 https://。如果使用 SSH 驗證,這個值必須以 git@ 或 ssh:// 開頭。(請參閱下方的「設定存放區網址和分支」)。 |
分支版本 | 要與存放區同步的分支版本。 |
Git 密碼/權杖/安全殼層金鑰 | Git 的驗證方式。這個值可以是 Git 密碼/權杖/SSH 私密金鑰。私密金鑰應編碼為 base64。支援 RSA 和 Ed25519。 |
Git 使用者名稱 | Git 使用者名稱。使用 SSH 驗證時,這個值並非必要。 |
修訂版本作者 |
非必填。可指定修訂版本的作者。這個值必須採用以下格式:使用者名稱 |
Google SecOps 驗證 SSL | 驗證 Google SecOps API 的 SSL |
Git 驗證 SSL | 向目標 Git 服務驗證 SSL |
設定存放區網址和分支
在本指南中,我們將示範如何在 Bitbucket 中取得正確的值 (請注意,GitHub 的程序相同)。
在 Bitbucket 中找出存放區。
按一下右上角的複製按鈕 (GitHub 中的程式碼)
使用者/密碼或權杖驗證 - 存放區網址為 https://bitbucket.org/siemplifyproserv/connectors.git。(可以忽略使用者名稱)
檢查目前的分支 (下圖中的 master)
使用範例
GitSync 中的每個作業都包含下列參數:
名稱 | 說明 |
工作專屬 - 連接器名稱、整合 ID、劇本許可清單等。 | 這些參數用於指定要推送或提取至存放區的內容。在 GitSync 中,資產會以 ID 參照。這些值會區分大小寫。 |
存放區網址和分支 | 新增對多個存放區的支援,並使用相同憑證。設定這些參數後,系統會忽略整合執行個體中設定的存放區。 |
修訂訊息 | 將資產推送至存放區時,必須提供提交訊息。您可以在這裡指定推送原因,指出資產中修正、變更或新增的內容。 |
Readme 外掛程式 | 新增在推送資產時擴充資產說明文件的功能。這個值可使用:
範本會新增至文件結尾,並儲存在存放區根目錄的 GitSync.json 中繼資料檔案中。 |
提取素材資源
在本例中,我們會擷取具有正確對應和視覺化系列的連接器。
- 首先,請確認資產位於已設定的儲存庫。只要瀏覽存放區目錄並複製資產 ID 即可 (通常是目錄名稱或 README 檔案的標題)。
Bitbucket 存放區中的範例,位於 Connectors 目錄。請注意,目錄是整合名稱,目錄內則是連接器的實際 ID。 在 Google SecOps IDE 中找到合適的工作。在本範例中,我們將使用「提取連線器」作業。
注意:拉動連接器時,請確認連接器整合也已安裝。
按一下「測試」分頁標籤,然後設定參數。由於我們使用一個存放區,且已在整合執行個體中設定該存放區,因此請將「存放區網址」和「分支」參數留空,並將其他參數設為所需值。
執行工作。
如要查看作業記錄,請參閱「偵錯輸出內容」。如果一切順利,記錄會顯示相關資訊。
- 前往 Google SecOps -> 連接器,然後設定連接器。
推送資產
在本範例中,我們會將劇本和區塊推送至存放區。
找出要推送的劇本。我們將在此推送名為「Failed Login」的新區塊,以及名為「Malicious Activity」的更新版劇本。
在 Google SecOps IDE 中找到合適的工作。在本範例中,我們將使用「Push Playbook」作業。
按一下「測試」分頁標籤,然後設定參數。
- 由於兩者位於同一個資料夾 (預設),您也可以改用資料夾允許清單。
執行工作。
如要查看作業記錄,請參閱「偵錯輸出內容」。如果一切順利,記錄會顯示相關資訊。
確認存放區包含最新版本的劇本。
建立新的存放區
如要建立新存放區,請務必先在存放區中加入單一檔案,再使用 GitSync 進行設定。建立存放區時,在存放區根目錄中加入 README 檔案,即可快速完成這項操作。
Bitbucket
GitHub
已知問題和限制
首次設定存放區後,系統會使用預先定義的目錄結構,確保瞭解每個資產的位置。如果未遵循目錄結構,或對存放區進行自訂提交或變更,整合功能就會發生故障。您可以在本文結尾找到存放區目錄結構的結構定義。
將這項整合功能用於公開存放區時,請務必謹慎小心。Google SecOps 資產會使用含有應用程式 ID、用戶端 ID、使用者名稱和其他私密資訊的參數。GitSync 無法判斷參數是否為機密資訊,因此系統會將所有非「Password」類型的參數上傳至存放區。此外,推送 Google SecOps 執行個體 (推送環境工作) 時,可以選擇提交密碼。這個選項會指示 GitSync 嘗試從整合設定匯出所有密碼參數。如果存放區是公開的,請勿將這個值設為 true,否則所有憑證都會在網路上洩漏。
提取 Google SecOps 執行個體 (提取環境工作) 時,安裝所有整合項目可能需要超過 5 分鐘,工作會因逾時而失敗。建議您事先從 Google Security Operations Marketplace 手動安裝所有商業整合項目,以免發生任何問題。不過,如果作業因逾時而失敗,也可以重新執行。
商業整合和自訂整合的處理方式不同。匯入/匯出作業會將自訂整合項目以完整的整合項目 ZIP 匯出檔案形式推送。系統只會推送自訂代碼,不會推送商業整合。提取後,GitSync 會從 Google SecOps Marketplace 安裝最新版本的整合項目,並將自訂程式碼儲存在官方整合項目中。
擷取對應時,事件實際擷取至 Google SecOps 之前,不會顯示在「設定」->「本體」->「本體狀態」表格中,因為這些事件尚未建立索引。
本機存放區會儲存在 /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,提取具有受限制權限的應對手冊
- 在來源系統中:
- 前往要透過 GitSync 同步處理的劇本。
- 開啟劇本的權限設定。
- 確認
AdministratorSOC 角色已新增至具有「可編輯」權限的實體清單。
- 調整來源系統的權限後,請在 GitSync 中執行「Push Playbook」(推送劇本)動作,更新 Git 存放區中的劇本及其權限。
- 在目標系統中,於 GitSync 執行「Pull Playbook」動作。
建立安全殼層金鑰,以便搭配 GitSync 使用
首先,請產生金鑰組。系統要求輸入通關密語時,請按下 Enter 鍵:
ssh-keygen -b 2048 -t rsa -f ./id_rsa系統會建立兩個檔案:id_rsa (私密金鑰) 和 id_rsa.pub (公開金鑰)。將私密金鑰存放在安全的地方。
在存放區中設定公開金鑰。舉例來說,在 Bitbucket 中輸入存放區的設定,然後按一下「存取金鑰」。按一下「新增金鑰」,然後將 id_rsa.pub 的內容貼到「金鑰」參數中。
私密金鑰必須先編碼為 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')))))
- Linux:
- 將列印的值複製到整合資源的「密碼/權杖/SSH 金鑰」,然後測試整合連線。
GitSync 存放區目錄結構
以下是遠端存放區中預期的目錄結構。
* 這是範例存放區的 tree 指令輸出內容。註解會以紅色顯示。

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