你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
注册表事件架构用于描述创建、修改或删除 Windows 注册表实体的 Windows 活动。
注册表事件特定于 Windows 系统,但由监视 Windows 的不同系统报告,例如 EDR (终结点检测和响应) 系统、Sysmon 或 Windows 本身。
有关Microsoft Sentinel规范化的详细信息,请参阅规范化和高级安全信息模型 (ASIM) 。
解析 器
若要使用统一所有内置分析器的统一分析程序,并确保分析跨所有配置的源运行,请在查询中使用 imRegistry 作为表名。
有关进程事件分析程序的列表,Microsoft Sentinel提供现成的,请参阅 ASIM 分析程序列表
从 Microsoft Sentinel GitHub 存储库部署统一的和特定于源的分析程序。
有关详细信息,请参阅 ASIM 分析程序和使用 ASIM 分析程序。
添加自己的规范化分析程序
为注册表事件信息模型实现自定义分析程序时,使用以下语法命名 KQL 函数: imRegistry<vendor><Product>。
将 KQL 函数添加到 imRegistry 统一分析器,以确保使用注册表事件模型的任何内容也使用新的分析程序。
筛选分析程序参数
注册表事件分析程序支持 筛选参数。 虽然这些参数是可选的,但它们可以提高查询性能。
以下筛选参数可用:
| 名称 | 类型 | 说明 |
|---|---|---|
| starttime | datetime | 仅筛选在此时间或之后发生的注册表事件。 此参数筛选 TimeGenerated 字段,该字段是事件时间的标准指示符,而不考虑 EventStartTime 和 EventEndTime 字段的特定于分析器的映射。 |
| endtime | datetime | 仅筛选在此时间或之前发生的注册表事件。 此参数筛选 TimeGenerated 字段,该字段是事件时间的标准指示符,而不考虑 EventStartTime 和 EventEndTime 字段的特定于分析器的映射。 |
| eventtype_in | 动态 | 仅筛选事件类型为所列值之一的注册表事件,包括、RegistryKeyCreatedRegistryKeyDeleted、RegistryKeyRenamed、 RegistryValueDeleted或 RegistryValueSet。 |
| actorusername_has_any | 动态 | 仅筛选参与者用户名具有任何所列值的注册表事件。 |
| registrykey_has_any | 动态 | 仅筛选注册表项具有任何所列值的注册表事件。 |
| registryvalue_has_any | 动态 | 仅筛选注册表值具有任何所列值的注册表事件。 |
| registrydata_has_any | 动态 | 仅筛选注册表数据具有任何所列值的注册表事件。 |
| dvchostname_has_any | 动态 | 仅筛选设备主机名具有任何所列值的注册表事件。 |
例如,若要仅筛选过去一天的注册表项创建事件,请使用:
_Im_RegistryEvent (eventtype_in=dynamic(['RegistryKeyCreated']), starttime = ago(1d), endtime=now())
规范化内容
Microsoft Sentinel提供持久化通过 IFEO 注册表项搜寻查询。 此查询适用于使用高级安全信息模型规范化的任何注册表活动数据。
有关详细信息,请参阅使用Microsoft Sentinel搜寻威胁。
架构详细信息
注册表事件信息模型与 OSSEM 注册表实体架构保持一致。
常见 ASIM 字段
重要
ASIM 通用字段一文中详细介绍了所有架构通用的字段。
具有特定准则的通用字段
以下列表提到了具有处理活动事件特定准则的字段:
| 字段 | 类 | 类型 | 说明 |
|---|---|---|---|
| EventType | 强制 | 枚举 | 描述记录报告的操作。 对于注册表记录,支持的值包括: - RegistryKeyCreated - RegistryKeyDeleted- RegistryKeyRenamed - RegistryValueDeleted - RegistryValueSet |
| EventSchemaVersion | 强制 | SchemaVersion (String) | 架构的版本。 此处记录的架构版本为 0.1.3 |
| EventSchema | 强制 | String | 此处记录的架构的名称为 RegistryEvent。 |
| Dvc 字段 | 对于注册表活动事件,设备字段是指发生注册表活动的系统。 |
所有常见字段
下表中显示的字段对所有 ASIM 架构都是通用的。 上面指定的任何准则都覆盖字段的一般准则。 例如,字段通常可能是可选的,但对于特定架构是必需的。 有关每个字段的更多详细信息,请参阅 ASIM 通用字段 一文。
| 类 | Fields |
|---|---|
| 强制 |
-
EventCount - EventStartTime - EventEndTime - EventType - EventResult - EventProduct - EventVendor - EventSchema - EventSchemaVersion - Dvc |
| 建议 |
-
EventResultDetails - EventSeverity - EventUid - DvcIpAddr - DvcHostname - DvcDomain - DvcDomainType - DvcFQDN - DvcId - DvcIdType - DvcAction |
| 可选 |
-
EventMessage - EventSubType - EventOriginalUid - EventOriginalType - EventOriginalSubType - EventOriginalResultDetails - EventOriginalSeverity - EventProductVersion - EventReportUrl - EventOwner - DvcZone - DvcMacAddr - DvcOs - DvcOsVersion - DvcOriginalAction - DvcInterface - AdditionalFields - DvcDescription - DvcScopeId - DvcScope |
注册表事件特定字段
下表中列出的字段特定于注册表事件,但与其他架构中的字段类似,并遵循类似的命名约定。
有关详细信息,请参阅 Windows 中 注册表的结构 文档。
| 字段 | 类 | 类型 | 说明 |
|---|---|---|---|
| RegistryKey | 强制 | String | 与操作关联的注册表项,规范化为标准根密钥命名约定。 有关详细信息,请参阅 根密钥。 注册表项类似于文件系统中的文件夹。 例如: HKEY_LOCAL_MACHINE\SOFTWARE\MTG |
| RegistryValue | 建议 | String | 与操作关联的注册表值。 注册表值类似于文件系统中的文件。 例如: Path |
| RegistryValueType | 建议 | String | 注册表值的类型,规范化为标准格式。 有关详细信息,请参阅 值类型。 例如: Reg_Expand_Sz |
| RegistryValueData | 建议 | String | 存储在注册表值中的数据。 例如: C:\Windows\system32;C:\Windows; |
| RegistryPreviousKey | 建议 | String | 对于修改注册表的操作,原始注册表项规范化为标准根键命名。 有关详细信息,请参阅 根密钥。 注意:如果操作更改了其他字段(如 值),但键保持不变, 则 RegistryPreviousKey 将具有与 RegistryKey 相同的值。 例如: HKEY_LOCAL_MACHINE\SOFTWARE\MTG |
| RegistryPreviousValue | 建议 | String | 对于修改注册表的操作,原始值类型规范化为标准格式。 有关详细信息,请参阅 值类型。 如果未更改类型,则此字段的值与 RegistryValueType 字段相同。 例如: Path |
| RegistryPreviousValueType | 建议 | String | 对于修改注册表的操作,请使用原始值类型。 如果未更改类型,此字段将具有与 RegistryValueType 字段相同的值,规范化为标准窗体。 有关详细信息,请参阅 值类型。 例如: Reg_Expand_Sz |
| RegistryPreviousValueData | 建议 | String | 原始注册表数据,用于修改注册表的操作。 例如: C:\Windows\system32;C:\Windows; |
| 用户 | 别名 |
ActorUsername 字段的别名。 例如: CONTOSO\ dadmin |
|
| 进程 | 别名 |
ActingProcessName 字段的别名。 例如: C:\Windows\System32\rundll32.exe |
|
| ActorUsername | 强制 | 用户名 (字符串) | 发起事件的用户的用户名。 例如: CONTOSO\WIN-GG82ULGC9GO$ |
| ActorUsernameType | 条件 | 枚举 | 指定 存储在 ActorUsername 字段中的用户名的类型。 有关详细信息,请参阅 用户实体。 例如: Windows |
| ActorUserId | 建议 | String | 执行组件的唯一 ID。 特定 ID 取决于生成事件的系统。 有关详细信息,请参阅 用户实体。 例如: S-1-5-18 |
| ActorScope | 可选 | String | 定义 ActorUserId 和 ActorUsername 的范围,例如Microsoft Entra租户。 有关详细信息和允许的值列表,请参阅架构概述一文中的 UserScope。 |
| ActorUserIdType | 条件 | 枚举 |
存储在 ActorUserId 字段中的 ID 的类型。 有关详细信息,请参阅 用户实体。 例如: SID |
| ActorSessionId | 可选 | String | 执行组件登录会话的唯一 ID。 例如: 999注意:类型定义为 字符串 以支持不同的系统,但在 Windows 上,此值必须是数值。 如果使用的是 Windows 计算机,并且源发送了其他类型,请确保转换值。 例如,如果 source 发送十六进制值,请将其转换为十进制值。 |
| ActingProcessName | 可选 | String | 执行进程图像文件的文件名。 此名称通常被视为进程名称。 例如: C:\Windows\explorer.exe |
| ActingProcessId | 强制 | String | 进程 ID (执行进程的 PID) 。 例如: 48610176 注意:类型定义为字符串以支持不同的系统,但在 Windows 和 Linux此值必须是数值。 如果你使用的是 Windows 或 Linux 计算机,并且使用了其他类型,请确保转换值。 例如,如果使用了十六进制值,请将其转换为十进制值。 |
| ActingProcessGuid | 可选 | GUID (字符串) | 生成的唯一标识符 (操作过程的 GUID) 。 例如: EF3BD0BD-2B74-60C5-AF5C-010000001E00 |
| ParentProcessName | 可选 | String | 父进程映像文件的文件名。 此值通常被视为进程名称。 例如: C:\Windows\explorer.exe |
| ParentProcessId | 强制 | String | 进程 ID (父进程的 PID) 。 例如: 48610176 |
| ParentProcessGuid | 可选 | String | 生成的唯一标识符 (父进程的 GUID) 。 例如: EF3BD0BD-2B74-60C5-AF5C-010000001E00 |
检查字段
以下字段用于表示安全系统(如 EDR 系统)执行的检查。
| 字段 | 类 | 类型 | 说明 |
|---|---|---|---|
| RuleName | 可选 | String | 与检查结果关联的规则的名称或 ID。 |
| RuleNumber | 可选 | 整数 | 与检查结果关联的规则编号。 |
| Rule | 条件 | String | kRuleName 的值或 RuleNumber 的值。 如果使用 RuleNumber 的值,则类型应转换为字符串。 |
| ThreatId | 可选 | String | 文件活动中标识的威胁或恶意软件的 ID。 |
| ThreatName | 可选 | String | 文件活动中标识的威胁或恶意软件的名称。 例如: EICAR Test File |
| ThreatCategory | 可选 | String | 文件活动中标识的威胁或恶意软件的类别。 例如: Trojan |
| ThreatRiskLevel | 可选 | RiskLevel (整数) | 与标识的威胁关联的风险级别。 级别应为 介于 0 和 100 之间的数字。 注意:可以使用其他比例在源记录中提供该值,应将其规范化为此比例。 原始值应存储在 ThreatOriginalRiskLevel 中。 |
| ThreatOriginalRiskLevel | 可选 | String | 报告设备报告的风险级别。 |
| ThreatField | 可选 | String | 已识别威胁的字段。 |
| ThreatConfidence | 可选 | ConfidenceLevel (Integer) | 所识别的威胁的置信度,规范化为介于 0 和 100 之间的值。 |
| ThreatOriginalConfidence | 可选 | String | 已识别的威胁的原始置信度,由报告设备报告。 |
| ThreatIsActive | 可选 | 布尔值 | 如果确定的威胁被视为活动威胁,则为 True。 |
| ThreatFirstReportedTime | 可选 | datetime | 首次将 IP 地址或域标识为威胁。 |
| ThreatLastReportedTime | 可选 | datetime | 上次将 IP 地址或域标识为威胁的时间。 |
根键
不同的源使用不同的表示形式表示注册表项前缀。 对于 RegistryKey 和 RegistryPreviousKey 字段,请使用以下规范化前缀:
| 规范化键前缀 | 其他常见表示形式 |
|---|---|
| HKEY_LOCAL_MACHINE |
HKLM, \REGISTRY\MACHINE |
| HKEY_USERS |
HKU, \REGISTRY\USER |
值类型
不同的源使用不同的表示形式表示注册表值类型。 对于 RegistryValueType 和 RegistryPreviousValueType 字段,请使用以下规范化类型:
| 规范化键前缀 | 其他常见表示形式 |
|---|---|
| Reg_None |
None, %%1872 |
| Reg_Sz |
String, %%1873 |
| Reg_Expand_Sz |
ExpandString, %%1874 |
| Reg_Binary |
Binary, %%1875 |
| Reg_DWord |
Dword, %%1876 |
| Reg_Multi_Sz |
MultiString, %%1879 |
| Reg_QWord |
Qword, %%1883 |
架构更新
以下是架构版本 0.1.1 中的更改:
- 添加了字段
EventSchema。
以下是架构版本 0.1.2 中的更改:
- 添加了字段
ActorScope、DvcScopeId和DvcScope。
以下是架构版本 0.1.3 中的更改:
- 添加了检查字段。
后续步骤
有关更多信息,请参阅: