你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Web 会话规范化架构用于描述 IP 网络活动。 例如,IP 网络活动由 Web 服务器、Web 代理和 Web 安全网关报告。
有关Microsoft Sentinel规范化的详细信息,请参阅规范化和高级安全信息模型 (ASIM) 。
架构概述
Web 会话规范化架构代表任何 HTTP 网络会话,适合提供对常见源类型的支持,包括:
- Web 服务器
- Web 代理
- Web 安全网关
ASIM Web 会话架构表示 HTTP 和 HTTPS 协议活动。 由于架构表示协议活动,因此它受 RFC 和正式分配的参数列表控制,本文将根据需要引用这些列表。
Web 会话架构不表示来自源设备的审核事件。 例如,修改 Web 安全网关策略的事件不能由 Web 会话架构表示。
由于 HTTP 会话是使用 TCP/IP 作为基础网络层会话的应用程序层会话,因此 Web 会话架构是 ASIM 网络会话架构的超级集。
Web 会话架构中最重要的字段是:
- URL,用于报告客户端从服务器请求的 URL。
- SrcIpAddr (别名为 IpAddr) ,表示从中生成请求的 IP 地址。
- EventResultDetails 字段,通常报告 HTTP 状态代码。
Web 会话事件还可以包括 用户 和 发起 请求的进程的用户和进程信息。
解析 器
有关 ASIM 分析程序的详细信息,请参阅 ASIM 分析程序概述。
统一分析器
若要使用统一所有 ASIM 现成分析程序的分析程序,并确保分析跨所有配置的源运行,请使用 _Im_WebSession 分析程序。
开箱即用的特定于源分析程序
有关提供现成的 Web 会话分析程序列表Microsoft Sentinel请参阅 ASIM 分析程序列表
添加自己的规范化分析程序
为 Web 会话信息模型实现自定义分析程序时,使用以下语法命名 KQL 函数:
-
vimWebSession<vendor><Product>用于参数化分析器 -
ASimWebSession<vendor><Product>用于常规分析程序
筛选分析程序参数
im和 vim* 分析程序支持筛选参数。 虽然这些分析器是可选的,但它们可以提高查询性能。
以下筛选参数可用:
| 名称 | 类型 | 说明 |
|---|---|---|
| starttime | datetime | 仅筛选在此时间或之后 开始的 Web 会话。 此参数筛选 TimeGenerated 字段,该字段是事件时间的标准指示符,而不考虑 EventStartTime 和 EventEndTime 字段的特定于分析器的映射。 |
| endtime | datetime | 仅筛选在此时间或之前 开始 运行的 Web 会话。 此参数筛选 TimeGenerated 字段,该字段是事件时间的标准指示符,而不考虑 EventStartTime 和 EventEndTime 字段的特定于分析器的映射。 |
| srcipaddr_has_any_prefix | 动态 | 仅筛选 其源 IP 地址字段 前缀位于所列值之一的 Web 会话。 值列表可以包括 IP 地址和 IP 地址前缀。 前缀应以 .结尾,例如: 10.0.。 列表的长度限制为 10,000 个项目。 |
| ipaddr_has_any_prefix | 动态 | 仅筛选 目标 IP 地址字段 或 源 IP 地址字段 前缀位于所列值之一的网络会话。 前缀应以 .结尾,例如: 10.0.。 列表的长度限制为 10,000 个项目。ASimMatchingIpAddr 字段使用 、 或 Both 值SrcIpAddrDstIpAddr之一进行设置,以反映匹配的字段或字段。 |
| url_has_any | 动态 | 仅筛选 URL 字段 具有列出的任何值的 Web 会话。 如果源不报告,分析程序可能会忽略作为参数传递的 URL 的架构。 如果指定,并且会话不是 Web 会话,则不会返回任何结果。 列表的长度限制为 10,000 个项目。 |
| httpuseragent_has_any | 动态 | 仅筛选 用户代理字段 已列出任何值的 Web 会话。 如果指定,并且会话不是 Web 会话,则不会返回任何结果。 列表的长度限制为 10,000 个项目。 |
| eventresultdetails_in | 动态 | 仅筛选存储在 EventResultDetails 字段中的 HTTP 状态代码是列出的任何值的 Web 会话。 |
| eventresult | string | 仅筛选具有特定 EventResult 值的网络会话。 |
某些参数可以接受类型的 dynamic 值列表或单个字符串值。 若要将文本列表传递给需要动态值的参数,请显式使用 动态文本。 例如:dynamic(['192.168.','10.'])
例如,若要仅筛选指定域名列表的 Web 会话,请使用:
let torProxies=dynamic(["tor2web.org", "tor2web.com", "torlink.co"]);
_Im_WebSession (url_has_any = torProxies)
架构详细信息
Web 会话信息模型与 OSSEM 网络实体架构 和 OSSEM HTTP 实体架构保持一致。
为了符合行业最佳做法,Web 会话架构使用描述符 Src 和 Dst 来标识会话源和目标设备,而不在字段名称中包含令牌 Dvc 。
因此,例如,源设备主机名和 IP 地址分别命名为 SrcHostname 和 SrcIpAddr ,而不是 SrcDvc主机名 和 SrcDvcIpAddr。 前缀 Dvc 仅用于报告或中介设备(如果适用)。
描述与源和目标设备关联的用户和应用程序的字段也使用 Src 和 Dst 描述符。
其他 ASIM 架构通常使用 Target 而不是 Dst。
常见 ASIM 字段
重要
ASIM 通用字段一文中详细介绍了所有架构通用的字段。
具有特定准则的通用字段
以下列表提到了具有 Web 会话事件特定准则的字段:
| 字段 | 类 | 类型 | 说明 |
|---|---|---|---|
| EventType | 强制 | 枚举 | 描述记录报告的操作。 允许的值包括: - HTTPsession:表示用于 HTTP 或 HTTPS 的网络会话,通常由中介设备(如代理或 Web 安全网关)报告。- WebServerSession:表示 Web 服务器报告的 HTTP 请求。 此类事件通常具有较少的网络相关信息。 报告的 URL 不应包含架构和服务器名称,而只能包含 URL 的路径和参数部分。 - ApiRequest:表示报告与 API 调用关联的 HTTP 请求,通常由应用程序服务器报告。 此类事件通常具有较少的网络相关信息。 应用程序服务器报告时,报告的 URL 不应包含架构和服务器名称,而应仅包含 URL 的路径和参数部分。 |
| EventResult | 强制 | 枚举 | 描述规范化为以下值之一的事件结果: - Success - Partial - Failure - NA (不适用) 对于 HTTP 会话, Success 定义为低于 400的状态代码,并 Failure 定义为高于 400的状态代码。 有关 HTTP 状态代码的列表,请参阅 W3 组织。源只能为 EventResultDetails 字段提供值,必须对其进行分析才能获取 EventResult 值。 |
| EventResultDetails | 建议 | 枚举 |
万维网联盟定义的 HTTP 状态代码 注意:可以使用不同的术语在源记录中提供该值,这些术语应规范化为这些值。 原始值应存储在 EventOriginalResultDetails 字段中。 |
| EventSchema | 强制 | 枚举 | 此处记录的架构的名称为 WebSession。 |
| EventSchemaVersion | 强制 | SchemaVersion (String) | 架构的版本。 此处记录的架构版本为 0.2.7 |
| Dvc 字段 | 对于 Web 会话事件,设备字段是指报告 Web 会话事件的系统。 这通常是事件的中间设备HTTPSession,以及 和 ApiRequest 事件的目标 Web 或应用程序服务器WebServerSession。 |
所有常见字段
下表中显示的字段对所有 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 |
网络会话字段
HTTP 会话是利用 TCP/IP 作为基础网络层会话的应用程序层会话。 Web 会话架构是一组超级 ASIM 网络会话架构 ,所有网络架构字段也包含在 Web 会话架构中。
以下 ASIM 网络会话架构字段在用于 Web 会话事件时具有特定准则:
- 别名“用户”应引用 SrcUsername ,而不是 DstUsername。
- 除了存储在 EventResultDetails 中的 HTTP 状态代码外,EventOriginalResultDetails 字段还可以保存源报告的任何结果。
- 对于 Web 会话,主要目标字段是 Url 字段。 DstDomain 是可选的,而不是推荐的。 具体而言,如果不可用,则无需从分析器中的 URL 中提取它。
- 字段
NetworkRuleName和 分别重命名RuleName为 和RuleNumberNetworkRuleNumber。
Web 会话事件通常由中间设备报告,这些设备终止来自客户端的 HTTP 连接,并启动与服务器的新连接(充当代理)。 若要表示中间设备,请使用 ASIM 网络会话架构中介设备字段
HTTP 会话字段
下面是特定于 Web 会话的其他字段:
| 字段 | 类 | 类型 | 说明 |
|---|---|---|---|
| Url | 强制 | URL (字符串) | HTTP 请求 URL,包括参数。 对于 HTTPSession 事件,URL 可能包含架构,并且应包含服务器名称。 对于 WebServerSession 和 , ApiRequest URL 通常不包括架构和服务器,这可以分别在 NetworkApplicationProtocol 和 DstFQDN 字段中找到。 例如: https://contoso.com/fo/?k=v&q=u#f |
| UrlCategory | 可选 | String | URL 或 URL 的域部分的已定义分组。 类别通常由 Web 安全网关提供,并且基于 URL 指向的网站的内容。 示例:搜索引擎、成人、新闻、广告和已寄存域。 |
| UrlOriginal | 可选 | URL (字符串) | 报告设备修改 URL 时 URL 的原始值,同时提供这两个值。 |
| HttpVersion | 可选 | String | HTTP 请求版本。 例如: 2.0 |
| HttpRequestMethod | 建议 | 枚举 | HTTP 方法。 这些值在 RFC 7231 和 RFC 5789 中定义,包括 GET、、HEAD、POST、PUTDELETE、CONNECT、OPTIONS、 TRACE和 PATCH。例如: GET |
| HttpStatusCode | 别名 | HTTP 状态代码。 EventResultDetails 的别名。 | |
| HttpContentType | 可选 | String | HTTP 响应内容类型标头。 注意: HttpContentType 字段可能包含内容格式和额外参数,例如用于获取实际格式的编码。 例如: text/html; charset=ISO-8859-4 |
| HttpContentFormat | 可选 | String |
HttpContentType 的内容格式部分 例如: text/html |
| HttpReferrer | 可选 | String | HTTP 引用网站标头。 注意:ASIM 与 OSSEM 同步时,对 引用网站使用正确的拼写,而不是使用原始 HTTP 标头拼写。 例如: https://developer.mozilla.org/docs |
| HttpUserAgent | 可选 | String | HTTP 用户代理标头。 示例: Mozilla/5.0 (Windows NT 10.0;WOW64)AppleWebKit/537.36 (KHTML,如 Gecko)Chrome/83.0.4103.97 Safari/537.36 |
| UserAgent | 别名 | HttpUserAgent 的别名 | |
| HttpRequestXff | 可选 | IP 地址 | HTTP X-Forwarded-For 标头。 例如: 120.12.41.1 |
| HttpRequestTime | 可选 | 整数 | 将请求发送到服务器所花费的时间(以毫秒为单位),如果适用。 例如: 700 |
| HttpResponseTime | 可选 | 整数 | 在服务器中接收响应所花费的时间(以毫秒为单位),如果适用。 例如: 800 |
| HttpHost | 可选 | String | HTTP 请求面向的虚拟 Web 服务器。 此值通常基于 HTTP 主机标头。 |
| FileName | 可选 | String | 对于 HTTP 上传,为上传的文件的名称。 |
| FileMD5 | 可选 | MD5 | 对于 HTTP 上传,为已上传文件的 MD5 哈希。 例如: 75a599802f1fa166cdadb360960b1dd0 |
| FileSHA1 | 可选 | SHA1 | 对于 HTTP 上传,为上传文件的 SHA1 哈希。 示例: d55c5a4df19b46db8c54c801c4665d3338acdab0 |
| FileSHA256 | 可选 | SHA256 | 对于 HTTP 上传,为上传文件的 SHA256 哈希。 示例: e81bb824c4a09a811af17deae22f22dd2e1ec8cbb00b22629d2899f7c68da274 |
| FileSHA512 | 可选 | SHA512 | 对于 HTTP 上传,为上传文件的 SHA512 哈希。 |
| 散 列 | 别名 | 可用哈希字段的别名。 | |
| HashType | 条件 | 枚举 |
哈希字段中哈希的类型。 可能的值包括: MD5、 SHA1、 SHA256和 SHA512。 |
| FileSize | 可选 | 长型 | 对于 HTTP 上传,为上传文件的大小(以字节为单位)。 |
| FileContentType | 可选 | String | 对于 HTTP 上传,为已上传文件的内容类型。 |
| HttpCookie | 可选 | String | 从客户端发送到服务器的 HTTP Cookie 标头的内容,其中包含会话数据的名称值对。 例如: session_id=abc123; user_pref=dark_mode |
| HttpIsProxied | 可选 | 布尔值 | 指示 HTTP 请求是否通过代理服务器发送。 例如: true |
| HttpRequestBodyBytes | 可选 | 长型 | HTTP 请求正文的大小(以字节为单位),不包括标头。 例如: 1024 |
| HttpRequestCacheControl | 可选 | String | HTTP Cache-Control 请求标头的内容,指定来自客户端的缓存指令。 例如: no-cache |
| HttpRequestHeaderCount | 可选 | 整数 | 请求中包含的 HTTP 标头数。 例如: 12 |
| HttpResponseBodyBytes | 可选 | 长型 | HTTP 响应正文的大小(以字节为单位),不包括标头。 例如: 8192 |
| HttpResponseCacheControl | 可选 | String | HTTP Cache-Control 响应标头的内容,指定来自服务器的缓存指令。 例如: max-age=3600, public |
| HttpResponseExpires | 可选 | String | HTTP Expires 响应标头的内容,指示响应内容何时过期。 例如: Thu, 01 Dec 2024 16:00:00 GMT |
| HttpResponseHeaderCount | 可选 | 整数 | 响应中包含的 HTTP 标头数。 例如: 15 |
其他字段
如果事件由 Web 会话的某个终结点报告,则它可能包含有关启动或终止会话的进程的信息。 在这种情况下, ASIM 进程事件架构 用于规范化此信息。
架构更新
Web 会话架构依赖于网络会话架构。 因此, 网络会话架构更新 也适用于 Web 会话架构。
下面是架构版本 0.2.5 中的更改:
- 添加了字段
HttpHost。
下面是架构版本 0.2.6 中的更改:
- FileSize 的类型已从 Integer 更改为 Long。
下面是架构版本 0.2.7 中的更改:
- 添加了字段
HttpCookie、、HttpIsProxied、HttpRequestBodyBytes、HttpRequestCacheControlHttpResponseCacheControlHttpResponseExpiresHttpRequestHeaderCountHttpResponseBodyBytes和 。HttpResponseHeaderCount
后续步骤
有关更多信息,请参阅: