將 OpenSearch 與 Google SecOps 整合
整合版本:1.0
本文說明如何將 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 Certificate File」(CA 憑證檔案) 欄位。
- 選取「驗證 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」(進階 ES 搜尋) 動作需要下列參數:
| 參數 | 說明 |
|---|---|
Index |
選填。 OpenSearch 索引的搜尋模式 (例如 預設值為 |
Query |
選填。 使用 Lucene 語法執行的搜尋查詢 (例如 預設值為 |
Limit |
選填。 要傳回的文件數量上限。如要取消限制,請將這個值設為 預設值為 |
Display Field |
選填。 以半形逗號分隔的特定欄位清單,用於指定要傳回的欄位。 預設值為 |
Search Field |
選填。 當 預設值為 |
Timestamp Field |
選填。 用於時間篩選的欄位名稱。 如果 預設值為 |
Oldest Date |
選填。 搜尋的開始日期。這項動作會傳回發生時間等於或晚於這個時間戳記的記錄。 您可以提供確切的 UTC 時間戳記 ( 預設值為 |
Earliest Date |
選填。 搜尋的結束日期。這項動作會傳回在這個時間戳記當天或之前發生的記錄。 您可以提供確切的 UTC 時間戳記 ( 預設值為 |
動作輸出內容
「Advanced ES Search」動作會提供下列輸出內容:
| 動作輸出類型 | 可用性 |
|---|---|
| 案件總覽附件 | 無法使用 |
| 案件總覽連結 | 無法使用 |
| 案件總覽表格 | 無法使用 |
| 補充資訊表格 | 無法使用 |
| JSON 結果 | 無法使用 |
| 輸出訊息 | 可用 |
| 指令碼結果 | 可用 |
指令碼結果
下表列出使用「Advanced ES Search」動作時,指令碼結果輸出的值:
| 指令碼結果名稱 | 值 |
|---|---|
results |
RESULTS |
DSL 搜尋
使用 DSL Search 動作,在所有 OpenSearch 索引中執行全面搜尋,並以字典格式擷取結果。
這項操作不會在 Google SecOps 實體上執行。
動作輸入內容
DSL Search 動作需要下列參數:
| 參數 | 說明 |
|---|---|
Index |
選填。 OpenSearch 索引的搜尋模式 (例如 預設值為 |
Query |
選填。 使用 Lucene 語法執行的搜尋查詢 (例如 預設值為 |
Limit |
選填。 要傳回的文件數量上限。如要取消限制,請將這個值設為 預設值為 |
動作輸出內容
DSL 搜尋動作會提供下列輸出內容:
| 動作輸出類型 | 可用性 |
|---|---|
| 案件總覽附件 | 無法使用 |
| 案件總覽連結 | 無法使用 |
| 案件總覽表格 | 無法使用 |
| 補充資訊表格 | 無法使用 |
| JSON 結果 | 可用 |
| 輸出訊息 | 可用 |
| 指令碼結果 | 可用 |
JSON 結果
以下範例顯示使用 DSL 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"
}
]
指令碼結果
下表列出使用 DSL 搜尋動作時,指令碼結果輸出的值:
| 指令碼結果名稱 | 值 |
|---|---|
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 連接器,透過 Domain Specific Language (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 檔案。
範例設定
如要對應含有「惡意」、「不明」或「良性」的 event.severity 欄位,請按照下列步驟操作:
- 在「Severity Field Name」(嚴重程度欄位名稱) 參數中輸入
event.severity。 - 更新
severity_map_config.json:
{
"event.severity": {
"Malicious": 100,
"Unknown": 60,
"Benign": -1
},
"Default": 50
}
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。