將 CSV 與 Google SecOps 集成
本文檔介紹如何將 CSV 與 Google 安全營運整合。
本文檔說明如何將 CSV 與 Google 安全營運整合。
下載此整合的完整原始碼副本。用途
在 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/ 資料夾中。 |
Run On
不適用
動作執行結果
指令碼執行結果
| 指令碼結果名稱 | 值 |
|---|---|
| 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 檔案中搜尋字串。
Run On
這項操作會對所有實體執行。
動作執行結果
指令碼執行結果
| 指令碼結果名稱 | 值選項 | 範例 |
|---|---|---|
| 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"
}
]
案件總覽
| 結果類型 | 值 / 說明 | 類型 |
|---|---|---|
| 輸出訊息* | 找到記錄時: "Successfully found information about the following strings: \n (search_string)" 如果系統找不到某些字串的記錄:「Action wasn't able to find information about the following strings:」(Action 無法找到下列字串的相關資訊:) 如果所有記錄都未成功:「找不到所提供項目的相關資訊。」 如果所有編碼都無效: "執行「按字串搜尋 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 | 不適用 | 否 | 指定以半形逗號分隔的值清單,這些值需要傳回。 |
Run On
這項操作會對所有實體執行。
動作執行結果
指令碼執行結果
| 指令碼結果名稱 | 值選項 | 範例 |
|---|---|---|
| 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 (實體.識別碼)" 對於未找到的實體:“未找到以下實體的任何資訊:\n (entity.identifier)” 如果所有實體都未找到資訊:“未找到所提供實體的資訊。” 如果所有編碼都無效: "執行操作「按字串搜尋 CSV」時發生錯誤。提供的編碼無效。請檢查拼字。 |
一般 |
Ping
測試連線。
參數
不適用
Run On
這項操作會對所有實體執行。
動作執行結果
指令碼執行結果
不適用
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 檔案中的任何記錄,並轉送這些記錄進行翻譯,然後根據內容將其視為案件的快訊。
如何在連接器中對應嚴重程度
如要對應嚴重程度,您必須在「嚴重程度欄位名稱」參數中,指定要用來取得嚴重程度值的欄位。您可以在回應中取得 3 種值:整數、浮點數和字串。如果是整數和浮點數,則不需要進行任何其他設定。連接器會讀取這些值,並根據 Google SecOps 標準對應這些值。快速回顧整數值的對應方式:
- 100 - 重大
- 100 > x >= 80 (高)
- 80 > x >=60 中
- 60 > x >=40 低
- 40 > x Informational
如果回應中包含字串,則需要額外設定。在連接器指令碼所在的資料夾中,您會看到名為 severity_map_config.json 的設定檔。這個檔案會定義嚴重程度的對應規則。
一開始,檔案會如下所示:1 2 3 { "Default": 50 }
假設所需值位於 event.severity,event.severity 可能包含下列值:「Malicious」、「Benign」、「Unknown」。
首先,我們必須在「嚴重程度欄位名稱」參數中指定要使用 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 =「惡意」的事件時,就會將其嚴重程度設為「重大」。
在 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。 |
| 快訊欄位名稱 | 字串 | 不適用 | 否 | 包含快訊名稱相關資訊的欄位名稱。 |
| 嚴重程度欄位名稱 | 字串 | 不適用 | 否 | 包含嚴重程度資訊的欄位名稱。 |
連接器規則
代理支援
此連接器不支援代理。
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求解答。