整合 GRR Rapid Response 與 Google SecOps
本文說明如何設定 GRR Rapid Response,並與 Google Security Operations 整合。
用途
GRR Rapid Response 整合功能運用 Google SecOps 功能,支援下列用途:
端點鑑識資料收集:自動觸發鑑識流程,在調查期間從遠端端點收集檔案、登錄機碼和記憶體構件。
快速威脅搜尋:在所有受管理用戶端中搜尋特定檔案或雜湊,找出入侵範圍。
用戶端中繼資料擴充:擷取詳細的用戶端資訊,包括 OS 版本、硬體規格和網路設定,為安全性警示提供背景資訊。
自動化事件應變:使用應對手冊列出活躍用戶端,或在偵測到惡意活動後立即搜尋可疑構件。
事前準備
在 Google SecOps 設定整合功能前,請先確認 GRR Rapid Response 環境符合下列需求:
API 憑證:您必須擁有有效的使用者名稱和密碼,才能存取 GRR 伺服器的 API。
帳戶權限:確認用於整合的帳戶具備足夠權限,可啟動流程並搜尋目標用戶端的構件。
伺服器設定:找出 GRR 伺服器的 API 根層級 (例如
https://<grr-server-address>:8000)。網路存取權:確認網路設定允許從 Google SecOps 環境,傳出 HTTPS 連線至 GRR API 端點。
整合參數
GRR Rapid Response 整合需要下列參數:
| 參數 | 說明 |
|---|---|
API Root |
這是必填欄位。 GRR 伺服器 API 的基準網址,包括通訊埠 (例如 |
Username |
這是必填欄位。 用於驗證連線的 GRR 帳戶使用者名稱。 |
Password |
這是必填欄位。 與 GRR 帳戶相關聯的密碼,用於驗證。 |
Verify SSL |
選填。 如果選取,整合功能會在連線至 GRR 伺服器時驗證 SSL 憑證。 (預設為啟用)。 |
如要瞭解如何在 Google SecOps 中設定整合功能,請參閱「設定整合功能」。
如有需要,您可以在後續階段進行變更。設定整合執行個體後,即可在應對手冊中使用。如要進一步瞭解如何設定及支援多個執行個體,請參閱「支援多個執行個體」。
動作
如要進一步瞭解動作,請參閱「 在工作區回應待處理動作」和「在案件中執行手動動作」。
取得用戶端詳細資料
使用「Get Client Details」動作,擷取完整的客戶詳細資料。
這項動作不會在 Google SecOps 實體上執行。
動作輸入內容
「Get Client Details」動作需要下列參數:
| 參數 | 說明 |
|---|---|
Client ID |
這是必填欄位。 用戶端 ID。這個參數接受多個值,並以半形逗號分隔。 |
動作輸出內容
「Get Client Details」動作會提供下列輸出內容:
| 動作輸出類型 | 可用性 |
|---|---|
| 案件總覽附件 | 無法使用 |
| 案件總覽連結 | 無法使用 |
| 案件總覽表格 | 可用 |
| 補充資訊表格 | 無法使用 |
| JSON 結果 | 可用 |
| 輸出訊息 | 可用 |
| 指令碼執行結果 | 可用 |
案件總覽表格
「Get Client Details」動作可產生下列資料表:
資料表名稱:GRR Clients Details
表格欄:
- 用戶端 ID
- 主機
- OS 版本
- 標籤
- 記憶體大小
- 用戶端版本
- 首次出現日期
- 上次上線時間
- 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"
}
]
輸出訊息
「Get Client Details」動作可傳回下列輸出訊息:
| 輸出訊息 | 訊息說明 |
|---|---|
|
動作成功。 |
Error executing action "Get Client Details". Reason: ERROR_REASON |
動作失敗。 請檢查伺服器連線、輸入參數或憑證。 |
指令碼執行結果
下表列出使用「Get Client Details」動作時,指令碼結果輸出的值:
| 指令碼結果名稱 | 值 |
|---|---|
is_success |
True或False |
取得獵捕詳細資料
使用「Get Hunt Details」動作擷取搜尋詳細資料。
這項動作不會在 Google SecOps 實體上執行。
動作輸入內容
「Get Hunt Details」動作需要下列參數:
| 參數 | 說明 |
|---|---|
Hunt ID |
這是必填欄位。 要擷取的搜尋 ID。這項參數接受多個值,請以半形逗號分隔。 |
動作輸出內容
「Get Hunt Details」動作會提供下列輸出內容:
| 動作輸出類型 | 可用性 |
|---|---|
| 案件總覽附件 | 無法使用 |
| 案件總覽連結 | 可用 |
| 案件總覽表格 | 無法使用 |
| 補充資訊表格 | 無法使用 |
| JSON 結果 | 可用 |
| 輸出訊息 | 可用 |
| 指令碼執行結果 | 可用 |
案件總覽連結
「Get Hunt Details」動作可產生下列連結:
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 動作可傳回下列輸出訊息:
| 輸出訊息 | 訊息說明 |
|---|---|
|
動作成功。 |
Error executing action "Get Hunt Details". Reason: ERROR_REASON |
動作失敗。 請檢查伺服器連線、輸入參數或憑證。 |
指令碼執行結果
下表列出使用「Get Hunt Details」動作時,指令碼結果輸出的值:
| 指令碼結果名稱 | 值 |
|---|---|
is_success |
True或False |
列出用戶端
使用「List Clients」動作搜尋客戶並與其互動。
這項動作不會在 Google SecOps 實體上執行。
動作輸入內容
「List Clients」動作需要下列參數:
| 參數 | 說明 |
|---|---|
Offset |
選填。 搜尋用戶端的起始點 (偏移)。 |
Max Results To Return |
選填。 每則回應中傳回的用戶端數量上限。 預設值為 |
動作輸出內容
「List Clients」動作會提供下列輸出內容:
| 動作輸出類型 | 可用性 |
|---|---|
| 案件總覽附件 | 無法使用 |
| 案件總覽連結 | 無法使用 |
| 案件總覽表格 | 可用 |
| 補充資訊表格 | 無法使用 |
| JSON 結果 | 可用 |
| 輸出訊息 | 可用 |
| 指令碼執行結果 | 可用 |
案件總覽表格
「List Clients」動作可產生下表:
資料表名稱:GRR Clients
表格欄:
- 用戶端 ID
- 主機
- OS 版本
- 首次出現日期
- 用戶端版本
- 標籤
- 上次確認
- OS 安裝日期
JSON 結果
以下範例顯示使用「List Clients」動作時,收到的 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": []
}]
輸出訊息
「List Clients」動作可能會傳回下列輸出訊息:
| 輸出訊息 | 訊息說明 |
|---|---|
|
動作成功。 |
Error executing action "List Clients". Reason: ERROR_REASON |
動作失敗。 請檢查伺服器連線、輸入參數或憑證。 |
指令碼執行結果
下表列出使用「List Clients」動作時,指令碼結果輸出的值:
| 指令碼結果名稱 | 值 |
|---|---|
is_success |
True或False |
清單搜尋
使用「List Hunts」動作,擷取所有可用搜尋的相關資訊。
這項動作不會在 Google SecOps 實體上執行。
動作輸入內容
List Hunts 動作需要下列參數:
| 參數 | 說明 |
|---|---|
Creator |
選填。 建立搜尋作業的使用者。 |
Offset |
選填。 搜尋獵殺活動的起始點 (偏移)。 |
Max Results To Return |
選填。 每則回覆中傳回的搜尋數量上限。 預設值為 |
動作輸出內容
「List Hunts」動作會提供下列輸出內容:
| 動作輸出類型 | 可用性 |
|---|---|
| 案件總覽附件 | 無法使用 |
| 案件總覽連結 | 無法使用 |
| 案件總覽表格 | 可用 |
| 補充資訊表格 | 無法使用 |
| JSON 結果 | 可用 |
| 輸出訊息 | 可用 |
| 指令碼執行結果 | 可用 |
案件總覽表格
「List Hunts」動作可產生下表:
資料表名稱:Hunts
表格欄:
- Hunt ID
- Status
- 建立時間
- 開始時間
- 時間長度
- 用戶端限制
- 到期時間
- 創作者
- 說明
JSON 結果
以下範例顯示使用「List Hunts」動作時,收到的 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",
}
]
輸出訊息
「List Hunts」動作可能會傳回下列輸出訊息:
| 輸出訊息 | 訊息說明 |
|---|---|
|
動作成功。 |
Error executing action "List Hunts". Reason: ERROR_REASON |
動作失敗。 請檢查伺服器連線、輸入參數或憑證。 |
指令碼執行結果
下表列出使用「List Hunts」動作時,指令碼結果輸出的值:
| 指令碼結果名稱 | 值 |
|---|---|
is_success |
True或False |
列出已啟動的流程
使用「List Launched Flows」動作,列出在指定用戶端上啟動的流程。
這項動作會在下列 Google SecOps 實體上執行:
IP AddressHostname
動作輸入內容
「List Launched Flows」動作需要下列參數:
| 參數 | 說明 |
|---|---|
Offset |
選填。 搜尋流程的起點 (偏移量)。 |
Max Results To Return |
選填。 每則回應中傳回的流程數量上限。 預設值為 |
動作輸出內容
「List Launched Flows」動作會提供下列輸出內容:
| 動作輸出類型 | 可用性 |
|---|---|
| 案件總覽附件 | 無法使用 |
| 案件總覽連結 | 無法使用 |
| 案件總覽表格 | 可用 |
| 補充資訊表格 | 無法使用 |
| JSON 結果 | 可用 |
| 輸出訊息 | 可用 |
| 指令碼執行結果 | 可用 |
案件總覽表格
「List Launched Flows」動作可產生下表:
資料表名稱:GRR Launch Flows
表格欄:
- 流程名稱
- 流程 ID
- 「State」
- 建立時間
- 上次活動時間
- 創作者
JSON 結果
以下範例顯示使用「List Launched Flows」動作時,收到的 JSON 結果輸出內容:
{
"Creator": "admin",
"NestedFlow": [],
"LastActiveAt": 1535900632278975,
"Args": {
"ARGUMENTS"
},
"State": "TERMINATED",
"StartedAt": 1535900542745106,
"Flow_ID": "FLOW_ID",
"Flow_Name": "FLOW_NAME"
}
輸出訊息
「List Launched Flows」動作可能會傳回下列輸出訊息:
| 輸出訊息 | 訊息說明 |
|---|---|
|
動作成功。 |
Error executing action "List Launched Flows". Reason:
ERROR_REASON |
動作失敗。 請檢查伺服器連線、輸入參數或憑證。 |
指令碼執行結果
下表列出使用「List Launched Flows」動作時,指令碼結果輸出的值:
| 指令碼結果名稱 | 值 |
|---|---|
is_success |
True或False |
乒乓
使用 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 |
True或False |
開始搜尋
使用「Start A Hunt」動作,啟動新建立的搜尋。根據預設,GRR Rapid Response 會將 PAUSED 狀態指派給所有新搜尋。
GRR Rapid Response 會將所有達到用戶端限制的搜尋設為 PAUSED 狀態。移除用戶端限制後,您可以使用「Start A Hunt」(開始搜尋) 動作,重新啟動暫停的搜尋。
這項動作不會在 Google SecOps 實體上執行。
動作輸入內容
Start A Hunt 動作需要下列參數:
| 參數 | 說明 |
|---|---|
Hunt ID |
這是必填欄位。 要開始的搜尋 ID。這項參數接受多個值,請以半形逗號分隔。 |
動作輸出內容
「Start A Hunt」動作會提供下列輸出內容:
| 動作輸出類型 | 可用性 |
|---|---|
| 案件總覽附件 | 無法使用 |
| 案件總覽連結 | 無法使用 |
| 案件總覽表格 | 無法使用 |
| 補充資訊表格 | 無法使用 |
| JSON 結果 | 可用 |
| 輸出訊息 | 可用 |
| 指令碼執行結果 | 可用 |
JSON 結果
以下範例顯示使用「Start A Hunt」動作時,收到的 JSON 結果輸出內容:
[{ "Hunt_ID": "HUNT_ID", "State": STARTED}]
輸出訊息
「Start A Hunt」動作可能會傳回下列輸出訊息:
| 輸出訊息 | 訊息說明 |
|---|---|
|
動作成功。 |
Error executing action "Start A Hunt". Reason: ERROR_REASON |
動作失敗。 請檢查伺服器連線、輸入參數或憑證。 |
停止搜尋
使用「Stop A Hunt」動作,可防止新用戶端排定工作,並在狀態變更時中斷目前流程。
停止後即無法重新啟動。這項操作會刪除目前進行中的所有結果,但不會影響已回報的結果。
這項動作不會在 Google SecOps 實體上執行。
動作輸入內容
「Stop A Hunt」動作需要下列參數:
| 參數 | 說明 |
|---|---|
Hunt ID |
這是必填欄位。 要停止的搜尋 ID。這項參數接受多個值,請以半形逗號分隔。 |
動作輸出內容
「Stop A Hunt」動作會提供下列輸出內容:
| 動作輸出類型 | 可用性 |
|---|---|
| 案件總覽附件 | 無法使用 |
| 案件總覽連結 | 無法使用 |
| 案件總覽表格 | 無法使用 |
| 補充資訊表格 | 無法使用 |
| JSON 結果 | 可用 |
| 輸出訊息 | 可用 |
| 指令碼執行結果 | 可用 |
JSON 結果
以下範例顯示使用「Stop A Hunt」動作時,收到的 JSON 結果輸出內容:
[{ "Hunt_ID": "HUNT_ID", "State": STOPPED}]
輸出訊息
「Stop A Hunt」動作可能會傳回下列輸出訊息:
| 輸出訊息 | 訊息說明 |
|---|---|
|
動作成功。 |
Error executing action "Stop A Hunt". Reason: ERROR_REASON |
動作失敗。 請檢查伺服器連線、輸入參數或憑證。 |
指令碼執行結果
下表列出使用「Stop A Hunt」動作時,指令碼結果輸出的值:
| 指令碼結果名稱 | 值 |
|---|---|
is_success |
True或False |
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求解答。