建構自訂整合項目
本文說明如何建構 Google SecOps 的自訂整合項目。目前的最佳做法是使用偏好的 IDE 在本機開發整合項目,並透過 GitHub 使用現代 GitOps 工作流程管理整合項目。如果是舊版環境或快速原型,您也可以直接在內建的 SOAR IDE 中建構整合。
本機 IDE 和 GitHub 工作流程 (建議)
建議您在本機開發整合項目,並透過 GitHub 管理。這種做法符合現代 GitOps 做法,可提升版本管控、協作和自動化依附元件管理。
概念工作流程總覽
如要在本機開發自訂整合,建議您遵循這個 GitOps 生命週期。如要查看這些指令的最新確切語法,請參閱 GitHub 上的官方 MP CLI 說明文件。
- 建立分支版本並複製:將官方
content-hub存放區複製到本機開發機器。 - 安裝工具:安裝
mpCLI 工具和uvPython 套件管理工具。 - 驗證:使用執行個體網址和 API 金鑰,透過 MP CLI 登入 Google SecOps 環境。
- 在本機開發:使用偏好的 IDE (例如 VS Code 或 PyCharm) 編寫整合代碼,並運用本機偵錯和測試工具。
- 管理依附元件:使用
uv在本機pyproject.toml檔案中宣告及管理依附元件 (例如TIPCommon)。 - 同步:使用
mp pull和mp push指令,將本機程式碼與 Google SecOps 執行個體同步,以便測試及部署。
替代方案:在內建 IDE 中建立自訂整合
如果您需要維護舊版整合、快速測試指令碼,或在本機開發受限的環境中工作,可以使用內建的 IDE。
用途:建構自訂 Armis 整合
如要在 IDE 中建立自訂整合,請按照下列步驟操作:
- 在主選單中,依序前往「Response」 > 「IDE」。
- 按一下「 建立新項目」,然後選取「整合」。
- 輸入名稱並按一下 [建立]。
整合項目現在會與「設定」 選項一併列出,表示這是自訂整合項目。
按一下「 settings Settings」(設定),即可顯示整合設定,您可以在其中定義圖示、說明、Python 依附元件和整合參數。
建立自訂管理員
管理工具是第三方工具 API 的包裝函式。雖然這並非必要,但如果整合項目會與外部工具互動,建議您使用這類工具。管理員不應從 SDK 匯入。建立後,請將其匯入連接器、動作和工作。
如要建立自訂管理工具,請按照下列步驟操作:
- 在 IDE 中,按一下「Create New Item」,然後選取「Manager」。
- 選取「Armis」整合項目,然後輸入管理員名稱。
- 編輯並執行下列指令碼:
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 憑證是否有效。
- 「遠端執行」核取方塊:這項設定可決定程式碼或工作是否要在遠端伺服器上執行,而非在本機執行。啟用這個選項後,系統會將必要的指令和資料傳送至專用伺服器進行處理。
如要更新參數,請按照下列步驟操作:
- 請輸入正確的憑證。
- 依序點選「儲存」>「測試」。
如果缺少 Ping 動作,「測試」按鈕會失敗,並顯示紅色 X。
實作 Ping 動作
Ping 動作的邏輯與成功驗證類似。
如要導入 Ping 動作,請按照下列步驟操作:
- 在 IDE 中,於 Armis 整合中建立新的動作,並命名為
Ping。 - 使用
ArmisManagerauth方法驗證。
啟用整合功能
如要啟用整合功能,請按照下列步驟操作:
- 在 「Response」>「IDE」中,將 「Enable/Disable」切換鈕設為 「ON」。
- 按一下 [儲存]。如果切換鈕變成綠色,代表操作成功。Content Hub 的憑證會傳遞至 ArmisManager。如果
auth順利完成,沒有任何錯誤,「Test」按鈕會顯示綠色勾號。
使用 extract_configuration_param 方法,從整合設定匯入參數。或者,您也可以使用 extract_action_param 在動作本身中定義參數。不過,Ping 動作應一律使用設定參數,因為這些參數會由 Content Hub 測試。
查看自訂整合項目
前往 Content Hub,搜尋您建立的自訂整合項目。如果您在初始設定期間未建立映像檔,系統會指派預設自訂映像檔。請注意,Content Hub 更新不會覆寫或刪除任何自訂整合。
在 IDE 中匯出及匯入
請執行下列其中一項動作:
- 如要匯入整合項目,請按照下列步驟操作:
- 上傳資料夾結構正確的 ZIP 檔案,整合項目就會顯示在 IDE 和 Content Hub 中。
- 按一下「匯入」。整合功能會同時顯示在 IDE 和 Content Hub 中。
- 系統會產生 ZIP 檔案,內含定義、指令碼和設定。系統不會自動納入「Managers」資料夾。
- 如要匯出整合,請按照下列步驟操作:
- 按一下「匯出」即可下載套件。
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求解答。