在情境感知型分析中使用 Sensitive Data Protection 数据
本文档演示了如何使用 Sensitive Data Protection 和其他日志来源的实体上下文数据,在执行调查时深入了解潜在威胁的影响和范围。
本文档中介绍的用例可检测用户执行恶意文件的情况(MITRE ATT&CK 技术 T1204.002),以及该用户是否还拥有网络上其他位置的敏感数据的访问权限。
此示例要求已注入并标准化以下数据 Google Security Operations 的团队:
- 使用网络日志和 EDR 日志的用户活动数据。
- 来自 Google Cloud IAM 分析等数据源的资源关系。
- 包含有关所存储数据的类型和敏感度标签的 Sensitive Data Protection 日志。
Google Security Operations 必须能够将原始数据解析为统一数据模型 (UDM) 实体和事件记录。
如需了解如何将敏感数据保护数据提取到 Google Security Operations,请参阅将敏感数据保护数据导出到 Google Security Operations。
Google Cloud IAM Analysis 数据
本例中的 Google Cloud IAM 分析日志数据可识别组织中的用户,并捕获每位用户与网络上其他系统的关系。以下是存储为 UDM 的 IAM 分析日志的一个片段
实体记录。它会存储用户 mikeross
的相关信息,
会管理一个名为 analytics:claim.patients
的 BigQuery 表。
metadata.vendor_name: "Google Cloud Platform"
metadata.product_name: "GCP IAM Analysis"
metadata.entity_type: "USER"
entity.user.userid: "mikeross"
relations[2].entity.resource.name: "analytics:claim.patients"
relations[2].entity.resource.resource_type: "TABLE"
relations[2].entity_type: "RESOURCE"
relations[2].relationship: "ADMINISTERS"
Sensitive Data Protection 数据
此示例中的敏感数据保护日志数据存储了 BigQuery 表的相关信息。以下是作为 UDM 实体存储的 Sensitive Data Protection 日志的代码段
记录。它表示名为 analytics:claim.patients
的 BigQuery 表,其中包含
Predicted InfoType
标签 US_SOCIAL_SECURITY_NUMBER
,表示
表存储美国社会保障号。
metadata.vendor_name: "Google Cloud Platform"
metadata.product_name: "GCP DLP CONTEXT"
metadata.entity_type: "RESOURCE"
metadata.description: "RISK_HIGH"
entity.resource.resource_type: "TABLE"
entity.resource.resource_subtype: "BigQuery Table"
entity.resource.attribute.cloud.environment"GOOGLE_CLOUD_PLATFORM"
entity.resource.attribute.labels[0].key: "Sensitivity Score"
entity.resource.attribute.labels[0].value: "SENSITIVITY_HIGH"
entity.resource.attribute.labels[1].key: "Predicted InfoType"
entity.resource.attribute.labels[1].value: "US_SOCIAL_SECURITY_NUMBER"
entity.resource.product_object_id: "analytics:claim.patients"
Web 代理事件
此示例中的 Web 代理事件会捕获网络活动。以下代码段是存储为 UDM 事件记录的 Zscaler Web 代理日志。它会捕获用户执行的某个可执行文件的网络下载事件,其中 userid
值为 mikeross
,received_bytes
值为 514605。
metadata.log_type = "ZSCALER_WEBPROXY"
metadata.product_name = "NSS"
metadata.vendor_name = "Zscaler"
metadata.event_type = "NETWORK_HTTP"
network.http.response_code = 200
network.received_bytes = 514605
principal.user.userid = "mikeross"
target.url = "http://manygoodnews.com/dow/Client%20Update.exe"
EDR 活动
此示例中的 EDR 事件会捕获端点设备上的活动。以下代码段显示了存储为 UDM 事件记录的 CrowdStrike Falcon EDR 日志。它捕获涉及 Microsoft Excel 应用的网络事件
以及 userid
值为 mikeross
的用户。
metadata.log_type = "CS_EDR"
metadata.product_name = "Falcon"
metadata.vendor_name = "Crowdstrike"
metadata.event_type = "NETWORK_HTTP"
target.process.file.full_path = "\\Device\\HarddiskVolume1\\Program Files\\C:\\Program Files\\Microsoft Office\\Office16\\EXCEL.exe"
target.url = "http://manygoodnews.com/dow/Client%20Update.exe"
target.user.userid = "mikeross"
请注意,这些记录中存在一些共同信息,即用户标识符 mikeross
和表名称 analytics:claim.patients
。本文档的下一部分
展示了如何在规则中使用这些值来联接记录。
此示例中的检测引擎规则
此示例规则可检测用户 (MITRE) 执行恶意文件的行为 ATT&CK 技术 T1204.002。
当用户同时出现以下情况时,该规则会为检测分配较高的风险得分 访问网络中其他位置的敏感数据。该规则可将 以下信息:
- 用户活动,例如下载或启动可执行文件。
- 资源之间的关系,例如,用户与 BigQuery 表。
- 用户有权访问的资源中存在敏感信息,例如 BigQuery 表中存储的数据类型。
下面介绍了示例规则中的各个部分。
events
部分用于指定规则要查找的数据模式,其中包含以下内容:- 第 1 组和第 2 组识别导致 捕获下载的大量数据或 活动。
- 第 3 组用于标识 网络和 EDR 事件也有权访问 BigQuery 表。
- 第 4 组标识 BigQuery 表的敏感数据保护记录 有权访问的所有资源。
每组表达式都使用
$table_name
变量或$user
变量 来联接与同一用户和数据库表相关的记录。在
outcome
部分中,规则会创建一个$risk_score
变量,并根据表中数据的敏感性设置值。在本例中,它会检查 数据带有US_SOCIAL_SECURITY_NUMBER
标签 敏感数据保护 infoType。outcome
部分还会设置其他变量,例如$principalHostname
和$entity_resource_name
。这些变量会随检测结果一起返回并存储,这样当您在 Google 安全运营中心中查看检测结果时,还可以将变量值显示为列。condition
部分表示该模式会搜索events
部分中指定的所有 UDM 记录。
rule high_risk_user_download_executable_from_macro {
meta:
author = "Google Cloud Security Demos"
description = "Executable downloaded by Microsoft Excel from High Risk User"
severity = "High"
technique = "T1204.002"
events:
//Group 1. identify a proxy event with suspected executable download
$proxy_event.principal.user.userid = $user
$proxy_event.target.url = /.*\.exe$/ or
$proxy_event.network.received_bytes > 102400
//Group 2. correlate with an EDR event indicating Excel activity
$edr_event.target.user.userid = $user
$edr_event.target.process.file.full_path = /excel/ nocase
$edr_event.metadata.event_type = "NETWORK_HTTP"
//Group 3. Use the entity to find the permissions
$user_entity.graph.entity.user.userid = $user
$user_entity.graph.relations.entity.resource.name = $table_name
//Group 4. the entity is from Cloud DLP data
$table_context.graph.entity.resource.product_object_id = $table_name
$table_context.graph.metadata.product_name = "GCP DLP CONTEXT"
match:
$user over 5m
outcome:
//calculate risk score
$risk_score = max(
if( $table_context.graph.entity.resource.attribute.labels.value = "US_SOCIAL_SECURITY_NUMBER", 80)
)
$technique = array_distinct("T1204.002")
$principalHostname = array_distinct($proxy_event.principal.hostname)
$principalIp = array_distinct($proxy_event.principal.ip)
$principalMac = array_distinct($proxy_event.principal.mac)
$targetHostname = array_distinct($proxy_event.target.hostname)
$target_url = array_distinct($proxy_event.target.url)
$targetIp = array_distinct($proxy_event.target.ip)
$principalUserUserid = array_distinct($proxy_event.principal.user.userid)
$entity_resource_name = array_distinct($table_context.graph.entity.resource.name)
condition:
$proxy_event and $edr_event and $user_entity and $table_context
}
检测简介
如果您针对现有数据测试规则,并且规则识别出定义中指定的活动模式,则会生成检测结果。检测 面板会显示测试规则后生成的检测结果。通过 检测面板还会显示导致 来创建检测。在此示例中,系统会显示以下记录:
- Google Cloud IAM 分析 UDM 实体
- Sensitive Data Protection UDM 实体
- Zscaler 网络代理 UDM 事件
- CrowdStrike Falcon EDR UDM 事件
在检测面板中,选择任何事件或实体记录即可查看详细信息。
检测还会存储 outcome
中定义的变量
部分。如需在 Detection 面板中显示变量,请选择
列,然后从
列菜单。所选列会显示在检测面板中。
后续步骤
要编写自定义规则,请参阅 YARA-L 2.0 语言概览。
如需创建自定义情境感知分析,请参阅创建情境感知分析
如需使用预定义的威胁分析,请参阅 使用 Google Security Operations 精选检测。