UEBA 風險分析
本文將概略介紹 UEBA 風險分析類別中的規則集、必要資料,以及可用來調整各規則集所產生警示的設定。這些規則集會評估支援的記錄來源,協助您找出威脅。
規則集說明
「UEBA 風險分析」類別提供下列規則集,並依偵測到的模式類型分組:
驗證
- 使用者登入新裝置:使用者登入新裝置。
- 使用者異常驗證事件:與歷來使用情形相比,單一使用者實體最近發生異常驗證事件。
- 依裝置劃分的驗證失敗次數:與歷來使用情形相比,單一裝置實體最近有多次登入失敗。
- Failed Authentications by User:與過往使用情形相比,單一使用者實體最近有多次登入失敗。
網路流量分析
- Anomalous Inbound Bytes by Device:與歷來用量相比,最近 上傳至單一裝置實體的資料量顯著增加。
- 裝置傳出的位元組異常:與歷來用量相比,最近從單一裝置實體下載的資料量顯著增加。
- 裝置的總位元組數異常:與歷來用量相比,裝置實體最近上傳和下載了大量資料。
- 使用者傳入位元組異常:與歷來用量相比,單一使用者實體最近下載了大量資料。
- 使用者異常總位元組數:與歷來用量相比,使用者實體最近上傳和下載了大量資料。
- Brute Force then Successful Login by User:來自某個 IP 位址的單一使用者實體,在成功登入特定應用程式之前,曾多次嘗試驗證失敗。
依同業群組偵測
新建立的使用者登入異常或過多:新建立的使用者驗證活動異常或過多。這項功能會使用 AD 比對內容資料的建立時間。
新建立的使用者有異常或過多可疑動作:新建立的使用者有異常或過多活動 (包括但不限於 HTTP 遙測、程序執行和群組修改)。這項功能會使用 AD 比對內容資料的建立時間。
可疑動作
- Excessive Account Creation by Device:裝置實體建立了多個新使用者帳戶。
- 使用者發出的警示過多:防毒軟體或端點裝置回報了大量與使用者實體相關的安全性警示 (例如連線遭封鎖、偵測到惡意軟體),數量遠高於歷來模式。這些事件的
security_result.actionUDM 欄位設為BLOCK。
資料遺失防護偵測
- 具有資料竊取功能的異常或過多程序:與資料竊取功能相關的程序 (例如鍵盤側錄程式、螢幕截圖和遠端存取) 出現異常或過多活動。這項功能會使用 VirusTotal 的檔案中繼資料擴充功能。
UEBA 類別的風險分析所需資料
本節將詳細說明各規則集類別所需的資料,以達到最佳成效。雖然 UEBA 偵測功能可與所有支援的預設剖析器搭配使用,但使用下列特定資料類型可發揮最大效益。如需支援的預設剖析器完整清單,請參閱「支援的記錄類型和預設剖析器」。
驗證
如要使用上述任一規則集,請從 Azure AD Directory Audit (AZURE_AD_AUDIT) 或 Windows Event (WINEVTLOG) 收集記錄資料。
如果是 WINEVTLOG,您必須調整資料收集設定,在 Security 事件記錄 Channel 中加入下列 Windows Event IDs。這些事件會直接對應至偵測引擎使用的 Event types (例如 USER_LOGIN 或 PROCESS_LAUNCH)。
Windows 事件 ID 規定
| 事件類型 | Windows 事件 ID |
|---|---|
| USER_LOGIN | 529, 4624, 4625, 4626, 4648, 4672, 4768, 4769, 4770, 4771, 4777, 4820, 4821, 4964 |
| USER_CREATION | 4720 |
| NETWORK_CONNECTION | 4096, 4097, 4321, 5156, 5632, 5633, 5157 |
| GROUP_MODIFICATION | 4728, 4729, 4732, 4733, 4735, 4737, 4745, 4746, 4747, 4750, 4751, 4752, 4755, 4756, 4757, 4760, 4761, 4762, 4764, 4784, 4785, 4786, 4787, 4788, 4791 |
| PROCESS_LAUNCH | 4688 |
| PROCESS_OPEN | 4663, 4670, 4691, 8002 |
網路流量分析
如要使用這些規則集,請收集擷取網路活動的記錄資料。
例如 FortiGate (FORTINET_FIREWALL)、Check Point (CHECKPOINT_FIREWALL)、Zscaler (ZSCALER_WEBPROXY)、CrowdStrike Falcon (CS_EDR) 或 Carbon Black (CB_EDR) 等裝置。
依同業群組偵測
如要使用上述任一規則集,請從 Azure AD Directory Audit (AZURE_AD_AUDIT) 或 Windows Event (WINEVTLOG) 收集記錄資料。
可疑動作
這個群組中的規則集各自使用不同類型的資料。
「裝置建立過多帳戶」規則集
如要使用這個規則集,請從 Azure AD Directory Audit (AZURE_AD_AUDIT) 或 Windows Event (WINEVTLOG) 收集記錄資料。
「使用者發出過多快訊」規則集
如要使用這個規則集,請收集擷取端點活動或稽核資料的記錄資料,例如 CrowdStrike Falcon (CS_EDR)、Carbon Black (CB_EDR) 或 Azure AD Directory Audit (AZURE_AD_AUDIT) 記錄的資料。
資料遺失防護偵測
如要使用上述任一規則集,請收集擷取程序和檔案活動的記錄資料,例如 CrowdStrike Falcon (CS_EDR)、Carbon Black (CB_EDR) 或 SentinelOne EDR (SENTINEL_EDR) 記錄的資料。
欄位依附元件
本節說明 Google SecOps UEBA 規則使用的指標和維度欄位。
指標依附元件
下表列出指標和對應的 UDM 搜尋查詢,這些查詢定義了構成各項指標的事件。
| 指標 | UDM 搜尋查詢,用於找出對指標有影響的事件 |
|---|---|
AUTH_ATTEMPTS_FAIL |
metadata.event_type = "USER_LOGIN" |
AUTH_ATTEMPTS_SUCCESS |
metadata.event_type = "USER_LOGIN" |
AUTH_ATTEMPTS_TOTAL |
metadata.event_type = "USER_LOGIN" |
DNS_BYTES_OUTBOUND |
network.sent_bytes > 0 |
DNS_QUERIES_FAIL |
network.dns.id > 0 |
DNS_QUERIES_SUCCESS |
network.dns.id > 0 |
DNS_QUERIES_TOTAL |
network.dns.id > 0 |
FILE_EXECUTIONS_FAIL |
metadata.event_type = "PROCESS_LAUNCH" |
FILE_EXECUTIONS_SUCCESS |
metadata.event_type = "PROCESS_LAUNCH" |
FILE_EXECUTIONS_TOTAL |
metadata.event_type = "PROCESS_LAUNCH" |
HTTP_QUERIES_FAIL |
network.http.method != "" |
HTTP_QUERIES_SUCCESS |
network.http.method != "" |
HTTP_QUERIES_TOTAL |
network.http.method != "" |
NETWORK_BYTES_INBOUND |
network.received_bytes > 0 |
NETWORK_BYTES_OUTBOUND |
network.sent_bytes > 0 |
NETWORK_BYTES_TOTAL |
(network.received_bytes > 0 AND network.received_bytes < 1000000000000000) |
NETWORK_FLOWS_INBOUND |
network.received_bytes > 0 |
NETWORK_FLOWS_OUTBOUND |
network.sent_bytes > 0 |
NETWORK_FLOWS_TOTAL |
(network.received_bytes > 0 AND network.received_bytes < 1000000000000000) |
RESOURCE_READ_FAIL |
(metadata.event_type = "FILE_OPEN" OR metadata.event_type = "RESOURCE_READ") |
RESOURCE_READ_SUCCESS |
(metadata.event_type = "FILE_OPEN" OR metadata.event_type = "RESOURCE_READ") |
RESOURCE_READ_TOTAL |
(metadata.event_type = "FILE_OPEN" OR metadata.event_type = "RESOURCE_READ") |
RESOURCE_WRITTEN_FAIL |
(metadata.event_type = "FILE_CREATION" OR metadata.event_type = "RESOURCE_CREATION") |
RESOURCE_WRITTEN_SUCCESS |
(metadata.event_type = "FILE_CREATION" OR metadata.event_type = "RESOURCE_CREATION") |
RESOURCE_WRITTEN_TOTAL |
(metadata.event_type = "FILE_CREATION" OR metadata.event_type = "RESOURCE_CREATION") |
維度依附元件
下表列出維度,以及可用於篩選或分組的對應 UDM 欄位選項。
| 維度 | 欄位選項 |
|---|---|
| 主要裝置 | principal.asset.asset_idprincipal.asset.hostnameprincipal.asset.ipprincipal.asset.macprincipal.asset.product_object_id |
| 目標裝置 | target.asset.asset_idtarget.asset.hostnametarget.asset.iptarget.asset.mactarget.asset.product_object_id |
| 主要使用者 | principal.user.email_addressesprincipal.user.employee_idprincipal.user.product_object_idprincipal.user.useridprincipal.user.windows_sid |
| 目標使用者 | target.user.email_addressestarget.user.employee_idtarget.user.product_object_idtarget.user.useridtarget.user.windows_sid |
| 目標服務 | target.application |
| 目標 IP | target.ip |
| 主體程序檔案路徑 | principal.process.file.full_path |
| 主體程序檔案雜湊 | principal.process.file.sha256 |
| 主體檔案雜湊 | principal.file.sha256 |
| 主要國家/地區 | principal.ip_geo_artifact.location.country_or_region |
| 安全性類別 | security_result.category |
| 主要網路機構名稱 | principal.ip_geo_artifact.network.organization_name |
| 目標聯播網組織名稱 | target.ip_geo_artifact.network.organization_name |
| 用戶端憑證雜湊 | network.tls.client.certificate.sha256 |
| DNS 查詢類型 | network.dns.questions.type |
| DNS 網域 | network.dns_domain |
| HTTP 使用者代理程式 | network.http.user_agent |
| 事件類型 | metadata.event_type |
| 作業系統 | principal.platform |
調整這個類別中規則集傳回的警告
您可以使用規則排除條件,減少規則或規則集產生的偵測項目數量。
規則排除條件定義了條件,用於排除事件,避免規則集或規則集中的特定規則評估該事件。建立一或多個規則排除項目,有助於減少偵測數量。詳情請參閱「設定警告抑制」。
UEBA 類別的風險分析規則範例
以下範例說明如何建立規則,針對風險分數大於 100 的任何實體主機名稱產生偵測結果:
rule EntityRiskScore {
meta:
events:
$e1.principal.hostname != ""
$e1.principal.hostname = $hostname
$e2.graph.entity.hostname = $hostname
$e2.graph.risk_score.risk_window_size.seconds = 86400 // 24 hours
$e2.graph.risk_score.risk_score >= 100
// Run deduplication across the risk score.
$rscore = $e2.graph.risk_score.risk_score
match:
// Dedup on hostname and risk score across a 4 hour window.
$hostname, $rscore over 4h
outcome:
// Force these risk score based rules to have a risk score of zero to
// prevent self feedback loops.
$risk_score = 0
condition:
$e1 and $e2
}
這個範例規則也會使用比對區段執行自我簡化。如果規則偵測可能觸發,但主機名稱和風險評分在 4 小時內保持不變,系統就不會建立新的偵測。
實體風險評分規則的風險時間範圍只能是 24 小時或 7 天 (分別為 86,400 或 604,800 秒)。如果未在規則中加入風險時間範圍大小,規則會傳回不準確的結果。
實體風險評分資料與實體比對內容資料會分開儲存。如要在規則中同時使用這兩者,規則必須有兩個獨立的實體事件,一個用於實體內容,另一個用於實體風險評分,如以下範例所示:
rule EntityContextAndRiskScore {
meta:
events:
$log_in.metadata.event_type = "USER_LOGIN"
$log_in.principal.hostname = $host
$context.graph.entity.hostname = $host
$context.graph.metadata.entity_type = "ASSET"
$risk_score.graph.entity.hostname = $host
$risk_score.graph.risk_score.risk_window_size.seconds = 604800
match:
$host over 2m
outcome:
$entity_risk_score = max($risk_score.graph.risk_score.normalized_risk_score)
condition:
$log_in and $context and $risk_score and $entity_risk_score > 100
}
後續步驟
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求解答。