FileSet
FileSet 标记介绍了一组文件。
标记属性
相对于完整性监控规则所监控的实体的属性,以下属性是标记本身的 XML 属性。
属性 | 描述 | 必需 | 缺省值 | 允许值 |
base | 设置 FileSet 的基本目录。标记中的其他所有内容都是相对于此目录的。 | 是 | N/A | 解析为语法有效的路径(并不要求路径存在)的字符串值。注意:Windows 客户端允许使用 UNC 路径,但要求客户端计算机的 "LocalSystem" 帐户能够访问远程系统。此客户端是一种以 LocalSystem(又称为 NT AUTHORITY\SYSTEM)身份运行的 Windows 服务。当访问网络资源时,LocalSystem 使用计算机的凭证,即名为 DOMAIN\MACHINE$ 的帐户。由于提供给远程计算机的访问令牌还包含此计算机的“管理员”组,因此远程共享必须向客户端计算机的帐户、客户端计算机的管理员组或“每个成员”授予读权限。有关测试对 UNC 路径的访问权限,请使用此技术启动在 LocalSystem 帐户下作为服务运行的 Windows 命令提示符。这样,您便可以尝试访问网络和本地资源,或启动将在 LocalSystem 帐户下运行的其他应用程序。 如果基本值的语法无效,将不会处理 FileSet。但会评估其余配置。 |
onChange | 是否应当实时监控返回的文件。 | 否 | false | true、false |
followLinks | 此 FileSet 是否将要遵循符号链接。 | 否 | false | true、false |
实体集属性
以下是可能受完整性监控规则监控的 FileSet 的属性。
- Created:创建文件的时间戳
- LastModified:上次修改文件的时间戳
- LastAccessed:上次访问文件的时间戳在 Windows 上,不会立即更新此值,并且记录上次访问的时间戳会因性能增强而遭到禁用。有关详细信息,请参阅文件时间。关于此属性的其他问题为:执行扫描文件需要客户端打开文件,这将更改上次访问的时间戳。在 Unix 上,如果打开文件时 O_NOATIME 标志可用,则客户端将使用此标志,这将阻止操作系统更新上次访问的时间戳并提高扫描速度。
- Permissions:在 Windows 上,是文件的安全描述符,格式为 SDDL;或在支持 ACL 的 Unix 系统上,是 Posix 样式的 ACL,否则将会是数字(八进制)格式的 Unix 样式 rwxrwxrwx 文件权限。
- Owner:文件所有者的用户 ID(在 Unix 上通常指 "UID")
- 组:文件所有者的组 ID(在 Unix 上通常指 "GID")
- Size:文件的大小
- Sha1:SHA-1 哈希
- Sha256:SHA-256 哈希
- Md5:MD5 哈希
- 标志:仅限 Windows。由 GetFileAttributes() Win32 API 返回的标志。Windows 资源管理器将以下内容称为文件的“属性”:只读、已归档、已压缩等。
- SymLinkPath(仅限 Unix 和 Linux):如果文件是符号链接,则链接的路径存储在此处。Windows NTFS 支持类似于 Unix 的符号链接,但仅限目录,并不包括文件。Windows 快捷方式对象并不是真的符号链接,因为操作系统未处理这些对象;Windows 资源管理器处理快捷方式文件 (*.lnk),但打开 *.lnk 文件的其他应用程序将只看到此 lnk 文件的内容。
- InodeNumber(仅限 Unix 和 Linux):磁盘的 inode 编号,此磁盘存储与文件关联的 inode
- DeviceNumber(仅限 Unix 和 Linux):磁盘的设备编号,此磁盘存储与文件关联的 inode
- BlocksAllocated(仅限 Linux 和 Unix):已分配用于存储文件的块的数量。
- Growing:如果文件的大小保持不变或在扫描之间增加,则 (DSA 7.5+) 包含值 "true",否则包含值 "false"。此属性主要对附加了数据的日志文件有用。注意,滚动日志文件将导致此属性发生更改。
- Shrinking:如果文件的大小保持不变或在扫描之间减少,则 (DSA 7.5+) 包含值 "true",否则包含值 "false"。
速记属性
以下是速记属性及其映射到的属性。
- CONTENTS:解析为在计算机编辑器或策略编辑器可以更改策略或特定计算机的这些设置。 要更改策略的设置,请转至“策略”页面并双击要编辑的策略(或者选择策略并单击“详细信息”)。 要更改计算机的设置,请转至“计算机”页面并双击要编辑的计算机(或者选择计算机并单击“详细信息”)。 > 完整性监控 > 高级中设置的内容哈希算法。
- STANDARD:Created、LastModified、Permissions、Owner、Group、Size、Contents、Flags(仅限 Unix)、SymLinkPath(仅限 Unix)
作为目录装入的驱动器
除非作为目录装入的驱动器是网络驱动器(此情况下忽略这些驱动器),否则可将其视为任意其他目录。
替换数据流
基于 NTFS 的文件系统支持替换数据流的概念。使用此功能时,其行为在概念上类似于文件中的各文件。
echo plain > sample.txt
echo alternate > sample.txt:s
more < sample.txt
more < sample.txt:s
第一个 "more" 仅显示文本 "plain",如果使用标准文本编辑器(如记事本)打开文件,将显示相同文本。而第二个 "more"(访问 sample.txt 的 "s" 流)将显示字符串 "alternate"。
对于 FileSet,如果未指定任何流,则所有流都会包括在内。每个流都是基线中的一个独立实体条目。流的可用属性包括:
- size
- Sha1
- Sha256
- Md5
- Contents
以下示例包括上述介绍的两个流:
<include key="**/sample.txt" />
要包括或排除特定流,请使用 ":" 符号。以下示例仅匹配 sample.txt 上的 "s" 流,而非主要 sample.txt 流:
<include key="**/sample.txt:s" />
流符号支持特征码匹配。以下示例将包括 sample.txt,但排除其所有替换流:
<include key="**/sample.txt" />
<exclude key="**/sample.txt:*" />
"Key" 的含义
Key 是一种模式,用于匹配 "base" 指定的目录相对的文件路径。这是一种层次结构模式,其中,用 "/" 隔开的模式各部分与用给定操作系统的文件分隔符隔开的路径各部分匹配
子元素
- Include
- Exclude
有关包括和排除及其允许属性和子元素的一般描述,请参阅完整性监控规则语言。此处仅包含与该 FileSet 实体集类相关的包含和排除的特定信息。
FileSet 的包含和排除特殊属性:
executable
确定文件是否可执行。但这并不意味着文件权限允许执行此文件。反而会检查文件的内容(相对于平台而言),以确定文件是否是可执行文件。