收集 ServiceNow CMDB 資料

支援的國家/地區:

本文說明如何使用第三方 API 設定 Google Security Operations 資訊提供,以收集 ServiceNow CMDB 資料。

事前準備

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

  • Google SecOps 執行個體
  • 具備管理控制台存取權的 ServiceNow 執行個體特殊存取權
  • 具備 cmdb_read 角色的 ServiceNow 使用者帳戶 (讀取存取權的最低要求)
  • ServiceNow 執行個體已啟用 REST API (預設為啟用)

設定 IP 許可清單

建立動態饋給前,請務必在 ServiceNow 防火牆或網路設定中,將 Google SecOps IP 範圍加入允許清單。

取得 Google SecOps IP 範圍

將 IP 範圍新增至 ServiceNow

  1. 以管理員身分登入 ServiceNow 執行個體
  2. 依序前往「All」(全部) >「System Security」(系統安全性) >「IP Address Access Control」(IP 位址存取控管)
  3. 點選「New」(新增)
  4. 請提供下列設定詳細資料:
    • 類型:選取「允許」
    • IP 位址:以 CIDR 標記法輸入一個 Google SecOps IP 範圍 (例如 192.0.2.0/24)。
    • 名稱:輸入描述性名稱 (例如 GGoogle SecOps IP Range 1)。
    • 「啟用」:勾選核取方塊即可啟用規則。
  5. 按一下「提交」
  6. 針對每個額外的 Google SecOps IP 範圍,重複執行步驟 3 到 5。

設定 ServiceNow API 存取權

如要讓 Google SecOps 擷取 CMDB 資料,請建立具備適當權限的 ServiceNow 使用者。

  1. 登入 ServiceNow 管理控制台
  2. 依序前往「All」(全部) >「User Administration」(使用者管理) >「Users」(使用者)。
  3. 點選「New」(新增)
  4. 請提供下列設定詳細資料:
    • 使用者 ID:輸入描述性使用者名稱 (例如 google_secops_integration)。
    • 名字:輸入 Google
    • 姓氏:輸入 SecOps Integration
    • 電子郵件:輸入有效的電子郵件地址,以接收通知。
    • 密碼:按一下「設定密碼」,然後設定高強度密碼。
    • 啟用:選取核取方塊。
    • 僅限存取 Web 服務:選取核取方塊 (建議僅限存取 API 時選取)。
  5. 按一下「提交」

指派必要權限

  1. 建立使用者後,開啟使用者記錄。
  2. 前往「角色」部分。
  3. 按一下 [編輯]
  4. 在「集合」清單中,搜尋並新增下列角色:
    • cmdb_read:提供 CMDB 表格的讀取權限。
  5. 按一下 [儲存]

記錄 API 憑證

建立使用者後,請記錄下列憑證:

  • 使用者名稱:您建立的使用者 ID (例如 google_secops_integration)
  • 密碼:您為使用者設定的密碼
  • API 主機名稱:ServiceNow 執行個體 FQDN (例如 myinstance.servicenow.com)
    • 請勿加入 https:// 或任何路徑。
    • 請勿加入結尾斜線。
  • 資料表名稱:要查詢的 CMDB 資料表 (例如 cmdb_cicmdb_ci_servercmdb_ci_computer)

瞭解 ServiceNow CMDB 資料表

ServiceNow CMDB 會以階層式資料表結構呈現。最常見的資產資料擷取表格包括:

資料表名稱 說明 用途
cmdb_ci 基礎設定項目表 (所有 CI 表的父項) 所有設定項目
cmdb_ci_server 伺服器設定項目 實體和虛擬伺服器
cmdb_ci_computer 電腦設定項目 工作站、筆電、桌機
cmdb_ci_linux_server Linux 伺服器設定項目 特別是 Linux 伺服器
cmdb_ci_win_server Windows 伺服器設定項目 Windows 伺服器
cmdb_ci_vm_instance 虛擬機器執行個體 虛擬機器
cmdb_ci_network_adapter 網路介面卡 網路介面卡
cmdb_ci_ip_address IP 位址 IP 位址記錄
cmdb_ci_service 商業服務 服務目錄項目
cmdb_ci_appl 應用程式 應用程式設定項目

驗證 REST API 存取權

建立動態饋給前,請先確認 ServiceNow API 憑證可正常運作。

使用 REST API Explorer 進行測試 (選用)

  1. 以整合使用者身分登入 ServiceNow 執行個體
  2. 依序前往「All」>「System Web Services」>「REST」>「REST API Explorer」
  3. 從命名空間下拉式選單中選取「Table API」
  4. 選取「Retrieve records from a table (GET)」(從表格中擷取記錄 (GET))
  5. 在「路徑參數」中,輸入資料表名稱 (例如 cmdb_ci)。
  6. 按一下 [傳送]
  7. 確認回應狀態為 200 OK,且系統已傳回記錄。

