將 CSV 與 Google SecOps 整合
本文說明如何將 CSV 與 Google Security Operations 整合。
本文說明如何將 CSV 與 Google Security Operations 整合。
用途
在 Google SecOps 中,CSV 整合支援下列用途:
檔案式威脅搜尋:快速搜尋本機或遠端 CSV 記錄檔,找出特定字串或惡意實體,識別歷來記錄的威脅。
自動產生警示:自動擷取以 CSV 格式輸出資料的舊系統記錄,並透過自訂嚴重性對應,將這些記錄轉換為可採取行動的警示。
資料可攜性和報表:以程式輔助方式將其他應對手冊動作的 JSON 結果轉換為 CSV 格式,簡化匯出至外部報表工具或本機儲存空間的程序。
自動擴充實體:使用 CSV 檔案做為本機威脅情報來源,在執行手冊時自動擴充實體並標示為可疑。
跨系統資料同步:有效率地處理採用不同字元編碼的檔案 (例如舊版 Excel 格式),確保不同安全性工具之間的資料一致性。
事前準備
在 Google SecOps 中設定整合功能前,請確認您具備下列項目:
內部平台功能:這項整合功能提供內建的檔案處理功能,不需要外部第三方 API 金鑰或憑證即可進行驗證。
檔案系統權限:如果使用遠端代理程式,整合功能需要特定權限,才能存取及管理主機系統上的檔案。在代理程式機器上執行下列指令,為目標目錄授予必要權限:
chown scripting:scripting "directory_path"
整合參數
CSV 整合需要下列參數:
| 參數顯示名稱 | 類型 | 預設值 | 為必填 | 說明 |
|---|---|---|---|---|
| 執行個體名稱 | 字串 | 不適用 | 否 | 要設定整合的執行個體名稱。 |
| 說明 | 字串 | 不適用 | 否 | 執行個體的說明。 |
| 遠端執行 | 核取方塊 | 已取消勾選 | 否 | 勾選這個欄位,即可從遠端執行設定的整合項目。勾選後,系統會顯示選取遠端使用者 (代理) 的選項。 |
如要瞭解如何在 Google SecOps 中設定整合功能,請參閱「設定整合功能」。
如有需要,您可以在後續階段進行變更。設定整合執行個體後,即可在應對手冊中使用。如要進一步瞭解如何設定及支援多個執行個體,請參閱「支援多個執行個體」。
動作
如要進一步瞭解動作,請參閱「 在工作區回應待處理動作」和「在案件中執行手動動作」。
將 JSON 儲存為 CSV
將 JSON 物件儲存為 CSV。
參數
| 參數名稱 | 類型 | 預設值 | 必填 | 說明 |
|---|---|---|---|---|
| JSON 物件 | JSON | 不適用 | 是 | 指定要儲存為 CSV 的 JSON 物件。 |
| 覆寫 | 布林值 | 否 | 否 | 啟用後,這項動作會覆寫現有檔案。 |
| 檔案路徑 | 字串 | 不適用 | 是 | 指定新建立 CSV 檔案的絕對檔案路徑。如果只提供檔案名稱,動作會將檔案儲存在 /tmp/ 資料夾中。 |
執行日期
不適用
動作執行結果
指令碼執行結果
| 指令碼結果名稱 | 值 |
|---|---|
| is_success | True/False |
JSON 結果
{"filepath": "{file name}"}
案件總覽
這項動作會提供下列輸出訊息:
| 輸出訊息 | 訊息說明 |
|---|---|
| 已成功轉換 JSON 物件,並儲存至提供的檔案路徑。 | 動作執行成功。 |
| 在指定路徑找不到檔案。 | 檔案不存在。 |
| 在 Google Cloud Policy Intelligence 中,找不到所提供服務帳戶的任何活動 | 這項動作找不到任何所列服務帳戶的資料。 |
| 執行「將 JSON 儲存為 CSV」動作時發生錯誤。 | 動作傳回錯誤。 請檢查伺服器連線、輸入參數或憑證。 |
依字串搜尋
在 CSV 檔案中搜尋字串。
參數
| 參數名稱 | 類型 | 預設值 | 為必填 | 說明 |
|---|---|---|---|---|
| CSV 路徑 | 字串 | 不適用 | 是 | 指定 CSV 檔案的路徑,或包含所有 CSV 檔案的資料夾路徑。如果提供資料夾,動作會疊代資料夾中的所有 CSV 檔案。 |
| CSV 欄 | 字串 | 不適用 | 否 | 指定可包含實體資訊的資料欄清單 (以半形逗號分隔)。如未提供,動作會搜尋所有資料欄。 |
| 往回天數 | 字串 | 10 | 否 | 指定要處理過去幾天的 CSV 檔案。 |
| 搜尋值 | 字串 | 不適用 | 否 | 指定要搜尋的字串。如果啟用「搜尋多個字串」,系統會將這個參數視為以半形逗號分隔的字串清單,並搜尋這些字串。 |
| 只傳回第一列。 | 核取方塊 | 已取消勾選 | 否 | 如果啟用,動作只會傳回與實體相符的第一個檔案中的 1 列。 |
| 檔案編碼類型 | 字串 | utf-8、latin-1、iso-8859-1 | 是 | 以半形逗號分隔的 CSV 編碼類型清單,用於解碼 CSV 檔案,例如 utf-8、latin-1、iso-8859-1、utf-16...編碼類型的指定順序,決定了檔案解碼時的優先順序。舉例來說 (如上例所示),utf-8 的優先順序最高,主要用於解碼所有檔案。如果 CSV 檔案使用其他編碼,則會使用下一個編碼 (latin-1),依此類推,直到使用最後一個編碼。 |
| 搜尋多個字串 | 核取方塊 | 已取消勾選 | 否 | 啟用後,「搜尋值」會以逗號分隔的清單形式運作,而非單一字串。 |
| 要傳回的欄位 | CSV | 不適用 | 否 | 指定要傳回的值,並以逗號分隔的清單呈現。 |
用途
在 CSV 檔案中搜尋字串。
執行日期
這項操作會對所有實體執行。
動作執行結果
指令碼執行結果
| 指令碼執行結果名稱 | 值選項 | 範例 |
|---|---|---|
| count_rows_csv | 不限列數 | count_rows += 1 |
JSON 結果
[
{
"EntityResult": {
"Field2": "Value2",
"Field3": "Value3",
"Field1": "Value1",
"Field4": "Value4",
"Field5": "Value5"
},
"Entity": "host"
}, {
"EntityResult": {
"Field2": "Value2",
"Field3": "Value3",
"Field1": "Value1",
"Field4": "Value4",
"Field5": "Value5"
}, "Entity": "1.1.1.1"
}
]
案件總覽
| 結果類型 | 值/說明 | 類型 |
|---|---|---|
| 輸出訊息* | 如果找到記錄: 「已成功找到下列字串的相關資訊:\n (search_string)」 如果找不到某些字串的記錄:「動作找不到下列字串的相關資訊:」 如果所有記錄都未成功:「找不到所提供項目的資訊。」 如果所有編碼都無效:執行「CSV Search by String」動作時發生錯誤。提供的編碼無效。請檢查拼字。」 |
一般 |
依實體搜尋
搜尋 CSV 檔案中的實體並加以擴充。
參數
| 參數名稱 | 類型 | 預設值 | 為必填 | 說明 |
|---|---|---|---|---|
| CSV 路徑 | 字串 | 不適用 | 是 | 指定 CSV 檔案的路徑,或包含所有 CSV 檔案的資料夾路徑。如果提供資料夾,動作會疊代資料夾中的所有 CSV 檔案。 |
| CSV 欄 | 字串 | 不適用 | 是 | 指定可包含實體資訊的資料欄清單 (以半形逗號分隔)。如未提供,動作會搜尋所有資料欄。 |
| 回溯天數 | 字串 | 10 | 是 | 指定要處理過去幾天的 CSV 檔案。 |
| 標示為可疑 | 核取方塊 | 已取消勾選 | 否 | 啟用後,如果檔案中發現實體,動作會將實體標示為可疑。 |
| 只傳回第一列。 | 核取方塊 | 已取消勾選 | 否 | 如果啟用,動作只會傳回與實體相符的第一個檔案中的 1 列。 |
| 檔案編碼類型 | 字串 | utf-8、latin-1、iso-8859-1 | 是 | 以半形逗號分隔的 CSV 編碼類型清單,用於解碼 CSV 檔案,例如 utf-8、latin-1、iso-8859-1、utf-16...編碼類型的指定順序,決定了檔案解碼時的優先順序。舉例來說 (如上例所示),utf-8 的優先順序最高,主要用於解碼所有檔案。如果 CSV 檔案使用其他編碼,則會使用下一個編碼 (latin-1),依此類推,直到使用最後一個編碼。 |
| 充實實體 | 核取方塊 | 已勾選 | 否 | 如果啟用,這項動作會從 CSV 檔案新增資訊,並加入實體的擴充表格。 |
| 建立洞察 | 核取方塊 | 已勾選 | 否 | 啟用後,如果檔案中含有實體,這項動作就會建立深入分析。 |
| 要傳回的欄位 | CSV | 不適用 | 否 | 指定要傳回的值,並以逗號分隔的清單呈現。 |
執行日期
這項操作會對所有實體執行。
動作執行結果
指令碼執行結果
| 指令碼執行結果名稱 | 值選項 | 範例 |
|---|---|---|
| count_rows_csv | 不限列數 | count_rows += 1 |
JSON 結果
[
{
"EntityResult": [{
"domain": "example.dom",
"fileHash": "cbbc5aea3d4c7ec193aa2ff3b52df36ebb12338b18c9bb53fc4896115efaf78d",
"reporter": "Symantec Antivirus",
"app": "Arcsight",
"id": "1011",
"eventTime": "9/4/2017 10:00",
"antivirusAction": "blocked",
"virusName": "ECAT",
"rule": "malicious",
"eventName": "Virus detected",
"User": "Ziv",
"eventHostName": "WS-ZivDevComp",
"File Source Path": "C:\\\\Users\\\\Default\\\\Desktop\\\\stringTimeRaw.csv",
"machineAddress": "192.168.11.11"
}, {
"domain": "SmartCompany.dom",
"fileHash": "cbbc5aea3d4c7ec193aa2ff3b52df36ebb12338b18c9bb53fc4896115efaf78d",
"reporter": "Symantec Antivirus",
"app": "ESM",
"id": "1012",
"eventTime": "9/4/2017 10:00",
"antivirusAction": "allowed",
"virusName": "ECAT",
"rule": "malicious",
"eventName": "Virus detected",
"User": "GG",
"eventHostName": "WS-GGDevComp",
"File Source Path": "C:\\\\Users\\\\Default\\\\Desktop\\\\stringTimeRaw.csv",
"machineAddress": "192.168.11.11"
}],
"Entity": "192.168.11.11"
}
]
案件總覽
| 結果類型 | 值/說明 | 類型 |
|---|---|---|
| 輸出訊息* | 找到實體時:「已成功找到下列實體的資訊:\n (entity.identifier)」 找不到實體:「找不到下列實體的相關資訊:\n (entity.identifier)」 如果所有實體都未成功:「找不到所提供實體的資訊。」 如果所有編碼都無效: 「執行『依字串搜尋 CSV』動作時發生錯誤。提供的編碼無效。請檢查拼字。」 |
一般 |
乒乓
測試連線。
參數
不適用
執行日期
這項操作會對所有實體執行。
動作執行結果
指令碼執行結果
不適用
JSON 結果
N/A
連接器
CSV 連接器
從特定資料夾中的 CSV 檔案擷取資料,並將這些資料轉換為 Google SecOps 系統中的警告。
本主題說明 Google SecOps 產生 CSV 檔案的機制和設定,以及支援的工作流程和平台內採取的動作。
用途
客戶的 CSV 檔案來自某個系統,且檔案可能採用不同的編碼。
* Add support for comma-separated encodings in the Encoding field in the
connector.
* The connector should try the different encodings by their order in
the field (first encoding - highest priority, last - lowest
priority) with try/except. If no matching encoding was found -
consider the file as an error and notify.
* Put a default value for the fields - a list of most common CSV
encodings by priority (utf8, latin1, and iso...)
存取 CSV 檔案
Google SecOps 存取 CSV 檔案:為 CSV 檔案設定資料夾。
將 CSV 記錄轉送至 Google SecOps
使用 CSV 檔案記錄
設定 Google SecOps 使用 CSV 檔案做為快訊來源時,系統會要求您提供擷取 CSV 的特定資料夾。Google SecOps 會擷取 CSV 檔案中的所有記錄,並轉送這些記錄進行翻譯,然後將其情境化為案件的警示。
如何在連接器中對應嚴重程度
如要對應嚴重程度,您必須在「Severity Field Name」參數中,指定要使用哪個欄位來取得嚴重程度的值。您可以在回應中取得 3 種值:整數、浮點數和字串。如果是整數和浮點數,則不需要進行任何額外設定。連接器會讀取這些值,並根據 Google SecOps 標準進行對應。快速回顧整數值的對應方式:
- 100 - 重大
- 100 > x >= 80 (高)
- 80 > x >=60 中
- 60 > x >=40 低
- 40 > x 參考用
如果回覆中包含字串,則需要額外設定。在連接器指令碼所在的資料夾中,您會看到名為 severity_map_config.json 的設定檔。這個檔案定義了嚴重程度的對應規則。
檔案一開始會像這樣:1 2 3 { "Default": 50 }
假設所需的值位於 event.severity,而 event.severity 可能包含下列值:「Malicious」、「Benign」、「Unknown」。
首先,我們必須在「Severity Field Name」參數中指定要使用 event.severity。其次,我們必須更新設定檔。變更後,severity_map_config.json 檔案應如下所示:1 2 3 4 5 6 7 8 {
"event.severity": { "Malicious": 100, "Unknown": 60, "Benign": -1 }, "Default":
50 }
現在,當連接器收到 event.severity =「Malicious」的事件時,就會將其嚴重性設為「重大」。
在 Google SecOps 中設定 CSV 連接器
如要瞭解如何在 Google SecOps 中設定連接器,請參閱「設定連接器」一文。
連接器參數
使用下列參數設定連接器:
| 參數名稱 | 類型 | 預設值 | 為必填 | 說明 |
|---|---|---|---|---|
| 產品欄位名稱 | 字串 | device_product | 是 | 用於判斷裝置產品的欄位名稱。 |
| 事件欄位名稱 | 字串 | 名稱 | 否 | 用於判斷事件名稱 (子類型) 的欄位名稱。 |
| 指令碼逾時 (秒) | 字串 | 60 | 是 | 執行目前指令碼的 Python 程序逾時限制 (以秒為單位)。 |
| CSV 資料夾路徑 | 字串 | 不適用 | 是 | 資料夾路徑,包含所有需要擷取的 CSV 檔案。 |
| CSV 限制 | 字串 | 不適用 | 否 | 每次疊代要處理的 CSV 檔案數量。 |
| 規則產生器欄位名稱 | 字串 | 不適用 | 否 | 這個欄位包含規則產生器的相關資訊。 |
| 時間欄位名稱 | 字串 | 不適用 | 否 | 包含事件時間資訊的欄位名稱。 |
| CSV 含有標頭 | 核取方塊 | 已勾選 | 是 | 指出 CSV 檔案是否含有標頭。 |
| 檔案編碼類型 | 字串 | utf-8 | 是 | 設定 CSV 編碼類型,例如 iso-8859-1、latin1、utf-8、utf-16。 |
| 警告欄位名稱 | 字串 | 不適用 | 否 | 包含快訊名稱資訊的欄位名稱。 |
| 嚴重性欄位名稱 | 字串 | 不適用 | 否 | 包含嚴重程度資訊的欄位名稱。 |
連接器規則
Proxy 支援
連接器不支援 Proxy。
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求解答。