將 GRR Rapid Response 與 Google SecOps 整合

本文說明如何設定 GRR Rapid Response,並與 Google Security Operations (Google SecOps) 整合。

整合版本:8.0

整合參數

整合 GRR 快速回應功能時,需要下列參數:

參數 說明
API Root

必填。

伺服器網址。

預設值為 https://IP_ADDRESS:8000

Username

必填。

GRR 快速回應伺服器使用者名稱。

Password

必填。

GRR Rapid Response 伺服器密碼。

Verify SSL

選填。

如果選取這個選項,整合服務會在連線至 GRR Rapid Response 伺服器時驗證 SSL 憑證。

預設為未選取。

如需在 Google SecOps 中設定整合功能的操作說明,請參閱「設定整合功能」。

如有需要,您可以在稍後階段進行變更。設定整合執行個體後,您就可以在劇本中使用該執行個體。如要進一步瞭解如何設定及支援多個執行個體,請參閱「支援多個執行個體」。

動作

如要進一步瞭解動作,請參閱「 從工作台回覆待處理動作」和「執行手動動作」。

取得用戶端詳細資料

使用「取得客戶詳細資料」動作,取得客戶完整詳細資料。

這項操作不會在 Google SecOps 實體上執行。

動作輸入內容

「取得用戶端詳細資料」動作需要下列參數:

參數 說明
Client ID

必填。

用戶端的 ID。這個參數接受以逗號分隔的多個值。

動作輸出內容

「取得用戶端詳細資料」動作會提供下列輸出內容:

動作輸出類型 可用性
案件總覽附件 無法使用
案件總覽連結 無法使用
案件訊息牆表格 可用
補充資訊表格 無法使用
JSON 結果 可用
輸出訊息 可用
指令碼結果 可用
案件訊息牆表格

「取得用戶端詳細資料」動作可產生下表:

資料表名稱:GRR Clients Details

資料表欄:

  • 用戶端 ID
  • 主機
  • OS 版本
  • 標籤
  • 記憶體大小
  • 用戶端版本
  • 首次出現
  • 上次查看時間
  • 作業系統安裝日期
JSON 結果

以下範例顯示使用「Get Client Details」(取得用戶端詳細資料) 動作時收到的 JSON 結果輸出內容:

[
        {
            "HardwareInfo": {
                "system_product_name": "HVM domU",
                "bios_rom_size": "64 kB",
                "bios_vendor": "Xen",
                "system_sku_number": "Not Specified",
                "system_family": "Not Specified",
                "system_uuid": "UUID",
                "system_manufacturer": "Xen",
                "bios_release_date": "08/24/2006",
                "bios_version": "4.2.amazon",
                "serial_number": "UUID",
                "bios_revision": "4.2"
            },
            "LastClock": 1535907460060247,
            "Interfaces": [
                {
                    "ifname": "lo",
                    "addresses": [
                        {
                            "packed_bytes": "fwAAAQ==",
                            "address_type": "INET"
                        },
                        {
                            "packed_bytes": "AAAAAAAAAAAAAAAAAAAAAQ==",
                            "address_type": "INET6"
                        }
                    ],
                    "mac_address": "MAC_ADDRESS"
                },
                {
                    "ifname": "eth0",
                    "addresses": [
                        {
                            "packed_bytes": "rB8sWw==",
                            "address_type": "INET"
                        },
                        {
                            "packed_bytes": "/oAAAAAAAAAE1kv//h5yfg==",
                            "address_type": "INET6"
                        }
                    ],
                    "mac_address": "MAC_ADDRESS"
                }
            ],
            "OS": {
                "kernel": "4.4.0-1065-aws",
                "install_date": 1534280169000000,
                "system": "Linux",
                "fqdn": "ip-192-0-2-91.example",
                "machine": "x86_64",
                "version": "16.4",
                "release": "Ubuntu"
            },
            "AgentInfo": {
                "client_name": "grr",
                "client_description": "grr linux amd64",
                "client_version": 3232,
                "build_time": "2018-06-28 09:37:57"
            },
            "Labels": [],
            "LastBootedAt": 1535292604000000,
            "FirstSeenAt": 1535293827970976,
            "User": [],
            "Volumes": [
                {
                    "total_allocation_units": 50808745,
                    "bytes_per_sector": 4096,
                    "sectors_per_allocation_unit": 1,
                    "unixvolume": {
                        "mount_point": "/"
                    },
                    "actual_available_allocation_units": 50027766
                }
            ],
            "LastCrashAt": null,
            "LastSeenAt": 1535907460075229,
            "ID": "CLIENT_ID"
        }
]
輸出訊息

「取得用戶端詳細資料」動作可傳回下列輸出訊息:

輸出訊息 訊息說明

Successfully fetched details for the following clients: CLIENT_ID_LIST.

Could not fetch details for the specified clients. CLIENT_ID does not exist.

動作成功。
Error executing action "Get Client Details". Reason: ERROR_REASON

動作失敗。

檢查伺服器的連線、輸入參數或憑證。

指令碼結果

下表列出使用「取得用戶端詳細資料」動作時,指令碼結果輸出的值:

指令碼結果名稱
is_success TrueFalse

取得搜尋詳細資料

使用「Get Hunt Details」動作擷取搜尋詳細資料。

這項操作不會在 Google SecOps 實體上執行。

動作輸入內容

「Get Hunt Details」動作需要下列參數:

參數 說明
Hunt ID

必填。

要擷取的搜尋 ID。這個參數接受以逗號分隔的多個值。

動作輸出內容

「Get Hunt Details」動作會提供下列輸出內容:

動作輸出類型 可用性
案件總覽附件 無法使用
案件總覽連結 可用
案件訊息牆表格 無法使用
補充資訊表格 無法使用
JSON 結果 可用
輸出訊息 可用
指令碼結果 可用

「取得搜尋詳細資料」動作可產生下列連結:

API_ROOT/#/hunts/HUNT_ID

JSON 結果

以下範例顯示使用「Get Hunt Details」動作時收到的 JSON 結果輸出內容:

[
        {
            "Name": "ExampleHunt",
            "Expires": 1537063517000000,
            "Description": "test",
            "Creator": "admin",
            "IsRobot": false,
            "Status": "PAUSED",
            "Hunt_ID": "HUNT_ID",
            "Created": 1535853917657925,
            "Start_Time": 1535853917657925,
            "Duration": "2w",
            "Expiration time": " ",
            "Crash_limit": 100,
            "Client_limit": 100,
            "Client_rate (clients/min)": "20.5",
            "Client_Queued": "20.5",
            "Client_Scheduled": "20.5",
            "Client_Outstanding": "20.5",
            "Client_Completed": "20.5",
            "Client_with Results": "20.5",
            "Results": "20.5",
            "Total_CPU_Time_Used": "20.5",
            "Total_Network_Traffic": "20.5",
            "Flow_Name": "KeepAlive",
            "Flow_Arguments": "20.5",
            "Client_Rule_Set": " "
        }
]
輸出訊息

「Get Hunt Details」(取得搜尋詳細資料) 動作可傳回下列輸出訊息:

輸出訊息 訊息說明

Successfully fetched details for the HUNT_ID hunt.

Could not fetch details for the specified hunts. HUNT_ID does not exist.

動作成功。
Error executing action "Get Hunt Details". Reason: ERROR_REASON

動作失敗。

檢查伺服器的連線、輸入參數或憑證。

指令碼結果

下表列出使用「Get Hunt Details」動作時,指令碼結果輸出的值:

指令碼結果名稱
is_success TrueFalse

列出用戶端

使用「列出客戶」動作搜尋客戶並與他們互動。

這項操作不會在 Google SecOps 實體上執行。

動作輸入內容

「列出用戶端」動作需要下列參數:

參數 說明
Offset

選填。

搜尋用戶端的起點 (位移)。

Max Results To Return

選填。

每個回應中傳回的用戶端數量上限。

預設值為 5

動作輸出內容

「列出用戶端」動作會提供下列輸出內容:

動作輸出類型 可用性
案件總覽附件 無法使用
案件總覽連結 無法使用
案件訊息牆表格 可用
補充資訊表格 無法使用
JSON 結果 可用
輸出訊息 可用
指令碼結果 可用
案件訊息牆表格

「列出用戶端」動作可產生下表:

表格名稱:GRR Clients

資料表欄:

  • 用戶端 ID
  • 主機
  • OS 版本
  • 首次出現
  • 用戶端版本
  • 標籤
  • 上次確認身體狀況
  • 作業系統安裝日期
JSON 結果

以下範例顯示使用「列出用戶端」動作時收到的 JSON 結果輸出內容:

[{
    "Client_ID": "CLIENT_ID",
    "Agent_Info":{
       "Client_Name": "example",
       "Client_Version": 3420}
    "OS_Info":{
       "System": "Linux",
       "Release": "Ubuntu",
       "Architecture": "x86_64",
       "Installation_Time": "2020-04-09 13:44:17 UTC",
       "Kernel": "4.15.0-96-generic",
       "Version": "18.04"}
    "Client_Last_Booted_At": "",
    "Client_First_Seen_At": "2020-09-25 14:26:38 UTC",
    "Client_Last_Seen": "2020-11-19 10:12:52 UTC",
    "Client_Last_Clock": "2020-11-19 10:12:52 UTC",
    "Memory_Size": "985.6MiB",
    "Client_Labels": []
   }]
輸出訊息

「列出用戶端」動作可以傳回下列輸出訊息:

輸出訊息 訊息說明

Successfully listed available clients in GRR.

No clients are available in GRR.

動作成功。
Error executing action "List Clients". Reason: ERROR_REASON

動作失敗。

檢查伺服器的連線、輸入參數或憑證。

指令碼結果

下表列出使用「列出用戶端」動作時,指令碼結果輸出的值:

指令碼結果名稱
is_success TrueFalse

列出搜尋作業

使用「List Hunts」動作,擷取所有可用搜尋的相關資訊。

這項操作不會在 Google SecOps 實體上執行。

動作輸入內容

「列出搜尋活動」動作需要下列參數:

參數 說明
Creator

選填。

建立尋寶遊戲的使用者。

Offset

選填。

搜尋狩獵活動的起點 (位移)。

Max Results To Return

選填。

每個回應中傳回的搜尋次數上限。

預設值為 5

動作輸出內容

「列出搜尋」動作會提供下列輸出內容:

動作輸出類型 可用性
案件總覽附件 無法使用
案件總覽連結 無法使用
案件訊息牆表格 可用
補充資訊表格 無法使用
JSON 結果 可用
輸出訊息 可用
指令碼結果 可用
案件訊息牆表格

「列出搜尋活動」動作可產生下表:

表格名稱:Hunts

資料表欄:

  • 搜尋 ID
  • 狀態
  • 建立時間
  • 開始時間
  • 時間長度
  • 用戶端限制
  • 到期時間
  • 建立者
  • 說明
JSON 結果

以下範例顯示使用「列出搜尋」動作時收到的 JSON 結果輸出內容:

[
    {
        "Hunt_Description": "Interrogate run by cron to keep host info fresh.",
        "Creator": "GRRCron",
        "Is_Robot": false,
        "State": "STARTED",
        "Creation Time": "1605690387510082",
        "Start Time (initial)": "1605690387678448",
        "Start Time (last)": "1605690387678448",
        "Duration": " ",
        "Client Limit": 0,
        "Expiration Time": " ",
        "Hunt_ID": "HUNT_ID",
    }
]
輸出訊息

「列出搜尋」動作可以傳回下列輸出訊息:

輸出訊息 訊息說明

Successfully listed hunts.

Could not list hunts for the specified creator. CREATOR_ID< does not exist.

Could not list hunts for the specified creator. Please check the Offset value.

動作成功。
Error executing action "List Hunts". Reason: ERROR_REASON

動作失敗。

檢查伺服器的連線、輸入參數或憑證。

指令碼結果

下表列出使用「列出搜尋活動」動作時,指令碼結果輸出的值:

指令碼結果名稱
is_success TrueFalse

列出已啟動的流程

使用「列出啟動的流程」動作,列出在指定用戶端啟動的流程。

這項動作會在下列 Google SecOps 實體上執行:

  • IP Address
  • Hostname

動作輸入內容

「列出已啟動的流程」動作需要下列參數:

參數 說明
Offset

選填。

要搜尋流程的起點 (位移)。

Max Results To Return

選填。

每個回應中要傳回的流程數量上限。

預設值為 5

動作輸出內容

「列出已啟動的流程」動作會提供下列輸出內容:

動作輸出類型 可用性
案件總覽附件 無法使用
案件總覽連結 無法使用
案件訊息牆表格 可用
補充資訊表格 無法使用
JSON 結果 可用
輸出訊息 可用
指令碼結果 可用
案件訊息牆表格

「列出已啟動的流程」動作可以產生下表:

資料表名稱:GRR Launch Flows

資料表欄:

  • 流程名稱
  • 流程 ID
  • 狀態
  • 建立時間
  • 上次使用時間
  • 建立者
JSON 結果

以下範例顯示使用「列出已啟動的流程」動作時收到的 JSON 結果輸出內容:

{
    "Creator": "admin",
    "NestedFlow": [],
    "LastActiveAt": 1535900632278975,
    "Args": {
        "ARGUMENTS"
    },
    "State": "TERMINATED",
    "StartedAt": 1535900542745106,
    "Flow_ID": "FLOW_ID",
    "Flow_Name": "FLOW_NAME"
}
輸出訊息

「列出已啟動的流程」動作可傳回下列輸出訊息:

輸出訊息 訊息說明

Successfully listed flows launched on CLIENT_ID client.

Could not list flows. No entities were found.

Could not list flows. IPs or Hosts entities were not found in current scope.

Could not list flows on the following entities: ENTITY_ID.

動作成功。
Error executing action "List Launched Flows". Reason: ERROR_REASON

動作失敗。

檢查伺服器的連線、輸入參數或憑證。

指令碼結果

下表列出使用「列出已啟動的流程」動作時,指令碼結果輸出的值:

指令碼結果名稱
is_success TrueFalse

乒乓

使用 Ping 動作測試與 GRR Rapid Response 的連線。

這項操作不會在 Google SecOps 實體上執行。

動作輸入內容

動作輸出內容

「Ping」動作會提供下列輸出內容:

動作輸出類型 可用性
案件總覽附件 無法使用
案件總覽連結 無法使用
案件訊息牆表格 無法使用
補充資訊表格 無法使用
JSON 結果 無法使用
輸出訊息 可用
指令碼結果 可用
輸出訊息

「Ping」動作可能會傳回下列輸出訊息:

輸出訊息 訊息說明
Successfully connected to the GRR server with the provided connection parameters! 動作成功。
Failed to connect to the GRR server! Error is ERROR_REASON

動作失敗。

檢查伺服器的連線、輸入參數或憑證。

指令碼結果

下表列出使用「Ping」動作時,指令碼結果輸出的值:

指令碼結果名稱
is_success TrueFalse

開始搜尋

使用「Start A Hunt」動作,開始新建立的搜尋作業。根據預設,GRR 快速回應會為所有新搜尋指派 PAUSED 狀態。

GRR 快速回應會將達到用戶端上限的所有搜尋設定為 PAUSED 狀態。移除用戶端限制後,您可以使用「開始搜尋」動作,重新啟動已暫停的搜尋。

這項操作不會在 Google SecOps 實體上執行。

動作輸入內容

「開始搜尋」動作需要下列參數:

參數 說明
Hunt ID

必填。

要啟動的搜尋活動 ID。這個參數接受以逗號分隔的多個值。

動作輸出內容

「開始搜尋」動作會提供下列輸出內容:

動作輸出類型 可用性
案件總覽附件 無法使用
案件總覽連結 無法使用
案件訊息牆表格 無法使用
補充資訊表格 無法使用
JSON 結果 可用
輸出訊息 可用
指令碼結果 可用
JSON 結果

以下範例顯示使用「開始搜尋」動作時收到的 JSON 結果輸出內容:

[{ "Hunt_ID": "HUNT_ID", "State": STARTED}]
輸出訊息

「開始搜尋」動作可能會傳回下列輸出訊息:

輸出訊息 訊息說明

Successfully started the following hunts: HUNT_ID_LIST.

Could not start the following hunts. HUNT_ID_LIST could not be found in GRR.

Could not stop the following hunts: HUNT_ID_LIST. Hunt can only be started from PAUSED state.

動作成功。
Error executing action "Start A Hunt". Reason: ERROR_REASON

動作失敗。

檢查伺服器的連線、輸入參數或憑證。

停止搜尋

使用「停止搜尋」動作,防止新用戶排定行程,並在狀態變更時中斷目前的流程。

停止搜尋後就無法繼續。這項動作會刪除所有進行中的結果,但不會影響已回報的結果。

這項操作不會在 Google SecOps 實體上執行。

動作輸入內容

「停止搜尋」動作需要下列參數:

參數 說明
Hunt ID

必填。

要停止的搜尋 ID。這個參數接受以逗號分隔的多個值。

動作輸出內容

「停止搜尋」動作會提供下列輸出內容:

動作輸出類型 可用性
案件總覽附件 無法使用
案件總覽連結 無法使用
案件訊息牆表格 無法使用
補充資訊表格 無法使用
JSON 結果 可用
輸出訊息 可用
指令碼結果 可用
JSON 結果

以下範例顯示使用「停止搜尋」動作時收到的 JSON 結果輸出內容:

[{ "Hunt_ID": "HUNT_ID", "State": STOPPED}]
輸出訊息

「停止搜尋」動作可能會傳回下列輸出訊息:

輸出訊息 訊息說明

Successfully stopped the following hunts: HUNT_ID_LIST.

Could not stop the following hunts. HUNT_ID_LIST could not be found in GRR.

Could not stop the following hunts: HUNT_ID_LIST. Hunt can only be stopped from STARTED or PAUSED states.

動作成功。
Error executing action "Stop A Hunt". Reason: ERROR_REASON

動作失敗。

檢查伺服器的連線、輸入參數或憑證。

指令碼結果

下表列出使用「停止搜尋」動作時,指令碼結果輸出的值:

指令碼結果名稱
is_success TrueFalse

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