使用 curl 進行測試 (選用)

  • 或者,您也可以使用 curl 測試 API:

    curl "https://your-instance.service-now.com/api/now/table/cmdb_ci?sysparm_limit=10" \
    --request GET \
    --header "Accept: application/json" \
    --user 'your-username':'your-password'
    
    • 取代:
      • your-instance.service-now.com:ServiceNow 執行個體主機名稱
      • your-username:整合使用者的使用者名稱
      • your-password:整合使用者密碼

成功的回應會傳回含有設定項目的 JSON 資料。

設定動態饋給

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

  1. 依序前往「SIEM 設定」>「動態饋給」
  2. 按一下「新增動態消息」
  3. 在下一個頁面中,按一下「設定單一動態饋給」
  4. 在「動態饋給名稱」欄位中,輸入動態饋給的名稱 (例如 ServiceNow CMDB - All CIsServiceNow CMDB - Servers)。
  5. 選取「第三方 API」做為「來源類型」
  6. 選取「ServiceNow CMDB」做為「記錄類型」
  7. 點選「下一步」
  8. 指定下列輸入參數的值:

    • 使用者名稱:輸入 ServiceNow 使用者 ID (例如 google_secops_integration)。
    • 密鑰:輸入 ServiceNow 使用者密碼。 重要事項:這是機密欄位,密碼會經過加密處理,儲存後就無法查看。
    • API 主機名稱:輸入 ServiceNow 執行個體的完整網域名稱。
      • 示例:myinstance.servicenow.com
      • 請勿加入:
        • 通訊協定 (https://)
        • 路徑 (/api/now/table/)
        • 尾端斜線
    • 區域執行個體:如果 ServiceNow 執行個體位於特定區域,請使用正確的主機名稱格式:
      • 標準:instance.service-now.com
      • 歐盟:instance.service-now.eu
      • 其他地區:請與 ServiceNow 管理員確認
    • 資料表名稱:輸入要查詢的 ServiceNow CMDB 資料表。
      • 例如:
        • cmdb_ci (所有設定項目)
        • cmdb_ci_server (所有伺服器)
        • cmdb_ci_computer (工作站和電腦)
        • cmdb_ci_linux_server (僅限 Linux 伺服器)
        • cmdb_ci_win_server (僅限 Windows 伺服器) 注意:表格名稱會區分大小寫,且必須完全相符。每個動態饋給只能查詢一個資料表。如要擷取多個資料表,請為每個資料表分別建立動態饋給。
    • 資產命名空間資產命名空間
    • 擷取標籤:要套用至這個動態饋給事件的標籤。
  9. 點選「下一步」

  10. 在「Finalize」(完成) 畫面中檢查新的動態饋給設定,然後按一下「Submit」(提交)

設定完成後,動態消息就會開始從 ServiceNow 執行個體擷取 CMDB 記錄。視表格中的記錄數量而定,初始同步可能需要幾分鐘。

擷取多個 CMDB 資料表

如要從多個 CMDB 資料表擷取資料,請為每個資料表建立個別動態饋給:

  1. 按照上述步驟建立第一個動態饋給 (例如 cmdb_ci_server)。
  2. 按一下「新增動態饋給」即可建立其他動態饋給。
  3. 使用相同的 ServiceNow 憑證,但指定不同的資料表名稱。

設定範例:

動態饋給名稱 資料表名稱 目的
ServiceNow CMDB - 伺服器 cmdb_ci_server 所有伺服器 CI
ServiceNow CMDB - 電腦 cmdb_ci_computer 工作站 CI
ServiceNow CMDB - 網路介面卡 cmdb_ci_network_adapter 網路介面 CI
ServiceNow CMDB - 應用程式 cmdb_ci_appl 應用程式 CI

必要的 API 權限

整合使用者必須具備下列 ServiceNow 權限:

權限/角色 存取層級 目的
cmdb_read 讀取 擷取 CMDB 設定項目資料

其他角色 (選用):

  • itil:如要建立或更新 CI,必須具備寫入權限 (Google SecOps 擷取作業則不需此權限)
  • rest_api_explorer:有助於在設定期間測試 API 存取權

UDM 對應表

ServiceNow 欄位 UDM 對應 邏輯
name entity.asset.hostname 資產的主要主機名稱
ip_address entity.asset.ip 資產的主要 IP 位址
mac_address entity.asset.mac 資產的 MAC 位址
serial_number entity.asset.hardware.serial_number 硬體序號
asset_tag entity.asset.asset_id 資產標記或 ID
sys_class_name entity.asset.asset_type CI 類別 (伺服器、電腦等)
os entity.asset.platform_software.platform 作業系統
sys_created_on entity.asset.first_seen_time 素材資源建立時間戳記
sys_updated_on entity.asset.last_seen_time 上次更新時間戳記
location entity.asset.location.name 實際位置
company entity.asset.attribute.labels.value 擁有公司/機構

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