高级安全信息模型 (ASIM) 身份验证规范化架构参考(公共预览版)
Microsoft Sentinel 身份验证架构用于描述与用户身份验证、登录和注销相关的事件。身份验证事件由许多报告设备发送,通常作为事件流的一部分与其他事件一起发送。 例如,Windows 将多个身份验证事件与其他 OS 活动事件一起发送。
身份验证事件包括来自侧重于身份验证的系统(例如 VPN 网关或域控制器)的事件,以及直接向最终系统(例如计算机或防火墙)进行身份验证的事件。
有关 Microsoft Sentinel 中规范化的详细信息,请参阅规范化和高级安全信息模型 (ASIM)。
重要
身份验证规范化架构目前以预览版提供。 此功能不附带服务级别协议,不建议将其用于生产工作负荷。
Azure 预览版补充条款包含适用于 beta 版、预览版或其他尚未正式发布的 Azure 功能的其他法律条款。
分析器
从 Microsoft Sentinel GitHub 存储库部署 ASIM 身份验证分析程序。 有关 ASIM 分析程序的详细信息,请参阅 ASIM 分析程序概述一文。
统一分析程序
若要使用统一所有 ASIM 现成分析程序的分析程序,并确保分析可在所有配置源上运行,请使用 imAuthentication
筛选分析程序或 ASimAuthentication
无参数分析程序。
源特定分析程序
有关 Microsoft Sentinel 提供的身份验证分析程序列表,请参考 ASIM 分析程序列表:
添加自己的规范化分析器
为身份验证信息模型实现自定义分析程序时,请使用以下语法来命名 KQL 函数:
vimAuthentication<vendor><Product>
,用于筛选分析程序ASimAuthentication<vendor><Product>
,用于无参数分析程序
有关将自定义分析程序添加到统一分析程序的信息,请参阅管理 ASIM 分析程序。
筛选分析程序参数
im
和 vim*
分析程序支持筛选参数。 尽管这些分析程序是可选的,但可使用它们来提高查询性能。
可使用以下筛选参数:
名称 | Type | 说明 |
---|---|---|
starttime | datetime | 仅筛选在此时间或之后运行的身份验证事件。 |
endtime | datetime | 仅筛选在此时间或之前已完成运行的身份验证事件。 |
targetusername_has | string | 仅筛选包含列出的任何用户名的身份验证事件。 |
例如,若要仅筛选特定用户从过去一天开始的身份验证事件,请使用:
imAuthentication (targetusername_has = 'johndoe', starttime = ago(1d), endtime=now())
提示
若要将文本列表传递到需要动态值的参数,请显式使用动态文本。 例如:dynamic(['192.168.','10.'])
。
规范化内容
规范化身份验证分析规则是唯一的,因为它们可以检测跨源的攻击。 例如,如果用户从不同国家/地区登录不同且不相关的系统,则 Microsoft Sentinel 现在可检测到这种威胁。
有关使用规范化身份验证事件的分析规则的完整列表,请参阅身份验证架构安全内容。
架构概述
身份验证信息模型与 OSSEM 登录实体架构保持一致。
下表中列出的字段特定于身份验证事件,但它们类似于其他架构中的字段,并遵循类似的命名约定。
身份验证事件引用以下实体:
- TargetUser - 用于向系统进行身份验证的用户信息。 TargetSystem 是身份验证事件的主要主题,别名 User 会将 TargetUser 标识为别名。
- TargetApp - 向其进行身份验证的应用程序。
- 目标 - 运行 TargetApp* 的系统。
- Actor - 启动身份验证的用户(如果不同于 TargetUser)。
- ActingApp - Actor 用于执行身份验证的应用程序。
- Src - Actor 用于启动身份验证的系统。
以下是对这些实体之间关系的最好展示:
在源系统 Src 上运行操作应用程序 ActingApp 的 Actor 尝试向目标系统 TargetDvc 上的目标应用 TargetApp 验证为 TargetUser。
架构详细信息
在下面的表中,“类型”指的是逻辑类型。 有关详细信息,请参阅逻辑类型。
通用 ASIM 字段
重要
ASIM 通用字段一文详细介绍了所有架构的通用字段。
符合特定准则的通用字段
以下列表提及符合身份验证事件特定准则的字段:
字段 | 类 | 类型 | 说明 |
---|---|---|---|
EventType | 必需 | Enumerated | 描述记录报告的操作。 对于身份验证记录,支持的值包括: - Logon - Logoff - Elevate |
EventResultDetails | 建议 | 字符串 | 与事件结果关联的详细信息。 当结果为失败时,通常会填充此字段。 允许的值包括: - No such user or password 。 原始事件报告没有此类用户,并且没有引用密码时,还应使用此值。- No such user - Incorrect password - Incorrect key - Account expired - Password expired - User locked - User disabled - Logon violates policy 。 原始事件报告如下情况时应使用此值,例如:需要 MFA、在工作时间之外登录、条件性访问限制或尝试过于频繁。- Session expired - Other 可以在源记录中使用不同字词提供该值,这些字词应规范化为这些值。 原始值应存储在字段 EventOriginalResultDetails 中 |
EventSubType | 可选 | String | 登录类型。 允许的值包括: - System - Interactive - RemoteInteractive - Service - RemoteService - Remote - 当远程登录类型未知时使用。- AssumeRole - 通常在事件类型为 Elevate 时使用。 可以在源记录中使用不同字词提供该值,这些字词应规范化为这些值。 原始值应存储在 EventOriginalSubType 字段中。 |
EventSchemaVersion | 必需 | 字符串 | 架构的版本。 此处记录的架构版本为 0.1.3 |
EventSchema | 必需 | 字符串 | 此处所述的架构名称为 Authentication。 |
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 |
特定于身份验证的字段
字段 | 类 | 类型 | 说明 |
---|---|---|---|
LogonMethod | 可选 | 字符串 | 用于执行身份验证的方法。 示例: Username & Password 、PKI |
LogonProtocol | 可选 | 字符串 | 用于执行身份验证的协议。 示例: NTLM |
参与者字段
字段 | 类 | 类型 | 说明 |
---|---|---|---|
ActorUserId | 可选 | String | 参与者的计算机可读的唯一字母数字表示形式。 有关详细信息,以及其他 ID 的替代字段,请参阅 User 实体。 示例: S-1-12-1-4141952679-1282074057-627758481-2916039507 |
ActorScope | 可选 | 字符串 | 在其中定义了 ActorUserId 和 ActorUsername 的范围(例如 Microsoft Entra 租户)。 有关详细信息和允许值的列表,请参阅架构概述文章中的 UserScope。 |
ActorScopeId | 可选 | 字符串 | 在其中定义了 ActorUserId 和 ActorUsername 的范围 ID(例如 Microsoft Entra 目录 ID)。 有关详细信息和允许值的列表,请参阅架构概述文章中的 UserScopeId。 |
ActorUserIdType | 条件逻辑 | UserIdType | ActorUserId 字段中存储的 ID 的类型。 有关详细信息和允许值的列表,请参阅架构概述文章中的 UserIdType。 |
ActorUsername | 可选 | 用户名 | 参与者的用户名,包括域信息(如果可用)。 有关详细信息,请参阅用户实体。 示例: AlbertE |
ActorUsernameType | 条件逻辑 | UsernameType | 指定 ActorUsername 字段中存储的用户名的类型。 有关详细信息和允许值的列表,请参阅架构概述文章中的 UsernameType。 示例: Windows |
ActorUserType | 可选 | UserType | 参与者的类型。 有关详细信息和允许值的列表,请参阅架构概述文章中的 UserType。 例如: Guest |
ActorOriginalUserType | 可选 | UserType | 报告设备报告的用户类型。 |
“ActorSessionId” | 可选 | 字符串 | 参与者登录会话的唯一 ID。 示例: 102pTUgC3p8RIqHvzxLCHnFlg |
操作应用程序字段
字段 | 类 | 类型 | 说明 |
---|---|---|---|
ActingAppId | 可选 | String | 代表参与者授权的应用程序的 ID,包括进程、浏览器或服务。 例如: 0x12ae8 |
ActingAppName | 可选 | String | 代表参与者授权的应用程序的名称,包括进程、浏览器或服务。 例如: C:\Windows\System32\svchost.exe |
ActingAppType | 可选 | AppType | 操作应用程序的类型。 有关详细信息和允许值的列表,请参阅架构概述文章中的 AppType。 |
HttpUserAgent | 可选 | 字符串 | 通过 HTTP 或 HTTPS 执行身份验证时,此字段的值是执行身份验证时操作应用程序提供的 user_agent HTTP 标头。 例如: Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1 |
目标用户字段
字段 | 类 | 类型 | 描述 |
---|---|---|---|
“TargetUserId” | 可选 | UserId | 目标用户的计算机可读的唯一字母数字表示形式。 有关详细信息,以及其他 ID 的替代字段,请参阅 User 实体。 示例: 00urjk4znu3BcncfY0h7 |
TargetUserScope | 可选 | 字符串 | 在其中定义了 TargetUserId 和 TargetUsername 的范围(例如 Microsoft Entra 租户)。 有关详细信息和允许值的列表,请参阅架构概述文章中的 UserScope。 |
TargetUserScopeId | 可选 | 字符串 | 在其中定义了 TargetUserId 和 TargetUsername 的范围 ID(例如 Microsoft Entra 目录 ID)。 有关详细信息和允许值的列表,请参阅架构概述文章中的 UserScopeId。 |
TargetUserIdType | 条件逻辑 | UserIdType | TargetUserId 字段中存储的用户 ID 的类型。 有关详细信息和允许值的列表,请参阅架构概述文章中的 UserIdType。 示例: SID |
TargetUsername | 可选 | 用户名 | 目标用户的用户名,包括域信息(如果可用)。 有关详细信息,请参阅用户实体。 示例: MarieC |
TargetUsernameType | 条件逻辑 | UsernameType | 指定 TargetUsername 字段中存储的用户名的类型。 有关详细信息和允许值的列表,请参阅架构概述文章中的 UsernameType。 |
TargetUserType | 可选 | UserType | 目标用户的类型。 有关详细信息和允许值的列表,请参阅架构概述文章中的 UserType。 例如: Member |
TargetSessionId | 可选 | 字符串 | 源设备上 TargetUser 的登录会话标识符。 |
TargetOriginalUserType | 可选 | UserType | 报告设备报告的用户类型。 |
用户 | Alias | 用户名 | TargetUsername 或 TargetUserId 的别名(如果未定义 TargetUsername)。 示例: CONTOSO\dadmin |
源系统字段
字段 | 类 | 类型 | 说明 |
---|---|---|---|
Src | 建议 | 字符串 | 目标设备的唯一标识符。 此字段又可称为 SrcDvcId、SrcHostname 或 SrcIpAddr 字段。 示例: 192.168.12.1 |
SrcDvcId | 可选 | String | 源设备的 ID。 如果有多个可用的 ID,请使用最重要的一个,将其他 ID 存储在字段中 SrcDvc<DvcIdType> 。示例: ac7e9755-8eae-4ffc-8a02-50ed7a2216c3 |
SrcDvcScopeId | 可选 | String | 设备所属的云平台范围 ID。 SrcDvcScopeId 映射到 Azure 上的订阅 ID。 |
SrcDvcScope | 可选 | String | 设备所属的云平台范围。 SrcDvcScope 映射到 Azure 上的订阅 ID。 |
SrcDvcIdType | 条件逻辑 | DvcIdType | SrcDvcId 的类型。 有关允许值的列表和更多信息,请参阅架构概述文章中的 DvcIdType。 注意:如果使用了 SrcDvcId,则此字段是必填的。 |
SrcDeviceType | 可选 | DeviceType | 源设备的类型。 有关允许值的列表和更多信息,请参阅架构概述文章中的 DeviceType。 |
SrcHostname | 建议 | 主机名 | 源设备主机名,不包括域信息。 如果没有可用的设备名称,请在此字段中存储相关的 IP 地址。 示例: DESKTOP-1282V4D |
SrcDomain | 建议 | 字符串 | 源设备的域。 示例: Contoso |
SrcDomainType | 条件逻辑 | DomainType | SrcDomain 的类型。 有关允许值的列表和更多信息,请参阅架构概述文章中的 DomainType。 如果使用了 SrcDomain,则该字段是必填的。 |
SrcFQDN | 可选 | String | 源设备主机名,包括域信息(如果可用)。 注意:此字段支持传统的 FQDN 格式和 Windows 域\主机名格式。 SrcDomainType 字段反映使用的格式。 示例: Contoso\DESKTOP-1282V4D |
SrcDescription | 可选 | 字符串 | 与设备关联的描述性文本。 例如:Primary Domain Controller 。 |
SrcIpAddr | 可选 | IP 地址 | 源设备的 IP 地址。 示例: 2.2.2.2 |
SrcPortNumber | 可选 | 整数 | 从中发起了连接的 IP 端口。 示例: 2335 |
SrcDvcOs | 可选 | 字符串 | 源设备的 OS。 示例: Windows 10 |
IpAddr | Alias | SrcIpAddr 的别名 | |
SrcIsp | 可选 | 字符串 | 源设备用于连接到 Internet 的 Internet 服务提供商 (ISP)。 示例: corpconnect |
SrcGeoCountry | 可选 | 国家/地区 | 示例: Canada 有关详细信息,请参阅逻辑类型。 |
SrcGeoCity | 可选 | 城市 | 示例: Montreal 有关详细信息,请参阅逻辑类型。 |
SrcGeoRegion | 可选 | 区域 | 示例: Quebec 有关详细信息,请参阅逻辑类型。 |
SrcGeoLongtitude | 可选 | 经度 | 示例: -73.614830 有关详细信息,请参阅逻辑类型。 |
SrcGeoLatitude | 可选 | 纬度 | 示例: 45.505918 有关详细信息,请参阅逻辑类型。 |
SrcRiskLevel | 可选 | 整数 | 与源关联的风险级别。 该值应调整为 0 到 100 的范围,其中 0 表示良性,100 表示高风险。示例: 90 |
SrcOriginalRiskLevel | 可选 | 整数 | 与源关联的风险级别,由报告设备报告。 示例: Suspicious |
目标应用程序字段
字段 | 类 | 类型 | 说明 |
---|---|---|---|
TargetAppId | 可选 | 字符串 | 需要授权的应用程序的 ID,该 ID 通常由报告设备分配。 示例: 89162 |
TargetAppName | 可选 | 字符串 | 需要授权的应用程序的名称,包括服务、URL 或 SaaS 应用程序。 示例: Saleforce |
TargetAppType | 可选 | AppType | 代表参与者授权的应用程序的类型。 有关详细信息和允许值的列表,请参阅架构概述文章中的 AppType。 |
TargetUrl | 可选 | URL | 与目标应用程序相关联的 URL。 |
LogonTarget | Alias | TargetAppName、TargetUrl 或 TargetHostname 的别名,以最能描述身份验证目标的字段为准。 |
目标系统字段
字段 | 类 | 类型 | 说明 |
---|---|---|---|
Dst | Alias | 字符串 | 身份验证目标的唯一标识符。 此字段可以是 TargerDvcId、TargetHostname、TargetIpAddr、TargetAppId 或 TargetAppName 字段的别名。 示例: 192.168.12.1 |
TargetHostname | 建议 | 主机名 | 目标设备主机名,不包括域信息。 示例: DESKTOP-1282V4D |
TargetDomain | 建议 | 字符串 | 目标设备的域。 示例: Contoso |
TargetDomainType | 条件逻辑 | Enumerated | TargetDomain 的类型。 有关允许值的列表和更多信息,请参阅架构概述文章中的 DomainType。 如果使用了 TargetDomain,则该字段是必填的。 |
TargetFQDN | 可选 | 字符串 | 目标设备主机名,包括域信息(如果可用)。 示例: Contoso\DESKTOP-1282V4D 注意:此字段支持传统的 FQDN 格式和 Windows 域\主机名格式。 TargetDomainType 反映所使用的格式。 |
TargetDescription | 可选 | 字符串 | 与设备关联的描述性文本。 例如:Primary Domain Controller 。 |
TargetDvcId | 可选 | String | 目标设备的 ID。 如果有多个可用的 ID,请使用最重要的一个,将其他 ID 存储在字段中 TargetDvc<DvcIdType> 。 示例: ac7e9755-8eae-4ffc-8a02-50ed7a2216c3 |
TargetDvcScopeId | 可选 | String | 设备所属的云平台范围 ID。 TargetDvcScopeId 映射到 Azure 上的订阅 ID。 |
TargerDvcScope | 可选 | String | 设备所属的云平台范围。 TargetDvcScope 映射到 Azure 上的订阅 ID。 |
TargetDvcIdType | 条件逻辑 | Enumerated | TargetDvcId 的类型。 有关允许值的列表和更多信息,请参阅架构概述文章中的 DvcIdType。 如果使用了 TargetDeviceId,则该字段是必填的。 |
TargetDeviceType | 可选 | Enumerated | 目标设备的类型。 有关允许值的列表和更多信息,请参阅架构概述文章中的 DeviceType。 |
TargetIpAddr | 可选 | IP 地址 | 目标设备的 IP 地址。 示例: 2.2.2.2 |
TargetDvcOs | 可选 | 字符串 | 目标设备的 OS。 示例: Windows 10 |
TargetPortNumber | 可选 | 整数 | 目标设备的端口。 |
TargetGeoCountry | 可选 | 国家/地区 | 与目标 IP 地址关联的国家/地区。 |
TargetGeoRegion | 可选 | 区域 | 与目标 IP 地址关联的地区。 |
TargetGeoCity | 可选 | 城市 | 与目标 IP 地址关联的城市。 |
TargetGeoLatitude | 可选 | 纬度 | 与目标 IP 地址关联的地理坐标的纬度。 示例: 44.475833 |
TargetGeoLongitude | 可选 | 经度 | 与目标 IP 地址关联的地理坐标的经度。 示例: 73.211944 |
TargetRiskLevel | 可选 | 整数 | 与目标关联的风险级别。 该值应调整为 0 到 100 的范围,其中 0 表示良性,100 表示高风险。示例: 90 |
TargetOriginalRiskLevel | 可选 | 整数 | 与目标关联的风险级别,由报告设备报告。 示例: Suspicious |
检查字段
以下字段用于表示由安全系统执行的检查。
字段 | 类 | 类型 | 说明 |
---|---|---|---|
RuleName | 可选 | String | 与检查结果关联的规则的名称或 ID。 |
RuleNumber | 可选 | 整数 | 与检查结果关联的规则的数量。 |
规则 | Alias | 字符串 | RuleName 的值,或 RuleNumber 的值。 如果使用 RuleNumber 的值,则类型应转换为字符串。 |
ThreatId | 可选 | String | 在审核活动中识别到的威胁或恶意软件的 ID。 |
ThreatName | 可选 | 字符串 | 在审核活动中识别到的威胁或恶意软件的名称。 |
ThreatCategory | 可选 | 字符串 | 在审核文件活动中识别到的威胁或恶意软件的类别。 |
ThreatRiskLevel | 可选 | 整数 | 与已识别的威胁关联的风险级别。 级别应是介于 0 和 100 之间的数字。 注意:可以在源记录中使用不同的标度提供值,而使用的标度应规范化为此标度。 原始值应存储在 ThreatRiskLevelOriginal 中。 |
ThreatOriginalRiskLevel | 可选 | String | 报告设备报告的风险级别。 |
ThreatConfidence | 可选 | 整数 | 已识别威胁的可信度,规范化为 0 到 100 之间的值。 |
ThreatOriginalConfidence | 可选 | 字符串 | 报告设备报告的已识别威胁的原始可信度。 |
ThreatIsActive | 可选 | Boolean | 如果已识别的威胁被视为活动威胁,则为 True。 |
ThreatFirstReportedTime | 可选 | datetime | IP 地址或域首次被识别为威胁的时间。 |
ThreatLastReportedTime | 可选 | datetime | 上次将 IP 地址或域识别为威胁的时间。 |
ThreatIpAddr | 可选 | IP 地址 | 已识别出威胁的 IP 地址。 字段 ThreatField 包含 ThreatIpAddr 表示的字段的名称。 |
ThreatField | 可选 | Enumerated | 已识别出威胁的字段。 该值为 SrcIpAddr 或 TargetIpAddr 。 |
架构更新
下面是架构版本 0.1.1 中的更改:
- 更新了用户和设备实体字段,使其与其他架构相符。
- 将
TargetDvc
和SrcDvc
分别重命名为Target
和Src
,使其与当前 ASIM 准则相符。 重命名的字段将作为别名实现,一直到 2022 年 7 月 1 日。 这些字段包括:SrcDvcHostname
、SrcDvcHostnameType
、SrcDvcType
、SrcDvcIpAddr
、TargetDvcHostname
、TargetDvcHostnameType
、TargetDvcType
、TargetDvcIpAddr
和TargetDvc
。 - 添加了别名
Src
和Dst
。 - 添加了字段
SrcDvcIdType
、SrcDeviceType
、TargetDvcIdType
、TargetDeviceType
和EventSchema
。
下面是架构版本 0.1.2 中的更改:
- 添加了字段
ActorScope
TargetUserScope
、SrcDvcScopeId
、SrcDvcScope
、TargetDvcScopeId
、TargetDvcScope
、DvcScopeId
和DvcScope
。
下面是架构版本 0.1.3 中的更改:
- 添加了字段
SrcPortNumber
、ActorOriginalUserType
、ActorScopeId
、TargetOriginalUserType
、TargetUserScopeId
、SrcDescription
、SrcRiskLevel
、SrcOriginalRiskLevel
和TargetDescription
。 - 添加了检查字段
- 添加了目标系统地理位置字段。
后续步骤
有关详细信息,请参阅: