高级安全信息模型 (ASIM) 文件事件规范化架构参考(公共预览版)
文件事件规范化架构用于描述创建、修改或者删除文件或文档等文件活动。 此类事件由操作系统、文件存储系统(例如 Azure 文件存储)和文档管理系统(例如 Microsoft SharePoint)报告。
有关 Microsoft Sentinel 中规范化的详细信息,请参阅规范化和高级安全信息模型 (ASIM)。
重要
文件事件规范化架构目前以预览版提供。 此功能不附带服务级别协议,不建议将其用于生产工作负荷。
Azure 预览版补充条款包含适用于 beta 版、预览版或其他尚未正式发布的 Azure 功能的其他法律条款。
分析器
部署和使用文件活动分析程序
从 Microsoft Sentinel GitHub 存储库部署 ASIM 文件活动分析程序。 若要跨所有文件活动源进行查询,请使用统一分析程序 imFileEvent
作为查询中的表名称。
有关使用 ASIM 分析程序的详细信息,请参阅 ASIM 分析程序概述。 有关 Microsoft Sentinel 直接提供的文件活动分析程序列表,请参考 ASIM 分析程序列表
添加自己的规范化分析器
为文件事件信息模型实现自定义分析器时,请使用以下语法来命名 KQL 函数:imFileEvent<vendor><Product
。
若要了解如何将自定义分析程序添加到文件活动统一分析程序,请参阅管理 ASIM 分析程序一文。
规范化内容
有关使用规范化文件活动事件的完整分析规则列表,请参阅文件活动安全内容。
架构概述
文件事件信息模型与 OSSEM 进程实体架构相一致。
文件事件架构引用以下对于文件活动极为重要的实体:
- Actor。 启动文件活动的用户
- ActingProcess。 由操作者 (Actor) 用来启动文件活动的进程
- TargetFile。 对其执行了操作的文件
- 源文件 (SrcFile)。 在执行操作之前存储文件信息。
下面最适当地演示了这些实体之间的关系:操作者使用操作进程执行文件操作,而操作进程将源文件修改为目标文件 。
例如:JohnDoe
(操作者)使用 Windows File Explorer
(操作进程)将 new.doc
(源文件)重命名为 old.doc
(目标文件) 。
架构详细信息
通用字段
重要
ASIM 通用字段一文详细介绍了所有架构的通用字段。
符合文件事件架构特定准则的字段
以下列表提及了符合文件活动事件特定准则的字段:
字段 | 类 | 类型 | 说明 |
---|---|---|---|
EventType | 必需 | Enumerated | 描述记录报告的操作。 支持的值包括: - FileAccessed - FileCreated - FileModified - FileDeleted - FileRenamed - FileCopied - FileMoved - FolderCreated - FolderDeleted - FolderMoved - FolderModified - FileCreatedOrModified |
EventSubType | 可选 | Enumerated | 描述有关 EventType 中报告的操作的详细信息。 每个事件类型支持的值包括: - FileCreated - Upload ,Checkin - FileModified - Checkin - FileCreatedOrModified - Checkin - FileAccessed - Download ,Preview ,Checkout ,Extended - FileDeleted - Recycled ,Versions ,Site |
EventSchema | 必需 | 字符串 | 此处记录的架构名称为 FileEvent。 |
EventSchemaVersion | 必需 | 字符串 | 架构的版本。 此处记录的架构版本为 0.2.1 |
Dvc 字段 | - | - | 对于文件活动事件,设备字段指的是发生文件活动的系统。 |
重要
EventSchema
字段目前为可选项,但将于 2022 年 9 月 1 日成为必需项。
所有通用字段
表中显示的字段是所有 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 |
目标文件字段
以下字段表示有关文件操作中目标文件的信息。 如果操作涉及单个文件,例如 FileCreate
,则它由目标文件字段表示。
字段 | 类 | 类型 | 说明 |
---|---|---|---|
TargetFileCreationTime | 可选 | 日期/时间 | 创建目标文件的时间。 |
TargetFileDirectory | 可选 | 字符串 | 目标文件所在的文件夹或位置。 此字段应类似于 TargetFilePath 字段,但不包含最后一个元素。 注意:如果此值已在日志源中提供,而不需要从完整路径中提取,则分析器可以提供此值。 |
TargetFileExtension | 可选 | 字符串 | 目标文件扩展名。 注意:如果此值已在日志源中提供,而不需要从完整路径中提取,则分析器可以提供此值。 |
TargetFileMimeType | 可选 | Enumerated | 目标文件的 Mime 或媒体类型。 IANA 媒体类型存储库中列出了允许的值。 |
TargetFileName | 建议 | 字符串 | 目标文件的名称,不带路径或位置,但带有扩展名(如果相关)。 此字段应类似于 TargetFilePath 字段中的最后一个元素。 |
FileName | Alias | TargetFileName 字段的别名。 | |
TargetFilePath | 必需 | 字符串 | 目标文件的完整规范化路径,包括文件夹或位置、文件名和扩展名。 有关详细信息,请参阅路径结构。 注意:如果记录中不包含文件夹或位置信息,则仅在此处存储文件名。 示例: C:\Windows\System32\notepad.exe |
TargetFilePathType | 必需 | Enumerated | TargetFilePath 的类型。 有关详细信息,请参阅路径结构。 |
文件路径 | Alias | TargetFilePath 字段的别名。 | |
TargetFileMD5 | 可选 | MD5 | 目标文件的 MD5 哈希。 示例: 75a599802f1fa166cdadb360960b1dd0 |
TargetFileSHA1 | 可选 | SHA1 | 目标文件的 SHA-1 哈希。 示例: d55c5a4df19b46db8c54 c801c4665d3338acdab0 |
TargetFileSHA256 | 可选 | SHA256 | 目标文件的 SHA-256 哈希。 示例: e81bb824c4a09a811af17deae22f22dd 2e1ec8cbb00b22629d2899f7c68da274 |
TargetFileSHA512 | 可选 | SHA512 | 源文件的 SHA-512 哈希。 |
哈希 | Alias | 最佳可用目标文件哈希的别名。 | |
HashType | 建议 | 字符串 | 哈希别名字段中存储的哈希的类型,允许的值为 MD5 、SHA 、SHA256 、SHA512 和 IMPHASH 。 如果 Hash 已填充,则为必填字段。 |
TargetFileSize | 可选 | Long | 目标文件的大小,以字节为单位。 |
源文件字段
以下字段表示有关同时具有源和目标(如副本)的文件操作中的源文件的信息。 如果操作涉及单个文件,则它由目标文件字段表示。
字段 | 类 | 类型 | 说明 |
---|---|---|---|
SrcFileCreationTime | 可选 | 日期/时间 | 创建源文件的时间。 |
SrcFileDirectory | 可选 | 字符串 | 源文件所在的文件夹或位置。 此字段应类似于 SrcFilePath 字段,但不包含最后一个元素。 注意:如果此值已在日志源中提供,而不需要从完整路径中提取,则分析器可以提供此值。 |
SrcFileExtension | 可选 | 字符串 | 源文件扩展名。 注意:如果此值已在日志源中提供,而不需要从完整路径中提取,则分析器可以提供此值。 |
SrcFileMimeType | 可选 | Enumerated | 源文件的 Mime 或媒体类型。 IANA 媒体类型存储库中列出了支持的值。 |
SrcFileName | 建议 | 字符串 | 源文件的名称,不带路径或位置,但带有扩展名(如果相关)。 此字段应类似于 SrcFilePath 字段中的最后一个元素。 |
SrcFilePath | 建议 | 字符串 | 源文件的完整规范化路径,包括文件夹或位置、文件名和扩展名。 有关详细信息,请参阅路径结构。 示例: /etc/init.d/networking |
SrcFilePathType | 建议 | Enumerated | SrcFilePath 的类型。 有关详细信息,请参阅路径结构。 |
SrcFileMD5 | 可选 | MD5 | 源文件的 MD5 哈希。 示例: 75a599802f1fa166cdadb360960b1dd0 |
SrcFileSHA1 | 可选 | SHA1 | 源文件的 SHA-1 哈希。 示例: d55c5a4df19b46db8c54 c801c4665d3338acdab0 |
SrcFileSHA256 | 可选 | SHA256 | 源文件的 SHA-256 哈希。 示例: e81bb824c4a09a811af17deae22f22dd 2e1ec8cbb00b22629d2899f7c68da274 |
SrcFileSHA512 | 可选 | SHA512 | 源文件的 SHA-512 哈希。 |
SrcFileSize | 可选 | Long | 源文件的大小,以字节为单位。 |
参与者字段
字段 | 类 | 类型 | 说明 |
---|---|---|---|
ActorUserId | 建议 | 字符串 | 参与者的计算机可读的唯一字母数字表示形式。 有关不同 ID 类型的受支持格式,请参阅用户实体。 示例: S-1-12 |
ActorScope | 可选 | 字符串 | 在其中定义了 ActorUserId 和 ActorUsername 的范围(例如 Microsoft Entra 租户)。 有关详细信息和允许值的列表,请参阅架构概述文章中的 UserScope。 |
ActorScopeId | 可选 | 字符串 | 在其中定义了 ActorUserId 和 ActorUsername 的范围 ID(例如 Microsoft Entra 目录 ID)。 有关详细信息和允许值的列表,请参阅架构概述文章中的 UserScopeId。 |
ActorUserIdType | 条件逻辑 | 字符串 | ActorUserId 字段中存储的 ID 的类型。 有关允许值的列表和更多信息,请参阅架构概述文章中的 UserIdType。 |
ActorUsername | 必需 | 字符串 | 参与者的用户名,包括域信息(如果可用)。 有关不同 ID 类型的受支持格式,请参阅用户实体。 仅当未提供域信息时才使用简单格式。 将用户名类型存储在 ActorUsernameType 字段中。 如果其他用户名格式可用,请将其存储在字段 ActorUsername<UsernameType> 中。示例: AlbertE |
用户 | Alias | ActorUsername 字段的别名。 示例: CONTOSO\dadmin |
|
ActorUsernameType | 条件逻辑 | Enumerated | 指定 ActorUsername 字段中存储的用户名的类型。 有关允许值的列表和更多信息,请参阅架构概述文章中的 UsernameType。 示例: Windows |
“ActorSessionId” | 可选 | 字符串 | Actor 登录会话的唯一 ID。 示例: 999 注意:类型定义为“字符串”以支持不同的系统,但在 Windows 上,此值必须是数字。 如果使用的是 Windows 计算机并使用了其他类型,请务必转换值。 例如,如果使用了十六进制值,请将其转换为十进制值。 |
ActorUserType | 可选 | UserType | 操作者的类型。 有关允许值的列表和更多信息,请参阅架构概述文章中的 UserType。 注意:可以在源记录中使用不同字词提供该值,这些字词应规范化为上述值。 将原始值存储在 ActorOriginalUserType 字段中。 |
ActorOriginalUserType | 可选 | String | 原始目标用户类型(如果报告设备已提供)。 |
操作进程字段
字段 | 类 | 类型 | 说明 |
---|---|---|---|
ActingProcessCommandLine | 可选 | 字符串 | 用于运行操作进程的命令行。 示例: "choco.exe" -v |
“ActingProcessName” | 可选 | string | 操作进程的名称。 此名称通常是从映像或可执行文件派生的,该映像或可执行文件用于定义映射到进程虚拟地址空间的初始代码和数据。 示例: C:\Windows\explorer.exe |
处理 | Alias | ActingProcessName 的别名 | |
ActingProcessId | 可选 | 字符串 | 操作进程的进程 ID (PID)。 示例: 48610176 注意:类型定义为“字符串”以支持不同的系统,但在 Windows 和 Linux 上,此值必须是数字。 如果使用的是 Windows 或 Linux 计算机并使用了其他类型,请务必转换值。 例如,如果使用了十六进制值,请将其转换为十进制值。 |
“ActingProcessGuid” | 可选 | string | 操作进程的生成的唯一标识符 (GUID)。 可用于跨系统标识进程。 示例: EF3BD0BD-2B74-60C5-AF5C-010000001E00 |
与源系统相关的字段
以下字段表示有关系统启动文件活动(通常通过网络执行时)的信息。
字段 | 类 | 类型 | 说明 |
---|---|---|---|
SrcIpAddr | 建议 | IP 地址 | 当远程系统启动操作时此系统的 IP 地址。 示例: 185.175.35.214 |
IpAddr | Alias | SrcIpAddr 的别名 | |
Src | Alias | SrcIpAddr 的别名 | |
SrcPortNumber | 可选 | 整数 | 当远程系统启动操作时,从中启动连接的端口号。 示例: 2335 |
SrcHostname | 建议 | 主机名 | 源设备主机名,不包括域信息。 如果没有可用的设备名称,请在此字段中存储相关的 IP 地址。 示例: DESKTOP-1282V4D |
SrcDomain | 建议 | 字符串 | 源设备的域。 示例: Contoso |
SrcDomainType | 条件逻辑 | DomainType | SrcDomain 的类型。 有关允许值的列表和更多信息,请参阅架构概述文章中的 DomainType。 如果使用了 SrcDomain,则该字段是必填的。 |
SrcFQDN | 可选 | String | 源设备主机名,包括域信息(如果可用)。 注意:此字段支持传统的 FQDN 格式和 Windows 域\主机名格式。 SrcDomainType 字段反映使用的格式。 示例: Contoso\DESKTOP-1282V4D |
SrcDescription | 可选 | 字符串 | 与设备关联的描述性文本。 例如:Primary Domain Controller 。 |
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。 |
SrcSubscriptionId | 可选 | String | 源设备所属的云平台订阅 ID。 SrcSubscriptionId 映射到 Azure 上的订阅 ID。 |
SrcGeoCountry | 可选 | 国家/地区 | 与源 IP 地址关联的国家/地区。 |
SrcGeoRegion | 可选 | 区域 | 与源 IP 地址关联的区域。 |
SrcGeoCity | 可选 | 城市 | 与源 IP 地址关联的城市。 |
SrcGeoLatitude | 可选 | 纬度 | 与源 IP 地址关联的地理坐标的纬度。 示例: 44.475833 |
SrcGeoLongitude | 可选 | 经度 | 与源 IP 地址关联的地理坐标的经度。 示例: 73.211944 |
网络相关的字段
以下字段表示通过网络进行文件活动时有关网络会话的信息。
字段 | 类 | 类型 | 说明 |
---|---|---|---|
HttpUserAgent | 可选 | 字符串 | 当远程系统通过 HTTP 或 HTTPS 启动操作时使用的用户代理。 例如: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.246 |
NetworkApplicationProtocol | 可选 | 字符串 | 当远程系统启动操作时,此值是 OSI 模型中使用的应用程序层协议。 虽然这不是一个枚举字段并接受任何值,但首选的值包括: HTTP 、HTTPS 、SMB 、FTP 和 SSH 示例: SMB |
目标应用程序字段
以下字段表示有关目标应用程序代表用户执行文件活动的信息。 目标应用程序通常与网络文件活动相关,例如使用 Saas(软件即服务)应用程序。
字段 | 类 | 类型 | 说明 |
---|---|---|---|
TargetAppName | 可选 | 字符串 | 目标应用程序的名称。 |
应用程序 | Alias | TargetAppName 的别名。 | |
TargetAppId | 可选 | 字符串 | 目标应用程序的 ID,由报告设备报告。 |
TargetAppType | 可选 | AppType | 目标应用程序的类型。 有关允许值的列表和更多信息,请参阅架构概述文章中的 AppType。 如果使用了 TargetAppName 或 TargetAppId,则此字段是必填的。 |
TargetUrl | 可选 | 字符串 | 通过 HTTP 或 HTTPS 启动操作时使用的 URL。 示例: https://onedrive.live.com/?authkey=... |
Url | Alias | TargetUrl 的别名 |
检查字段
以下字段用于表示由防病毒系统等安全系统执行的检查。 标识的线程通常与执行活动的文件相关联,而不是与活动本身相关联。
字段 | 类 | 类型 | 说明 |
---|---|---|---|
RuleName | 可选 | String | 与检查结果关联的规则的名称或 ID。 |
RuleNumber | 可选 | 整数 | 与检查结果关联的规则的数量。 |
规则 | 条件逻辑 | 字符串 | kRuleName 的值或 RuleNumber 的值。 如果使用 RuleNumber 的值,则类型应转换为字符串。 |
ThreatId | 可选 | String | 在文件活动中识别到的威胁或恶意软件的 ID。 |
ThreatName | 可选 | 字符串 | 在文件活动中识别到的威胁或恶意软件的名称。 示例: EICAR Test File |
ThreatCategory | 可选 | 字符串 | 在文件活动中识别到的威胁或恶意软件的类别。 示例: Trojan |
ThreatRiskLevel | 可选 | 整数 | 与已识别的威胁关联的风险级别。 级别应是介于 0 和 100 之间的数字。 注意:可以在源记录中使用不同的标度提供值,而使用的标度应规范化为此标度。 原始值应存储在 ThreatRiskLevelOriginal 中。 |
ThreatOriginalRiskLevel | 可选 | String | 报告设备报告的风险级别。 |
ThreatFilePath | 可选 | 字符串 | 已识别出威胁的文件路径。 字段 ThreatField 包含 ThreatFilePath 表示的字段的名称。 |
ThreatField | 可选 | Enumerated | 已识别出威胁的字段。 该值为 SrcFilePath 或 DstFilePath 。 |
ThreatConfidence | 可选 | 整数 | 已识别威胁的可信度,规范化为 0 到 100 之间的值。 |
ThreatOriginalConfidence | 可选 | 字符串 | 报告设备报告的已识别威胁的原始可信度。 |
ThreatIsActive | 可选 | Boolean | 如果已识别的威胁被视为活动威胁,则为 True。 |
ThreatFirstReportedTime | 可选 | datetime | IP 地址或域首次被识别为威胁的时间。 |
ThreatLastReportedTime | 可选 | datetime | 上次将 IP 地址或域识别为威胁的时间。 |
路径结构
应规范化路径以便与以下格式之一相匹配。 值在规范化后的格式将反映在相应的 FilePathType 字段中。
类型 | 示例 | 说明 |
---|---|---|
Windows 本地 | C:\Windows\System32\notepad.exe |
由于 Windows 路径名称不区分大小写,因此,此类型意味着值不区分大小写。 |
Windows 共享 | \\Documents\My Shapes\Favorites.vssx |
由于 Windows 路径名称不区分大小写,因此,此类型意味着值不区分大小写。 |
Unix | /etc/init.d/networking |
由于 Unix 路径名称区分大小写,因此,此类型意味着值区分大小写。 - 对于 Azure Blob 存储对象密钥,请使用此类型。 |
URL | https://1drv.ms/p/s!Av04S_*********we |
在以 URL 形式提供文件路径时使用。 URL 并不限于 http 或 https,任何值(包括 FTP 值)都是有效的。 |
架构更新
下面是架构版本 0.1.1 中的更改:
- 添加了字段
EventSchema
。
下面是架构版本 0.2 中的更改:
- 添加了检查字段。
- 添加了字段
ActorScope
、TargetUserScope
、HashType
、TargetAppName
、TargetAppId
、TargetAppType
、SrcGeoCountry
、SrcGeoRegion
、SrcGeoLongitude
、SrcGeoLatitude
、ActorSessionId
、DvcScopeId
和DvcScope
。 - 添加了别名
Url
、IpAddr
、“FileName”和Src
。
下面是架构版本 0.2.1 中的更改:
- 添加
Application
作为TargetAppName
的别名。 - 添加了字段
ActorScopeId
- 添加了源设备相关字段。
后续步骤
有关详细信息,请参阅: