Web 会话规范化架构用于描述 IP 网络活动。 例如,Web 服务器、Web 代理和 Web 安全网关会报告 IP 网络活动。
有关 Microsoft Sentinel 中规范化的详细信息,请参阅规范化和高级安全信息模型 (ASIM)。
重要
网络规范化架构目前为预览版。 此功能不附带服务级别协议,不建议将其用于生产工作负荷。
Azure 预览版补充条款包含适用于 beta 版、预览版或其他尚未正式发布的 Azure 功能的其他法律条款。
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
筛选分析程序或 _ASim_WebSession
无参数分析程序。
你还可以使用工作区部署的 ImWebSession
和 ASimWebSession
分析程序,方法是从 Microsoft Sentinel GitHub 存储库进行部署。 有关详细信息,请参阅内置 ASIM 分析程序和工作区部署的分析程序。
有关 Microsoft Sentinel 直接提供的 Web 会话分析程序列表,请参考 ASIM 分析程序列表
为 Web 会话信息模型实现自定义分析程序时,请使用以下语法来命名 KQL 函数:
vimWebSession<vendor><Product>
(对于参数化分析程序)ASimWebSession<vendor><Product>
(对于常规分析程序)
im
和 vim*
分析程序支持筛选参数。 尽管这些分析程序是可选的,但可使用它们来提高查询性能。
可使用以下筛选参数:
名称 | Type | 说明 |
---|---|---|
starttime | datetime | 仅筛选在此时间或之后启动的 Web 会话。 |
endtime | datetime | 仅筛选在此时间或之前开始运行的 Web 会话。 |
srcipaddr_has_any_prefix | 动态 | 仅筛选其源 IP 地址字段前缀位于所列出值之一中的 Web 会话。 值列表可能包括 IP 地址和 IP 地址前缀。 前缀应以 . 结尾,例如:10.0. 。 列表的长度限制为 10,000 项。 |
ipaddr_has_any_prefix | 动态 | 仅筛选其目标 IP 地址字段或源 IP 地址字段前缀位于所列出值之一中的网络会话。 前缀应以 . 结尾,例如:10.0. 。 列表的长度限制为 10,000 项。使用值 SrcIpAddr 、DstIpAddr 或 Both 之一设置字段 ASimMatchingIpAddr,以反映匹配的字段。 |
url_has_any | 动态 | 仅筛选其 URL 字段包含所列出的任何值的 Web 会话。 如果源没有报告 URL,分析程序可能会忽略作为参数传递的 URL 架构。 如果指定并且会话不是 Web 会话,则不会返回任何结果。 列表的长度限制为 10,000 项。 |
httpuseragent_has_any | 动态 | 仅筛选其用户代理字段包含所列出的任何值的 Web 会话。 如果指定并且会话不是 Web 会话,则不会返回任何结果。 列表的长度限制为 10,000 项。 |
eventresultdetails_in | 动态 | 仅筛选其 HTTP 状态代码(存储在 EventResultDetails 字段中)是列出的任何值的 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,而不是 SrcDvcHostname 和 SrcDvcIpAddr 。 前缀 Dvc 仅用于报告设备或中间设备(如果适用)。
描述与源和目标设备关联的用户和应用程序的字段也使用 Src 和 Dst 描述符 。
其他 ASIM 架构通常使用 Target 而不是 Dst 。
重要
ASIM 通用字段一文详细介绍了所有架构的通用字段。
以下列表提及对 Web 会话事件有特定准则的字段:
字段 | 类 | 类型 | 说明 |
---|---|---|---|
EventType | 必需 | Enumerated | 描述记录报告的操作。 允许值包括: - HTTPsession :表示用于 HTTP 或 HTTPS 的网络会话,通常由中介设备(如代理或 Web 安全网关)报告。- WebServerSession :表示 Web 服务器报告的 HTTP 请求。 此类事件的网络相关信息通常较少。 报告的 URL 不应包含架构和服务器名称,而是只应包含 URL 的路径和参数部分。 - ApiRequest :表示报告的与 API 调用关联的 HTTP 请求,通常由应用程序服务器报告。 此类事件的网络相关信息通常较少。 由应用程序服务器进行报告时,报告的 URL 不应包含架构和服务器名称,而是只应包含 URL 的路径和参数部分。 |
EventResult | 必需 | Enumerated | 描述事件结果,规范化为以下值之一: - Success - Partial - Failure - NA (不适用)对于 HTTP 会话, Success 定义为低于 400 的状态代码,Failure 定义为高于 400 的状态代码。 有关 HTTP 状态代码的列表,请参阅 W3 Org。源可以只提供“EventResultDetails”字段的值,必须分析该字段才能获取“EventResult”值。 |
EventResultDetails | 建议 | 字符串 | HTTP 状态代码。 注意:可以在源记录中使用不同字词提供该值,这些字词应规范化为这些值。 原始值应存储在 EventOriginalResultDetails 字段中。 |
EventSchema | 必需 | 字符串 | 此处所述的架构名称为 WebSession 。 |
EventSchemaVersion | 必需 | 字符串 | 架构的版本。 此处记录的架构版本为 0.2.6 |
Dvc 字段 | 对于 Web 会话事件,设备字段引用报告 Web 会话事件的系统。 这通常是 HTTPSession 事件的中介设备,以及 WebServerSession 和 ApiRequest 事件的目标 Web 或应用程序服务器。 |
下表中显示的字段是所有 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 会话事件时具有特定准则:
- 别名 User 应引用 SrcUsername 而不是 DstUsername。
- 除了存储在 EventResultDetails 中的 HTTP 状态代码之外,字段 EventOriginalResultDetails 还可以保存源所报告的任何结果。
- 对于 Web 会话,主要目标字段是 Url 字段。 DstDomain 是可选的,而不是建议的。 具体而言,如果不提供该字段,则无需从分析程序中的 URL 提取它。
- 字段
NetworkRuleName
和NetworkRuleNumber
被分别重命名为RuleName
和RuleNumber
。
Web 会话事件通常由中间设备报告,这些设备会终止来自客户端的 HTTP 连接,并与服务器发起新连接(充当代理)。 若要表示中间设备,请使用 ASIM 网络会话架构 中间设备字段
下面是特定于 Web 会话的其他字段:
字段 | 类 | 类型 | 说明 |
---|---|---|---|
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 | 可选 | String | URL 的原始值(如果报告设备修改了 URL,并且已提供这两个值)。 |
HttpVersion | 可选 | String | HTTP 请求版本。 示例: 2.0 |
HttpRequestMethod | 建议 | Enumerated | HTTP 方法。 这些值已在 RFC 7231 和 RFC 5789 中定义,包括 GET 、HEAD 、POST 、PUT 、DELETE 、CONNECT 、OPTIONS 、TRACE 和 PATCH 。示例: GET |
HttpStatusCode | Alias | HTTP 状态代码。 EventResultDetails 的别名。 | |
HttpContentType | 可选 | String | HTTP 响应内容类型标头。 注意:HttpContentType 字段可以包含内容格式和额外参数,例如用于获取实际格式的编码。 示例: text/html; charset=ISO-8859-4 |
HttpContentFormat | 可选 | String | HttpContentType 的内容格式部分 示例: text/html |
HttpReferrer | 可选 | String | HTTP 引用器标头。 注意:与 OSSEM 同步的 ASIM 为引用网站使用正确的拼写方式,而不使用原始 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 | Alias | HttpUserAgent 的别名 | |
HttpRequestXff | 可选 | IP 地址 | HTTP X-Forwarded-For 标头。 示例: 120.12.41.1 |
HttpRequestTime | 可选 | 整数 | 将请求发送到服务器所花费的时间,以毫秒为单位(如果适用)。 示例: 700 |
HttpResponseTime | 可选 | 整数 | 在服务器中接收响应所花费的时间,以毫秒为单位(如果适用)。 示例: 800 |
HttpHost | 可选 | String | HTTP 请求所面向的虚拟 Web 服务器。 此值通常基于 HTTP 主机头。 |
FileName | 可选 | 字符串 | 对于 HTTP 上传,该字段表示上传的文件的名称。 |
FileMD5 | 可选 | MD5 | 对于 HTTP 上传,该字段表示上传文件的 MD5 哈希。 示例: 75a599802f1fa166cdadb360960b1dd0 |
FileSHA1 | 可选 | SHA1 | 对于 HTTP 上传,该字段表示上传文件的 SHA1 哈希。 示例: d55c5a4df19b46db8c54 c801c4665d3338acdab0 |
FileSHA256 | 可选 | SHA256 | 对于 HTTP 上传,该字段表示上传文件的 SHA256 哈希。 示例: e81bb824c4a09a811af17deae22f22dd 2e1ec8cbb00b22629d2899f7c68da274 |
FileSHA512 | 可选 | SHA512 | 对于 HTTP 上传,该字段表示上传文件的 SHA512 哈希。 |
Hash | Alias | 别名化为可用 Hash 字段。 | |
FileHashType | 可选 | Enumerated | Hash 字段中的哈希类型。 可能的值包括:MD5 、SHA1 、SHA256 和 SHA512 。 |
FileSize | 可选 | Long | 对于 HTTP 上传,该字段表示上传文件的大小(以字节为单位)。 |
FileContentType | 可选 | String | 对于 HTTP 上传,该字段表示上传文件的内容类型。 |
如果事件由 Web 会话的某个终结点报告,则它可以包含有关发起或终止了该会话的进程的信息。 在这种情况下,可以使用 ASIM 进程事件架构来规范化此信息。
Web 会话架构依赖于网络会话架构。 因此,网络会话架构更新也适用于 Web 会话架构。
下面是架构版本 0.2.5 中的更改:
- 添加了字段
HttpHost
。
下面是 0.2.6 版架构中的更改:
- FileSize 的类型已从 Integer 更改为 Long。
有关详细信息,请参阅: