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.action UDM 欄位設為 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"
AND security_result.action != "UNKNOWN_ACTION"
AND security_result.action != "ALLOW"
AUTH_ATTEMPTS_SUCCESS metadata.event_type = "USER_LOGIN"
AND (security_result.action = "UNKNOWN_ACTION" OR security_result.action = "ALLOW")
AUTH_ATTEMPTS_TOTAL metadata.event_type = "USER_LOGIN"
AND security_result.action >= "UNKNOWN_ACTION"
DNS_BYTES_OUTBOUND network.sent_bytes > 0
AND (network.ip_protocol = "UDP" AND target.port = 53)
OR (network.ip_protocol = "TCP" AND (target.port = 53 OR target.port=3000))
DNS_QUERIES_FAIL network.dns.id > 0
AND network.dns.response_code != 0
DNS_QUERIES_SUCCESS network.dns.id > 0
AND network.dns.response_code = 0
DNS_QUERIES_TOTAL network.dns.id > 0
FILE_EXECUTIONS_FAIL metadata.event_type = "PROCESS_LAUNCH"
AND security_result.action != "ALLOW"
FILE_EXECUTIONS_SUCCESS metadata.event_type = "PROCESS_LAUNCH"
AND security_result.action = "ALLOW"
FILE_EXECUTIONS_TOTAL metadata.event_type = "PROCESS_LAUNCH"
HTTP_QUERIES_FAIL network.http.method != ""
AND (network.http.response_code >= 400 OR network.http.response_code = 0)
HTTP_QUERIES_SUCCESS network.http.method != ""
AND network.http.response_code < 400
HTTP_QUERIES_TOTAL network.http.method != ""
NETWORK_BYTES_INBOUND network.received_bytes > 0
AND network.received_bytes < 1000000000000000
NETWORK_BYTES_OUTBOUND network.sent_bytes > 0
AND network.sent_bytes < 1000000000000000
NETWORK_BYTES_TOTAL (network.received_bytes > 0 AND network.received_bytes < 1000000000000000)
OR (network.sent_bytes > 0 AND network.sent_bytes < 1000000000000000)
NETWORK_FLOWS_INBOUND network.received_bytes > 0
AND network.received_bytes < 1000000000000000
NETWORK_FLOWS_OUTBOUND network.sent_bytes > 0
AND network.sent_bytes < 1000000000000000
NETWORK_FLOWS_TOTAL (network.received_bytes > 0 AND network.received_bytes < 1000000000000000)
OR (network.sent_bytes > 0 AND network.sent_bytes < 1000000000000000)
RESOURCE_READ_FAIL (metadata.event_type = "FILE_OPEN" OR metadata.event_type = "RESOURCE_READ")
AND security_result.action != "UNKNOWN_ACTION"
AND security_result.action != "ALLOW"
RESOURCE_READ_SUCCESS (metadata.event_type = "FILE_OPEN" OR metadata.event_type = "RESOURCE_READ")
AND (security_result.action = "UNKNOWN_ACTION" OR security_result.action = "ALLOW")
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")
AND security_result.action != "UNKNOWN_ACTION"
AND security_result.action != "ALLOW"
RESOURCE_WRITTEN_SUCCESS (metadata.event_type = "FILE_CREATION" OR metadata.event_type = "RESOURCE_CREATION")
AND (security_result.action = "UNKNOWN_ACTION" OR security_result.action = "ALLOW")
RESOURCE_WRITTEN_TOTAL (metadata.event_type = "FILE_CREATION" OR metadata.event_type = "RESOURCE_CREATION")

維度依附元件

下表列出維度,以及可用於篩選或分組的對應 UDM 欄位選項。

維度 欄位選項
主要裝置 principal.asset.asset_id
principal.asset.hostname
principal.asset.ip
principal.asset.mac
principal.asset.product_object_id
目標裝置 target.asset.asset_id
target.asset.hostname
target.asset.ip
target.asset.mac
target.asset.product_object_id
主要使用者 principal.user.email_addresses
principal.user.employee_id
principal.user.product_object_id
principal.user.userid
principal.user.windows_sid
目標使用者 target.user.email_addresses
target.user.employee_id
target.user.product_object_id
target.user.userid
target.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 專業人員尋求解答。