高级安全信息模型 (ASIM) 架构
高级安全信息模型 (ASIM) 架构是表示某个活动的一组字段。 在查询中使用来自规范化架构的字段可确保查询适用于每个规范化源。
若要了解架构如何匹配 ASIM 体系结构,请参阅 ASIM 体系结构图。
架构参考概述了构成每个架构的字段。 ASIM 当前定义了以下架构:
架构 | 版本 | 状态 |
---|---|---|
审核事件 | 0.1 | 预览 |
身份验证事件 | 0.1.3 | 预览 |
DNS 活动 | 0.1.7 | 预览 |
DHCP 活动 | 0.1 | 预览 |
文件活动 | 0.2.1 | 预览 |
网络会话 | 0.2.6 | 预览 |
进程事件 | 0.1.4 | 预览 |
注册表事件 | 0.1.2 | 预览 |
用户管理 | 0.1 | 预览 |
Web 会话 | 0.2.6 | 预览 |
重要
ASIM 架构和分析器目前处于预览阶段。 Azure 预览版补充条款包含适用于 beta 版、预览版或其他尚未正式发布的 Azure 功能的其他法律条款。
架构概念
以下概念有助于理解架构参考文档,并在数据包含架构未涵盖的信息时以规范化方式扩展架构。
概念 | 说明 |
---|---|
字段名 | 每个架构的核心部分是其字段名称。 字段名称属于以下组: - 所有架构通用的字段。 - 特定于架构的字段。 - 表示参与架构的实体(例如用户)的字段。 表示实体的字段在不同的架构中是类似的。 如果源中的字段未在记录的架构中提供,这些字段将被规范化以保持一致。 如果这些额外的字段表示实体,则会根据实体字段准则将这些字段规范化。 否则,架构将会尽量在所有架构中保持一致。 例如,虽然 DNS 服务器活动日志不提供用户信息,但终结点中的 DNS 活动日志可以包含可根据用户实体准则规范化的用户信息。 |
字段类型 | 每个架构字段有一个类型。 Log Analytics 工作区具有有限的一组数据类型。 出于此原因,Microsoft Sentinel 对许多架构字段使用某种逻辑类型,Log Analytics 不强制要求使用该类型,但该类型是为了实现架构兼容性而必须使用的。 逻辑字段类型可确保值和字段名称在不同的源中保持一致。 有关详细信息,请参阅逻辑类型。 |
字段类 | 字段可能有多个类,它们定义分析程序应在何时实现字段: - 必需的字段必须出现在每个分析器中- 。 如果源未提供此值的信息,或者无法添加数据,则源不支持引用规范化架构的大多数内容项。 - 建议的字段(如果可用)应规范化- 。 但是,它们可能不会在每个源中提供。 引用该规范化架构的任何内容项都应考虑到可用性。 - 可选字段(如果可用)可以规范化或保持其原始形式- 。 通常,出于性能方面的原因,精简的分析器不会将其规范化。 - 如果其关注的字段已填充,则条件字段必填。 条件字段通常用于描述另一个字段中的值。 例如,通用字段 DvcIdType 描述公共字段 DvcId 中的值,因此如果填充了后者,该字段必填。 - 别名是条件字段的特殊类型;如果填充了别名字段,则该字段必填。 |
通用字段 | 所有 ASIM 架构有一些通用的字段。 每个架构可以添加有关在特定架构上下文中使用一些通用字段的准则。 例如,EventType 字段允许的值可能因每个架构而异,EventSchemaVersion 字段的值同样如此。 |
实体 | 事件围绕用户、主机、进程或文件等实体进行演变。 每个实体可能需要多个字段来描述。 例如,主机可能具有名称和 IP 地址。 单个记录可能包括相同类型的多个实体,例如源主机和目标主机。 ASIM 定义了如何一致地描述实体,而实体允许扩展架构。 例如,虽然网络会话架构不包括进程信息,但某些事件源确实提供可添加的进程信息。 有关详细信息,请参阅实体。 |
别名 | 通过别名可对一个指定值使用多个名称。 在某些情况下,不同的用户要求某个字段具有不同的名称。 例如,在 DNS 术语中,你可能需要一个名为 DnsQuery 的字段,但更常见的情况是它包含一个域名。 通过别名 Domain 可同时使用这两个名称,从而有助于用户。 在某些情况下,别名可以具有多个字段中某一个的值,具体取决于事件中可用的值。 例如,Dvc 别名会对 DvcFQDN、DvcId、DvcHostname、DvcIpAddr 或 Event Product 字段设置别名。 当别名可以有多个值时,其类型必须是一个字符串,以容纳所有可能的别名值。 因此,向此类别名赋值时,请确保使用 KQL 函数 tostring 将类型转换为字符串。 本机规范化表不包括别名,因为这些别名意味着重复的数据存储。 转而,存根分析程序会添加别名。 若要在分析程序中实现别名,请使用 extend 运算符创建原始值的副本。 |
逻辑类型
每个架构字段有一个类型。 某些字段具有内置的 Log Analytics 类型,例如 string
、int
、datetime
或 dynamic
。 其他字段具有逻辑类型,该类型表示字段值的规范化方式。
数据类型 | 物理类型 | 格式和值 |
---|---|---|
布尔值 | Bool | 使用内置 KQL bool 数据类型,而不要使用布尔值的数字或字符串表示形式。 |
枚举 | 字符串 | 为字段显式定义的值列表。 架构定义列出了接受的值。 |
日期/时间 | 根据引入方法功能,按优先级的降序使用以下任一物理表示形式: - Log Analytics 内置的日期时间类型 - 使用 Log Analytics 日期时间数字表示形式的整数字段。 - 使用 Log Analytics 日期时间数字表示形式的字符串字段 - 用于存储受支持 Log Analytics 日期/时间格式的字符串字段。 |
Log Analytics 日期和时间表示形式与 Unix 时间的表示形式类似,但两者实际上是不同的。 有关详细信息,请参阅转换指南。 注意:在适用的情况下,应调整时间的时区。 |
MAC 地址 | 字符串 | 冒分十六进制表示法。 |
IP 地址 | 字符串 | Microsoft Sentinel 架构没有单独的 IPv4 和 IPv6 地址。 任一 IP 地址字段都可以包含 IPv4 地址或 IPv6 地址,如下所述: - 采用点分十进制表示法的 IPv4- 。 - 采用 8 个 16 位段表示法的 IPv6,允许短格式- 。 例如: - IPv4:- 192.168.10.10 - IPv6:- FEDC:BA98:7654:3210:FEDC:BA98:7654:3210 - IPv6 短格式:- 1080::8:800:200C:417A |
FQDN | 字符串 | 使用点分表示法的完全限定域名,例如 docs.azure.cn 。 有关详细信息,请参阅实体。 |
Hostname | 字符串 | 不是 FQDN 的主机名,最多包含 63 个字符,包括字母、数字和连字符。 有关详细信息,请参阅实体。 |
DomainType | Enumerated | 存储在域和 FQDN 字段中的域的类型。 有关值的列表和详细信息,请参阅设备实体。 |
DvcIdType | Enumerated | 存储在 DvcId 字段中的设备 ID 的类型。 有关允许值的列表和其他信息,请参阅 DvcIdType。 |
DeviceType | Enumerated | 存储在 DeviceType 字段中的设备的类型。 可能的值包括: - Computer - Mobile Device - IOT Device - Other 。 有关详细信息,请参阅实体。 |
Username | String | 支持的类型之一中的有效用户名。 有关详细信息,请参阅用户实体。 |
UsernameType | Enumerated | 用户名字段中存储的用户名的类型。 有关详细信息和支持的值的列表,请参阅用户实体。 |
UserIdType | Enumerated | 存储在用户 ID 字段中的 ID 的类型。 支持的值为 SID 、UIS 、AADID 和 PUID 。 有关详细信息,请参阅用户实体。 |
UserType | Enumerated | 用户的类型。 有关详细信息和允许的值的列表,请参阅用户实体。 |
AppType | Enumerated | 应用程序的类型。 支持的值包括:Process 、 Service 、Resource 、URL 、SaaS application 、CSP 和 Other 。 |
国家/地区 | 字符串 | 根据以下优先级使用 ISO 3166-1 的字符串: - Alpha-2 代码,例如 US 表示美国。 - Alpha-3 代码,例如 USA 表示美国。 - 短名称。 在国际标准化组织 (ISO) 网站上可以找到代码列表。 |
区域 | 字符串 | 使用 ISO 3166-2 的国家/地区辖区名称。 在国际标准化组织 (ISO) 网站上可以找到代码列表。 |
城市 | String | |
经度 | Double | ISO 6709 坐标表示形式(带符号的十进制数)。 |
纬度 | Double | ISO 6709 坐标表示形式(带符号的十进制数)。 |
MD5 | 字符串 | 32 个十六进制字符。 |
SHA1 | 字符串 | 40 个十六进制字符。 |
SHA256 | 字符串 | 64 个十六进制字符。 |
SHA512 | 字符串 | 128 个十六进制字符。 |
实体
事件围绕用户、主机、进程或文件等实体进行演变。 实体表示形式允许将相同类型的多个实体包含在单个记录中,并支持相同实体的多个属性。
为了启用实体功能,实体表示形式遵守以下准则:
准则 | 说明 |
---|---|
描述符和别名 | 由于单个事件通常包括相同类型的多个实体(例如源主机和目标主机),因此描述符用作前缀来标识与特定实体关联的所有字段。 为了保持规范化,ASIM 使用少量的标准描述符,并为实体的特定角色选择最合适的描述符。 如果某种类型的单个实体与某个事件相关,则无需使用描述符。 此外,一组不带描述符的字段将别名化每种类型的最常用实体。 |
标识符和类型 | 规范化架构允许为每个实体使用多个标识符,我们预期这些标识符将在事件中共存。 如果源事件具有无法映射到规范化架构的其他实体标识符,请将这些标识符保留为源的形式,或使用 AdditionalFields 动态字段。 若要维护标识符的类型信息,在适用的情况下,请将类型存储在具有相同名称且后缀为 Type 的字段中。 例如 UserIdType。 |
属性 | 实体通常具有其他不用作标识符的属性,并且也可以使用描述符对其进行限定。 例如,如果源用户具有域信息,则规范化字段为 SrcUserDomain。 |
每个架构显式定义了中心实体和实体字段。 以下指南可帮助用户了解中心架构字段,以及如何使用架构中未显式定义的其他实体或实体字段,以规范化方式扩展架构。
用户实体
用户是事件报告的活动的核心。 本节中列出的字段用于描述操作中涉及的用户。 前缀用于指定活动中用户的角色。 前缀 Src
和 Dst
用于在网络相关事件中指定用户角色,事件中的源系统和目标系统会进行通信。 前缀“Actor”和“Target”用于面向系统的事件,例如进程事件。
用户 ID 和范围
字段 | 类 | 类型 | 说明 |
---|---|---|---|
UserId | 可选 | 字符串 | 用户的计算机可读的、独一无二的字母数字表示形式。 |
UserScope | 可选 | string | 定义 UserId 和 Username 的范围。 例如 Microsoft Entra 租户域名。 UserIdType 字段还表示与此字段关联的类型。 |
UserScopeId | 可选 | string | 定义 UserId 和 Username 的范围的 ID。 例如 Microsoft Entra 租户目录 ID。 UserIdType 字段还表示与此字段关联的类型。 |
UserIdType | 可选 | UserIdType | UserId 字段中存储的 ID 的类型。 |
UserSid、UserUid、UserAadId、UserPuid | 可选 | 字符串 | 用于存储特定用户 ID 的字段。 选择与事件最关联的 ID 作为存储在 UserId 中的主 ID。 除了 UserId 之外,还要填充相关的特定 ID 字段(即使事件只有一个 ID)。 |
UserAADTenant | 可选 | 字符串 | 用于存储特定范围的字段。 使用 UserScope 字段表示与 UserId 字段中存储的 ID 关联的范围。 除了 UserScope 之外,还要填充相关的特定范围字段(即使事件只有一个 ID)。 |
用户 ID 类型的允许值为:
类型 | 说明 | 示例 |
---|---|---|
SID | Windows 用户 ID。 | S-1-5-21-1377283216-344919071-3415362939-500 |
UID | Linux 用户 ID。 | 4578 |
AADID | Microsoft Entra 用户 ID。 | 9267d02c-5f76-40a9-a9eb-b686f3ca47aa |
OktaId | Okta 用户 ID。 | 00urjk4znu3BcncfY0h7 |
PUID | Microsoft 365 用户 ID。 | 10032001582F435C |
SalesforceId | Salesforce 用户 ID。 | 00530000009M943 |
用户名
字段 | 类 | 类型 | 说明 |
---|---|---|---|
Username | 可选 | 字符串 | 源用户名,包括域信息(如果可用)。 仅当未提供域信息时才使用简单格式。 在 UsernameType 字段中存储用户名类型。 |
UsernameType | 可选 | UsernameType | 指定 Username 字段中存储的用户名的类型。 |
UserUPN、WindowsUsername、DNUsername、SimpleUsername | 可选 | 字符串 | 在原始事件包含多个用户名的情况下用于存储其他用户名的字段。 选择与事件最关联的用户名作为存储在 Username 中的主用户名。 |
用户名类型的允许值为:
类型 | 说明 | 示例 |
---|---|---|
UPN | UPN 或电子邮件地址用户名指示符。 | johndow@contoso.com |
Windows | 包含域的 Windows 用户名。 | Contoso\johndow |
DN | LDAP 可分辨名称指示符。 | CN=Jeff Smith,OU=Sales,DC=Fabrikam,DC=COM |
简单 | 没有域指示符的简单用户名。 | johndow |
其他用户字段
字段 | 类 | 类型 | 说明 |
---|---|---|---|
UserType | 可选 | UserType | 源用户的类型。 支持的值包括: - Regular - Machine - Admin - System - Application - Service Principal - Service - Anonymous - Other 。可以在源记录中使用不同字词提供该值,这些字词应规范化为上述值。 在 OriginalUserType 字段中存储原始值。 |
OriginalUserType | 可选 | String | 原始目标用户类型(如果报告设备已提供)。 |
设备实体
设备或主机是用于那些参与事件的系统的常用术语。 Dvc
前缀用于指定发生事件的主设备。 某些事件(如网络会话)具有由前缀 Src
和 Dst
指定的源设备和目标设备。 在这种情况下,前缀 Dvc
用于那个报告事件的设备,该设备可能是源设备、目标设备或监视设备。
设备别名
字段 | 类 | 类型 | 说明 |
---|---|---|---|
Dvc、Src、Dst | 必需 | 字符串 | “Dvc ”、“Src”或“Dst”字段用作设备的唯一标识符。 它设置为设备的最佳可用标识符。 这些字段可以是 FQDN、DvcId、Hostname 或 IpAddr 字段的别名。 对于没有明确的设备的云源,请使用与 EventProduct 字段相同的值。 |
设备名
报告的设备名可能只包括主机名,或包括完全限定的域名 (FQDN),后者包括主机名和域名。 可以使用多种格式来表示 FQDN。 以下字段支持使用可以在其中提供设备名的不同变体。
字段 | 类 | 类型 | 说明 |
---|---|---|---|
Hostname | 建议 | 主机名 | 设备的短主机名。 |
Domain | 建议 | 字符串 | 发生事件的设备的域,没有主机名。 |
DomainType | 建议 | Enumerated | Domain 的类型。 支持的值包括:FQDN 和 Windows 。 如果使用了 Domain 字段,则此字段是必填的。 |
FQDN | 可选 | 字符串 | 设备的 FQDN,包括 Hostname 和 Domain。 此字段支持传统的 FQDN 格式和 Windows 域\主机名格式。 DomainType 字段反映使用的格式。 |
例如:
字段 | 输入 appserver.contoso.com 的值 |
输入 appserver 的值 |
---|---|---|
主机名 | appserver |
appserver |
Domain | contoso.con |
<empty> |
DomainType | FQDN |
<empty> |
FQDN | appserver.contoso.com |
<empty> |
当源提供的值是 FQDN 时,或者当该值可能是 FQDN 或短主机名时,分析程序应计算 4 个值。 使用 ASIM 帮助程序函数 _ASIM_ResolveFQDN
、_ASIM_ResolveSrcFQDN
、_ASIM_ResolveDstFQDN
和 _ASIM_ResolveDvcFQDN
轻松设置基于单个输入值的所有四个字段。 有关详细信息,请参阅 ASIM 帮助程序函数。
设备 ID 和范围
字段 | 类 | 类型 | 说明 |
---|---|---|---|
DvcId | 可选 | String | 设备的唯一 ID。 例如:41502da5-21b7-48ec-81c9-baeea8d7d669 |
ScopeId | 可选 | String | 设备所属的云平台范围 ID。 将映射范围限定为 Azure 上的订阅 ID。 |
范围 | 可选 | String | 设备所属的云平台范围。 将映射范围限定到 Azure 上的订阅。 |
DvcIdType | 可选 | Enumerated | DvcId 的类型。 通常,此字段还将标识 Scope 和 ScopeId 的类型。 如果使用了 DvcId 字段,则此字段是必填的。 |
DvcAzureResourceId、DvcMDEid、DvcMD4IoTid、DvcVMConnectionId、DvcVectraId、DvcVectraId | 可选 | String | 在原始事件包含多个设备 ID 的情况下用于存储其他设备 ID 的字段。 选择与事件最关联的设备 ID 作为存储在 DvcId 中的主 ID。 |
请注意,命名字段应在前面加一个角色前缀(例如 Src
或 Dst
),但不应再加 Dvc
前缀(如果在该角色中使用)。
设备 ID 类型的允许值为:
类型 | 说明 |
---|---|
MDEid | 由 Microsoft Defender for Endpoint 分配的系统 ID。 |
AzureResourceId | Azure 资源 ID。 |
MD4IoTid | Microsoft Defender for IoT 资源 ID。 |
VMConnectionId | Azure Monitor VM 见解解决方案资源 ID。 |
VectraId | Vectra AI 分配的资源 ID。 |
其他 | 上面未列出的 ID 类型。 |
其他设备字段
字段 | 类 | 类型 | 说明 |
---|---|---|---|
IpAddr | 建议 | IP 地址 | 设备的 IP 地址。 示例: 45.21.42.12 |
DvcDescription | 可选 | 字符串 | 与设备关联的描述性文本。 例如:Primary Domain Controller 。 |
MacAddr | 可选 | MAC | 发生了事件或报告了事件的设备的 MAC 地址。 示例: 00:1B:44:11:3A:B7 |
Zone | 可选 | 字符串 | 发生了事件或报告了事件的网络,具体取决于架构。 区域由报告设备定义。 示例: Dmz |
DvcOs | 可选 | 字符串 | 发生了事件或报告了事件的设备上运行的操作系统。 示例: Windows |
DvcOsVersion | 可选 | 字符串 | 发生了事件或报告了事件的设备上的操作系统版本。 示例: 10 |
DvcAction | 可选 | 字符串 | 对于报告安全系统,为系统执行的操作(如果适用)。 示例: Blocked |
DvcOriginalAction | 可选 | 字符串 | 报告设备提供的原始 DvcAction。 |
Interface | 可选 | String | 捕获数据的网络接口。 此字段通常与由中间或点击设备捕获的网络相关活动相关。 |
请注意,列表中带 Dvc 前缀的命名字段应在前面加一个角色前缀(例如 Src
或 Dst
),但不应再加 Dvc
前缀(如果在该角色中使用)。
示例实体映射
本部分使用 Windows 事件 4624 作为示例来介绍如何规范化 Microsoft Sentinel 的事件数据。
此事件具有以下实体:
Microsoft 术语 | 原始事件字段前缀 | ASIM 字段前缀 | 说明 |
---|---|---|---|
主题 | Subject |
Actor |
报告有关成功登录的信息的用户。 |
新登录 | Target |
TargetUser |
执行登录的用户。 |
处理 | - | ActingProcess |
尝试登录的进程。 |
网络信息 | - | Src |
从中尝试执行登录的计算机。 |
Windows 事件 4624 基于这些实体规范化为以下字段(某些字段是可选的):
规范化字段 | 原始字段 | 示例中的值 | 说明 |
---|---|---|---|
ActorUserId | SubjectUserSid | S-1-5-18 | |
ActorUserIdType | - | SID | |
ActorUserName | SubjectDomainName\ SubjectUserName | WORKGROUP\WIN-GG82ULGC9GO$ | 通过串联两个字段来生成 |
ActorUserNameType | - | Windows | |
ActorSessionId | SubjectLogonId | 0x3e7 | |
TargetUserId | TargetUserSid | S-1-5-21-1377283216-344919071-3415362939-500 | |
UserId | TargetUserSid | Alias | |
TargetUserIdType | - | SID | |
TargetUserName | TargetDomainName\ TargetUserName | Administrator\WIN-GG82ULGC9GO$ | 通过串联两个字段来生成 |
用户名 | TargetDomainName\ TargetUserName | Alias | |
TargetUserNameType | - | Windows | |
TargetSessionId | TargetLogonId | 0x8dcdc | |
ActingProcessName | ProcessName | C:\Windows\System32\svchost.exe | |
ActingProcessId | ProcessId | 0x44c | |
SrcHostname | WorkstationName | Windows | |
SrcIpAddr | IpAddress | 127.0.0.1 | |
SrcPortNumber | IpPort | 0 | |
TargetHostname | Computer | WIN-GG82ULGC9GO | |
主机名 | Computer | Alias |
后续步骤
本文概述了 Microsoft Sentinel 和 ASIM 中的规范化。
有关详细信息,请参阅: