將 OpenSearch 與 Google SecOps 整合
本文說明如何將 OpenSearch 與 Google Security Operations 整合。
用途
OpenSearch 整合功能可滿足下列安全性自動化調度管理和調查用途:
自動化威脅搜尋:使用 Lucene 和 DSL 查詢,定期在所有 OpenSearch 索引中搜尋特定入侵指標 (IoC) 或可疑模式。
集中擷取警示:將 OpenSearch 的文件擷取為可做為行動依據的警示,並傳送至 Google SecOps,確保資料湖泊中的安全性事件會優先處理及調查。
擷取情境資料:自動從 OpenSearch 提取相關記錄或歷來資料,充實既有的資安案件,為分析師提供更深入的調查背景資訊。
彈性資料對應:動態將 OpenSearch 文件的嚴重性等級和環境標記對應至 Google SecOps 標準,確保不同記錄來源的一致性。
事前準備
在 Google SecOps 平台中設定整合功能前,請確認您具備下列項目:
CA 憑證檔案:有效的憑證授權單位檔案,用於保護連線。
最新整合版本:請確認您使用的是最新版 OpenSearch 整合。
Base64 編碼憑證:設定前,必須先將 CA 憑證檔案內容轉換為 Base64 字串。
如要使用 CA 憑證設定整合,請完成下列步驟:
- 開啟整合設定參數頁面。
- 將 Base64 編碼字串貼到「CA 憑證檔案」欄位。
- 勾選「Verify SSL」核取方塊。
- 按一下「測試」,確認整合設定成功。
整合參數
OpenSearch 整合需要下列參數:
| 參數 | 說明 |
|---|---|
Server Address |
這是必填欄位。 OpenSearch 執行個體的端點網址,包括通訊協定和通訊埠 (例如 |
Username |
選填。 用於向 OpenSearch 執行個體驗證的使用者名稱。 |
Password |
選填。 與指定使用者名稱相關聯的密碼。 |
API Token |
選填。 用於驗證的 API 權杖,可替代使用者名稱和密碼。 |
Authenticate |
選填。 如果選取,整合功能會使用提供的憑證,驗證與 OpenSearch 伺服器的連線。 |
Verify SSL |
選填。 如果選取,整合功能會在連線至 OpenSearch 伺服器時驗證 SSL 憑證。 |
CA Certificate File |
選填。 PEM 格式的憑證授權單位 (CA) 憑證檔案內容,用於驗證伺服器的 SSL 憑證。 |
如要瞭解如何在 Google SecOps 中設定整合功能,請參閱「設定整合功能」。
如有需要,您可以在後續階段進行變更。設定整合執行個體後,即可在應對手冊中使用。如要進一步瞭解如何設定及支援多個執行個體,請參閱「支援多個執行個體」。
動作
如要進一步瞭解動作,請參閱「 在工作區回應待處理動作」和「在案件中執行手動動作」。
進階 ES 搜尋
使用「Advanced ES Search」動作,在 OpenSearch 伺服器上執行預先設定的搜尋查詢,並以字典格式擷取結果。
這項動作不會在 Google SecOps 實體上執行。
動作輸入內容
Advanced ES Search 動作需要下列參數:
| 參數 | 說明 |
|---|---|
Index |
選填。 OpenSearch 索引的搜尋模式 (例如 預設值為 |
Query |
選填。 使用 Lucene 語法執行的搜尋查詢 (例如 預設值為 |
Limit |
選填。 要傳回的文件數量上限。如不設限,請將這個值設為 預設值為 |
Display Field |
選填。 以半形逗號分隔的清單,列出要傳回的特定欄位。 預設值為 |
Search Field |
選填。
預設值為 |
Timestamp Field |
選填。 用於依時間篩選的欄位名稱。 如果 預設值為 |
Oldest Date |
選填。 搜尋的開始日期。這項動作會傳回在這個時間戳記當天或之後發生的記錄。 您可以提供確切的世界標準時間時間戳記 ( 預設值為 |
Earliest Date |
選填。 搜尋的結束日期。這項動作會傳回在這個時間戳記當天或之前發生的記錄。 您可以提供確切的世界標準時間時間戳記 ( 預設值為 |
動作輸出內容
「Advanced ES Search」動作會提供下列輸出內容:
| 動作輸出類型 | 可用性 |
|---|---|
| 案件總覽附件 | 無法使用 |
| 案件總覽連結 | 無法使用 |
| 案件總覽表格 | 無法使用 |
| 補充資訊表格 | 無法使用 |
| JSON 結果 | 無法使用 |
| 輸出訊息 | 可用 |
| 指令碼執行結果 | 可用 |
指令碼執行結果
下表列出使用「Advanced ES Search」動作時,指令碼結果輸出的值:
| 指令碼結果名稱 | 值 |
|---|---|
results |
RESULTS |
DSL 搜尋
使用「DSL Search」動作,全面搜尋所有 OpenSearch 索引,並以字典格式擷取結果。
這項動作不會在 Google SecOps 實體上執行。
動作輸入內容
DSL 搜尋動作需要下列參數:
| 參數 | 說明 |
|---|---|
Index |
選填。 OpenSearch 索引的搜尋模式 (例如 預設值為 |
Query |
選填。 使用 Lucene 語法執行的搜尋查詢 (例如 預設值為 |
Limit |
選填。 要傳回的文件數量上限。如不設限,請將這個值設為 預設值為 |
動作輸出內容
「DSL Search」動作會提供下列輸出內容:
| 動作輸出類型 | 可用性 |
|---|---|
| 案件總覽附件 | 無法使用 |
| 案件總覽連結 | 無法使用 |
| 案件總覽表格 | 無法使用 |
| 補充資訊表格 | 無法使用 |
| JSON 結果 | 可用 |
| 輸出訊息 | 可用 |
| 指令碼執行結果 | 可用 |
JSON 結果
以下範例顯示使用 DSL 搜尋動作時,收到的 JSON 結果輸出內容:
[
{
"_score": 0.2876821,
"_type": "person",
"_id": "2",
"_source": {
"lastname": "Smith",
"name": "John",
"job_description": "Systems administrator"
},
"_index": "accounts"
}, {
"_score": 0.28582606,
"_type": "person",
"_id": "1",
"_source":
{
"lastname": "Doe",
"name": "John",
"job_description": "Systems administrator and Linux specialist"
},
"_index": "accounts"
}
]
指令碼執行結果
下表列出使用「DSL Search」動作時,指令碼結果輸出的值:
| 指令碼結果名稱 | 值 |
|---|---|
results |
RESULTS |
乒乓
使用 Ping 動作測試與 OpenSearch 的連線能力。
這項動作不會在 Google SecOps 實體上執行。
動作輸入內容
無
動作輸出內容
Ping 動作會提供下列輸出內容:
| 動作輸出類型 | 可用性 |
|---|---|
| 案件總覽附件 | 無法使用 |
| 案件總覽連結 | 無法使用 |
| 案件總覽表格 | 無法使用 |
| 補充資訊表格 | 無法使用 |
| JSON 結果 | 無法使用 |
| 輸出訊息 | 可用 |
| 指令碼執行結果 | 可用 |
指令碼執行結果
下表列出使用 Ping 動作時,指令碼結果輸出的值:
| 指令碼結果名稱 | 值 |
|---|---|
| is_success | true或false |
簡易 ES 搜尋
使用「Simple ES Search」動作,在 OpenSearch 中對所有已建立索引的欄位執行基本搜尋,並以字典格式擷取結果。
這項動作不會在 Google SecOps 實體上執行。
動作輸入內容
簡易 ES 搜尋動作需要下列參數:
| 參數 | 說明 |
|---|---|
Index |
選填。 OpenSearch 索引的搜尋模式 (例如 預設值為 |
Query |
選填。 使用 Lucene 語法執行的搜尋查詢 (例如 預設值為 |
Limit |
選填。 要傳回的文件數量上限。如不設限,請將這個值設為 預設值為 |
動作輸出內容
「Simple ES Search」動作會提供下列輸出內容:
| 動作輸出類型 | 可用性 |
|---|---|
| 案件總覽附件 | 無法使用 |
| 案件總覽連結 | 無法使用 |
| 案件總覽表格 | 無法使用 |
| 補充資訊表格 | 無法使用 |
| JSON 結果 | 可用 |
| 輸出訊息 | 可用 |
| 指令碼執行結果 | 可用 |
JSON 結果
以下範例顯示使用「Simple ES Search」動作時,收到的 JSON 結果輸出內容:
[{
"_score": 0.2876821,
"_type": "person",
"_id": "2",
"_source":
{
"lastname": "Smith",
"name": "John",
"job_description": "Systems administrator"
},
"_index": "accounts"
},
{
"_score": 0.28582606,
"_type": "person",
"_id": "1",
"_source":
{
"lastname": "Doe",
"name": "John",
"job_description": "Systems administrator and Linux specialist"
},
"_index": "accounts"
}
]
指令碼執行結果
下表列出使用「Simple ES Search」動作時,指令碼結果輸出的值:
| 指令碼結果名稱 | 值 |
|---|---|
results |
RESULTS |
連接器
如要進一步瞭解如何在 Google SecOps 中設定連接器,請參閱「擷取資料 (連接器)」。
OpenSearch 連接器
使用 OpenSearch 連接器,透過提供的 Lucene 查詢搜尋指定的 OpenSearch 索引,並將文件擷取為 Google SecOps 的警告。
連接器輸入
OpenSearch 連接器需要下列參數:
| 參數 | 說明 |
|---|---|
Product Field Name |
這是必填欄位。 儲存產品名稱的欄位名稱。 產品名稱主要會影響對應。為簡化及改善連接器的對應程序,預設值會解析為程式碼參照的備用值。如果這個參數的輸入內容無效,預設會解析為備用值。 預設值為 |
Event Field Name |
這是必填欄位。 決定事件名稱 (子類型) 的欄位名稱。 預設值為 |
Script Timeout (Seconds) |
這是必填欄位。 執行目前指令碼的 Python 程序逾時限制 (以秒為單位)。 預設值為 |
Server Address |
這是必填欄位。 OpenSearch 執行個體的端點網址,包括通訊協定和通訊埠 (例如 |
Username |
選填。 用於向 OpenSearch 執行個體驗證的使用者名稱。 |
Password |
選填。 與指定使用者名稱相關聯的密碼。 |
Authenticate |
選填。 如果選取,整合功能會使用提供的憑證,驗證與 OpenSearch 伺服器的連線。 |
API Token |
選填。 用於驗證的 API 權杖,可替代使用者名稱和密碼。 |
Verify SSL |
選填。 如果選取,整合功能會在連線至 OpenSearch 伺服器時驗證 SSL 憑證。 |
Alert Name Field |
這是必填欄位。 包含快訊名稱的欄位名稱 (例如 |
Timestamp Field |
這是必填欄位。 包含時間戳記的欄位名稱 (例如 |
Environment Field Name |
選填。 儲存環境名稱的欄位名稱。 如果缺少環境欄位,連接器會使用預設值。 預設值為 |
Indexes |
選填。 要搜尋的索引模式。使用 |
Query |
選填。 使用 Lucene 語法執行的搜尋查詢。 |
Alerts Count Limit |
這是必填欄位。 單一週期內可提取的快訊數量上限。 預設值為 |
Max Days Backwards |
這是必填欄位。 要擷取幾天前的快訊。 這個參數可套用至首次啟用連接器後的初始連接器疊代,或過期連接器時間戳記的備用值。 預設值為 |
Severity Field Name |
選填。 用於擷取警告嚴重性值的欄位名稱。 如果欄位包含數值 (整數或浮點數),連接器會自動將其對應至 Google SecOps 嚴重性等級 (例如 |
Proxy Server Address |
選填。 要使用的 Proxy 伺服器位址。 |
Proxy Username |
選填。 用於向 Proxy 伺服器驗證的使用者名稱。 |
Proxy Password |
選填。 用於向 Proxy 伺服器驗證的密碼。 |
Environment Regex Pattern |
選填。 規則運算式模式,用於對 使用預設值 如果規則運算式模式為空值或空白,或環境值為空值,則最終環境結果為預設環境。 |
OpenSearch DSL 連接器
使用 OpenSearch DSL 連接器,透過網域專屬語言 (DSL) 查詢發出 REST API 呼叫,將文件做為快訊擷取至 Google SecOps。
連接器輸入
OpenSearch DSL 連接器需要下列參數:
| 參數 | 說明 |
|---|---|
Product Field Name |
這是必填欄位。 儲存產品名稱的欄位名稱。 產品名稱主要會影響對應。為簡化及改善連接器的對應程序,預設值會解析為程式碼參照的備用值。如果這個參數的輸入內容無效,預設會解析為備用值。 預設值為 預設值為 |
Event Field Name |
這是必填欄位。 決定事件名稱 (子類型) 的欄位名稱。 預設值為 |
Script Timeout (Seconds) |
這是必填欄位。 執行目前指令碼的 Python 程序逾時限制 (以秒為單位)。 預設值為 |
Server Address |
這是必填欄位。 OpenSearch 執行個體的端點網址,包括通訊協定 (例如 |
Port |
這是必填欄位。 用於連線至 OpenSearch API 伺服器的通訊埠。 |
Query |
這是必填欄位。 用於搜尋的 DSL 查詢,採用 JSON 格式。 為提高連接器穩定性,建議在查詢中加入遞增排序的時間戳記索引鍵。 |
Index |
這是必填欄位。 用於搜尋的索引。使用 |
Timestamp Field |
這是必填欄位。 包含時間戳記的欄位名稱 (例如 |
Alert Field Name |
這是必填欄位。 包含快訊名稱的欄位名稱 (例如 |
Description Field |
選填。 包含快訊說明的欄位名稱 (例如 |
Severity |
這是必填欄位。 要指派給所有擷取快訊的靜態嚴重性等級。如果 預設值為 |
Alert Severity |
選填。 要指派給警告的嚴重性。這個參數的優先順序高於 如要使用 |
Severity Field Name |
選填。 用於擷取警告嚴重性值的欄位名稱。 如果欄位包含數值 (整數或浮點數),連接器會自動將其對應至 Google SecOps 嚴重性等級 (例如 |
Alerts Count Limit |
選填。 單一週期內可提取的快訊數量上限。 預設值為 |
Authenticate |
選填。 如果選取,連接器會使用提供的憑證驗證連線。 |
Username |
選填。 用於向 OpenSearch 執行個體驗證的使用者名稱。 |
Password |
選填。 用於向 OpenSearch 執行個體驗證的密碼。 |
Use SSL |
選填。 如果選取,連接器會啟用與伺服器的 SSL/TLS 連線。 |
Proxy Server Address |
選填。 連線時要使用的 Proxy 伺服器位址。 |
Proxy Username |
選填。 用於向 Proxy 伺服器驗證的使用者名稱。 |
Proxy Password |
選填。 用於向 Proxy 伺服器驗證的密碼。 |
Environment Field Name |
選填。 儲存環境名稱的欄位名稱。 如果缺少環境欄位,連接器會使用預設值。 預設值為 |
Environment Regex Pattern |
選填。 規則運算式模式,用於對 使用預設值 如果規則運算式模式為空值或空白,或環境值為空值,則最終環境結果為預設環境。 預設值為 |
標記支援
連接器支援三種不同的欄位對應標記法。舉例來說,如要對應 event.type,您可以提供 _source_event_type、event_type 或 event.type。
這項規定適用於下列參數:
Product Field NameEvent Field NameSeverity Field NameEnvironment Field NameTimestamp FieldAlert Field NameDescription Field(僅限 DSL 連接器)
如何在連接器中對應嚴重性
如果 Severity Field Name 包含數值 (整數或浮點數),連接器會按照下列方式對應:
- 重大:100
- 高:80 ≤ x < 100
- 中:60 ≤ x < 80
- 低:40 ≤ x < 60
- 資訊式:x < 40
如果是字串值,您必須更新連接器指令碼資料夾中的 severity_map_config.json 檔案。
範例設定
如要對應包含「Malicious」、「Unknown」或「Benign」的 event.severity 欄位,請按照下列步驟操作:
- 在「Severity Field Name」參數中輸入
event.severity。 - 更新
severity_map_config.json:
{
"event.severity": {
"Malicious": 100,
"Unknown": 60,
"Benign": -1
},
"Default": 50
}
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求解答。