建構自訂整合項目

支援:

本文說明如何建構 Google SecOps 的自訂整合項目。目前的最佳做法是使用偏好的 IDE 在本機開發整合項目,並透過 GitHub 使用現代 GitOps 工作流程管理整合項目。如果是舊版環境或快速原型,您也可以直接在內建的 SOAR IDE 中建構整合。

建議您在本機開發整合項目,並透過 GitHub 管理。這種做法符合現代 GitOps 做法,可提升版本管控、協作和自動化依附元件管理。

概念工作流程總覽

如要在本機開發自訂整合,建議您遵循這個 GitOps 生命週期。如要查看這些指令的最新確切語法,請參閱 GitHub 上的官方 MP CLI 說明文件。

  1. 建立分支版本並複製:將官方 content-hub 存放區複製到本機開發機器。
  2. 安裝工具:安裝 mp CLI 工具和 uv Python 套件管理工具。
  3. 驗證:使用執行個體網址和 API 金鑰,透過 MP CLI 登入 Google SecOps 環境。
  4. 在本機開發:使用偏好的 IDE (例如 VS Code 或 PyCharm) 編寫整合代碼,並運用本機偵錯和測試工具。
  5. 管理依附元件:使用 uv 在本機 pyproject.toml 檔案中宣告及管理依附元件 (例如 TIPCommon)。
  6. 同步:使用 mp pull 和 mp push 指令,將本機程式碼與 Google SecOps 執行個體同步,以便測試及部署。

替代方案:在內建 IDE 中建立自訂整合

如果您需要維護舊版整合、快速測試指令碼,或在本機開發受限的環境中工作,可以使用內建的 IDE。

用途:建構自訂 Armis 整合

如要在 IDE 中建立自訂整合,請按照下列步驟操作:

  1. 在主選單中,依序前往「Response」 > 「IDE」。
  2. 按一下「 建立新項目」,然後選取「整合」。
  3. 輸入名稱並按一下 [建立]。

整合項目現在會與「設定」 選項一併列出,表示這是自訂整合項目。

按一下「 settings Settings」(設定),即可顯示整合設定,您可以在其中定義圖示、說明、Python 依附元件和整合參數。

建立自訂管理員

管理工具是第三方工具 API 的包裝函式。雖然這並非必要,但如果整合項目會與外部工具互動,建議您使用這類工具。管理員不應從 SDK 匯入。建立後,請將其匯入連接器、動作和工作。

如要建立自訂管理工具,請按照下列步驟操作:

  1. 在 IDE 中,按一下「Create New Item」,然後選取「Manager」。
  2. 選取「Armis」整合項目,然後輸入管理員名稱。
  3. 編輯並執行下列指令碼:
import requests


class ArmisManager:
   def init(self, api_root, api_token):
       self.api_root = api_root
       self.api_token = api_token
       self.session = requests.session()
       self.session.headers = {"Accept": "application/json"}


   def auth(self):
       endpoint = "{}/api/vi/access_token/*"
       params = {"secret_key" : self.api_token}
       response = self.session.post(endpoint.format(self.api_root), params=params)
       self.validate_response(response)
       access_token = response.json()["data"]["access_token"]
       self.session.headers.update({"Authorization": access_token})
       return True


   def get_device_by_ip(self, device_ip):
       endpoint = "{}/api/vi/devices/"
       params = {"ip": device_ip}
       response = self.session.get(endpoint.format(self.api_root), params=params)
       self.validate_response(response)
       return response.json()["data"]["data"]


   @staticmethod
   def validate_response(res, error_msg="An error occurred"):
       """Validate a response


       :param res: (requests. Response) The response to validate
       :param error_msg: (str) The error message to display
       """
       try:
           res.raise_for_status()
       except requests.HTTPError as error:
           raise Exception("(error_msg): (error) (text)".format(
               error_msg=error_msg,
               error=error,
               text=error.response.content
           ))

參數、Google SecOps Content Hub 設定和 Ping 動作

整合設定中定義的參數會顯示在 Google SecOps Content Hub 設定中。參數包括:

  • API 根目錄:要連結的服務基準網址。
  • API 密鑰:用於向服務驗證應用程式的機密金鑰。
  • 「Verify SSL」核取方塊:勾選後,系統會驗證連至 Armis 伺服器的 SSL 憑證是否有效。
  • 「遠端執行」核取方塊:這項設定可決定程式碼或工作是否要在遠端伺服器上執行,而非在本機執行。啟用這個選項後,系統會將必要的指令和資料傳送至專用伺服器進行處理。

如要更新參數,請按照下列步驟操作:

  1. 請輸入正確的憑證。
  2. 依序點選「儲存」>「測試」。

如果缺少 Ping 動作,「測試」按鈕會失敗,並顯示紅色 X。

實作 Ping 動作

Ping 動作的邏輯與成功驗證類似。

如要導入 Ping 動作,請按照下列步驟操作:

  1. 在 IDE 中,於 Armis 整合中建立新的動作,並命名為 Ping。
  2. 使用 ArmisManager auth 方法驗證。

啟用整合功能

如要啟用整合功能,請按照下列步驟操作:

  1. 在 「Response」>「IDE」中,將 「Enable/Disable」切換鈕設為 「ON」。
  2. 按一下 [儲存]。如果切換鈕變成綠色,代表操作成功。Content Hub 的憑證會傳遞至 ArmisManager。如果 auth 順利完成,沒有任何錯誤,「Test」按鈕會顯示綠色勾號。

使用 extract_configuration_param 方法,從整合設定匯入參數。或者,您也可以使用 extract_action_param 在動作本身中定義參數。不過,Ping 動作應一律使用設定參數,因為這些參數會由 Content Hub 測試。

查看自訂整合項目

前往 Content Hub,搜尋您建立的自訂整合項目。如果您在初始設定期間未建立映像檔,系統會指派預設自訂映像檔。請注意,Content Hub 更新不會覆寫或刪除任何自訂整合。

在 IDE 中匯出及匯入

請執行下列其中一項動作:

  • 如要匯入整合項目,請按照下列步驟操作:
    1. 上傳資料夾結構正確的 ZIP 檔案,整合項目就會顯示在 IDE 和 Content Hub 中。
    2. 按一下「匯入」。整合功能會同時顯示在 IDE 和 Content Hub 中。
    3. 系統會產生 ZIP 檔案,內含定義、指令碼和設定。系統不會自動納入「Managers」資料夾。
  • 如要匯出整合,請按照下列步驟操作:
    • 按一下「匯出」即可下載套件。

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