文件完整性监控集成
编辑文件完整性监控集成
编辑此集成会在磁盘上的文件发生更改(创建、更新或删除)时发送事件。事件包含文件元数据和哈希值。
此集成适用于 Linux、macOS (Darwin) 和 Windows。
⚠️ 此集成不应用于监控网络文件系统上的路径。 |
---|
工作原理
编辑此集成使用操作系统的功能来实时监控文件更改。当集成启动时,它会使用操作系统创建一个订阅,以接收指定文件或目录更改的通知。收到更改通知后,集成将读取文件的元数据,然后计算文件内容的哈希值。
在启动时,此集成将对配置的文件和目录执行初始扫描,以生成受监控路径的基线数据,并检测自上次运行以来的更改。它使用本地持久化数据,以便仅发送新文件或修改文件的事件。
兼容性
编辑支持此功能的操作系统的功能如下
- Linux - 使用 inotify,因此内核必须具有 inotify 支持。Inotify 最初合并到 2.6.13 Linux 内核中。
- macOS (Darwin) - 使用 FSEvents API,自 macOS 10.5 起提供。此 API 将对文件的多个更改合并为一个事件。Auditbeat 将此合并的更改转换为有意义的操作序列。但是,在极少数情况下,报告的事件顺序可能与实际发生的顺序不同。
- Windows - 使用 ReadDirectoryChangesW。
示例
以下是 event
的示例事件
{ "@timestamp": "2022-12-26T05:20:54.547Z", "agent": { "ephemeral_id": "7bc73d63-724e-4502-95c1-ff11478b89ec", "id": "8921fb55-4463-4944-8dea-074038035111", "name": "docker-fleet-agent", "type": "auditbeat", "version": "8.3.0" }, "data_stream": { "dataset": "fim.event", "namespace": "ep", "type": "logs" }, "ecs": { "version": "8.11.0" }, "elastic_agent": { "id": "8921fb55-4463-4944-8dea-074038035111", "snapshot": false, "version": "8.5.0" }, "event": { "action": [ "created" ], "agent_id_status": "verified", "category": [ "file" ], "dataset": "fim.event", "ingested": "2022-12-26T05:20:55Z", "kind": "event", "module": "file_integrity", "type": [ "creation" ] }, "file": { "ctime": "2022-12-26T05:20:54.531Z", "gid": "1000", "group": "elastic-agent", "hash": { "sha1": "22596363b3de40b06f981fb85d82312e8c0ed511" }, "inode": "11794491", "mode": "0644", "mtime": "2022-12-26T05:20:54.531Z", "owner": "elastic-agent", "path": "/tmp/service_logs/hello", "size": 12, "type": "file", "uid": "1000" }, "host": { "architecture": "x86_64", "containerized": false, "hostname": "docker-fleet-agent", "id": "66392b0697b84641af8006d87aeb89f1", "ip": [ "192.168.128.7" ], "mac": [ "02-42-C0-A8-80-07" ], "name": "docker-fleet-agent", "os": { "codename": "focal", "family": "debian", "kernel": "5.10.104-linuxkit", "name": "Ubuntu", "platform": "ubuntu", "type": "linux", "version": "20.04.5 LTS (Focal Fossa)" } }, "service": { "type": "file_integrity" }, "tags": [ "fim-event" ] }
导出的字段
字段 | 描述 | 类型 |
---|---|---|
@timestamp |
事件时间戳。 |
日期 |
cloud.account.id |
用于在多租户环境中标识不同实体的云账户或组织 ID。示例:AWS 账户 ID、Google Cloud ORG ID 或其他唯一标识符。 |
关键词 |
cloud.availability_zone |
此主机运行所在的可用区。 |
关键词 |
cloud.image.id |
云实例的镜像 ID。 |
关键词 |
cloud.instance.id |
主机计算机的实例 ID。 |
关键词 |
cloud.instance.name |
主机计算机的实例名称。 |
关键词 |
cloud.machine.type |
主机计算机的机器类型。 |
关键词 |
cloud.project.id |
Google Cloud 中项目的名称。 |
关键词 |
cloud.provider |
云提供商的名称。示例值为 aws、azure、gcp 或 digitalocean。 |
关键词 |
cloud.region |
此主机运行所在的区域。 |
关键词 |
container.id |
唯一的容器 ID。 |
关键词 |
container.image.name |
构建容器所基于的镜像名称。 |
关键词 |
container.labels |
镜像标签。 |
对象 |
container.name |
容器名称。 |
关键词 |
container.runtime |
管理此容器的运行时。 |
关键词 |
data_stream.dataset |
数据流数据集。 |
常量关键词 |
data_stream.namespace |
数据流命名空间。 |
常量关键词 |
data_stream.type |
数据流类型。 |
常量关键词 |
destination.address |
某些事件目标地址的定义不明确。事件有时会列出 IP、域名或 Unix 套接字。您应该始终将原始地址存储在 |
关键词 |
ecs.version |
此事件符合的 ECS 版本。 |
关键词 |
error.message |
错误消息。 |
仅匹配文本 |
event.action |
事件捕获的操作。这描述了事件中的信息。它比 |
关键词 |
event.dataset |
事件数据集 |
常量关键词 |
event.ingested |
事件到达中央数据存储时的时间戳。这与 |
日期 |
event.module |
事件模块 |
常量关键词 |
event.outcome |
这是四个 ECS 分类字段之一,表示 ECS 类别层次结构中的最低级别。 |
关键词 |
file.ctime |
上次更改文件属性或元数据的时间。请注意,更改文件内容将更新 |
日期 |
file.extension |
文件扩展名,不包括前导点。请注意,当文件名有多个扩展名时(例如 example.tar.gz),只应捕获最后一个扩展名(“gz”,而不是“tar.gz”)。 |
关键词 |
file.gid |
文件的主要组 ID (GID)。 |
关键词 |
file.group |
文件的主要组名称。 |
关键词 |
file.hash.sha1 |
SHA1 哈希值。 |
关键词 |
file.inode |
表示文件系统中文件的 Inode。 |
关键词 |
file.mime_type |
MIME 类型应尽可能使用 IANA[https://www.iana.org/assignments/media-types/media-types.xhtml[IANA 官方类型来标识文件或字节流的格式。当适用多种类型时,应使用最具体的类型。 |
关键词 |
file.mode |
文件的八进制表示形式的模式。 |
关键词 |
file.mtime |
上次修改文件内容的时间。 |
日期 |
file.origin |
描述此文件可能的外部来源的字符串数组。例如,它下载的 URL。仅在 macOS 中通过 kMDItemWhereFroms 属性支持。如果来源信息不可用,则省略。 |
关键词 |
file.origin.text |
|
文本 |
file.owner |
文件所有者的用户名。 |
关键词 |
file.path |
文件的完整路径,包括文件名。它应包括驱动器盘符(如果适用)。 |
关键词 |
file.path.text |
|
仅匹配文本 |
file.setgid |
如果文件设置了 |
布尔值 |
file.setuid |
如果文件设置了 |
布尔值 |
file.size |
文件大小(以字节为单位)。仅当 |
长整型 |
file.target_path |
符号链接的目标路径。 |
关键词 |
file.target_path.text |
|
仅匹配文本 |
file.type |
文件类型(文件、目录或符号链接)。 |
关键词 |
file.uid |
文件所有者的用户 ID (UID) 或安全标识符 (SID)。 |
关键词 |
group.id |
系统/平台上组的唯一标识符。 |
关键词 |
group.name |
组的名称。 |
关键词 |
host.architecture |
操作系统架构。 |
关键词 |
host.containerized |
如果主机是容器。 |
布尔值 |
host.domain |
主机所属的域名。例如,在 Windows 上,这可以是主机的 Active Directory 域或 NetBIOS 域名。对于 Linux,这可以是主机 LDAP 提供程序的域。 |
关键词 |
host.hostname |
主机的 hostname。它通常包含主机计算机上 |
关键词 |
host.id |
唯一的主机 ID。由于主机名并不总是唯一的,请使用在您的环境中具有意义的值。示例:当前使用的 |
关键词 |
host.ip |
主机 IP 地址。 |
IP |
host.mac |
主机 MAC 地址。 |
关键词 |
host.name |
主机的名称。它可以包含 Unix 系统上 |
关键词 |
host.os.build |
操作系统构建信息。 |
关键词 |
host.os.codename |
操作系统的代码名称(如果有)。 |
关键词 |
host.os.family |
操作系统系列(例如 redhat、debian、freebsd、windows)。 |
关键词 |
host.os.kernel |
操作系统的内核版本,以原始字符串形式。 |
关键词 |
host.os.name |
操作系统名称,不带版本。 |
关键词 |
host.os.name.text |
|
文本 |
host.os.platform |
操作系统平台(例如 centos、ubuntu、windows)。 |
关键词 |
host.os.version |
操作系统的版本,以原始字符串形式。 |
关键词 |
host.type |
主机类型。对于云提供商,这可以是像 |
关键词 |
input.type |
输入类型 |
关键词 |
log.file.path |
此事件来源的日志文件的完整路径,包括文件名。在适当的时候,应包含盘符。如果事件不是从日志文件读取的,则不要填充此字段。 |
关键词 |
log.offset |
日志偏移量 |
长整型 |
message |
对于日志事件,message 字段包含日志消息,已针对在日志查看器中查看进行了优化。对于没有原始消息字段的结构化日志,可以将其他字段连接起来,形成事件的人类可读摘要。如果存在多条消息,可以将它们合并为一条消息。 |
仅匹配文本 |
network.direction |
网络流量的方向。当从基于主机的监控上下文中映射事件时,请从主机的角度填充此字段,使用值“ingress”或“egress”。当从基于网络或边界的监控上下文中映射事件时,请从网络边界的角度填充此字段,使用值“inbound”、“outbound”、“internal”或“external”。请注意,“internal”不跨越边界,旨在描述边界内两台主机之间的通信。另请注意,“external”旨在描述边界外两台主机之间的流量。例如,这对于 ISP 或 VPN 服务提供商可能很有用。 |
关键词 |
process.args |
进程参数的数组,从可执行文件的绝对路径开始。为了保护敏感信息,可能会进行过滤。 |
关键词 |
process.args_count |
process.args 数组的长度。此字段可用于查询或对启动进程时提供的参数数量执行存储桶分析。参数越多,可能表示存在可疑活动。 |
长整型 |
process.executable |
进程可执行文件的绝对路径。 |
关键词 |
process.executable.text |
|
仅匹配文本 |
process.exit_code |
进程的退出代码(如果这是一个终止事件)。如果事件没有退出代码(例如,进程启动),则该字段应不存在。 |
长整型 |
process.name |
进程名称。有时称为程序名称或类似名称。 |
关键词 |
process.name.text |
|
仅匹配文本 |
process.parent.pid |
进程 ID。 |
长整型 |
process.pid |
进程 ID。 |
长整型 |
process.working_directory |
进程的工作目录。 |
关键词 |
process.working_directory.text |
|
仅匹配文本 |
service.type |
收集服务数据的服务类型。该类型可用于对来自一种服务类型的日志和指标进行分组和关联。示例:如果从 Elasticsearch 收集日志或指标,则 |
关键词 |
source.address |
某些事件源地址的定义不明确。事件有时会列出 IP、域或 Unix 套接字。您应始终将原始地址存储在 |
关键词 |
source.as.number |
分配给自治系统的唯一编号。自治系统号 (ASN) 唯一标识 Internet 上的每个网络。 |
长整型 |
source.as.organization.name |
组织名称。 |
关键词 |
source.as.organization.name.text |
|
仅匹配文本 |
source.geo.city_name |
城市名称。 |
关键词 |
source.geo.continent_name |
洲的名称。 |
关键词 |
source.geo.country_iso_code |
国家/地区 ISO 代码。 |
关键词 |
source.geo.country_name |
国家/地区名称。 |
关键词 |
source.geo.location |
经度和纬度。 |
geo_point |
source.geo.region_iso_code |
地区 ISO 代码。 |
关键词 |
source.geo.region_name |
地区名称。 |
关键词 |
source.ip |
源的 IP 地址(IPv4 或 IPv6)。 |
IP |
tags |
用于标记每个事件的关键字列表。 |
关键词 |
user.effective.group.id |
系统/平台上组的唯一标识符。 |
关键词 |
user.effective.group.name |
组的名称。 |
关键词 |
user.effective.id |
用户的唯一标识符。 |
关键词 |
user.effective.name |
用户的简称或登录名。 |
关键词 |
user.effective.name.text |
|
仅匹配文本 |
user.group.id |
系统/平台上组的唯一标识符。 |
关键词 |
user.id |
用户的唯一标识符。 |
关键词 |
user.name |
用户的简称或登录名。 |
关键词 |
user.name.text |
|
仅匹配文本 |
user.target.group.id |
系统/平台上组的唯一标识符。 |
关键词 |
user.target.group.name |
组的名称。 |
关键词 |
user.target.id |
用户的唯一标识符。 |
关键词 |
user.target.name |
用户的简称或登录名。 |
关键词 |
user.target.name.text |
|
仅匹配文本 |
变更日志
编辑变更日志
版本 | 详细信息 | Kibana 版本 |
---|---|---|
1.15.1 |
Bug 修复 (查看拉取请求) |
8.7.1 或更高版本 |
1.15.0 |
增强 (查看拉取请求) |
8.7.1 或更高版本 |
1.14.2 |
增强 (查看拉取请求) |
8.7.1 或更高版本 |
1.14.1 |
增强 (查看拉取请求) |
8.7.1 或更高版本 |
1.14.0 |
增强 (查看拉取请求) |
8.7.1 或更高版本 |
1.13.0 |
增强 (查看拉取请求) |
8.7.1 或更高版本 |
1.12.0 |
增强 (查看拉取请求) |
8.7.1 或更高版本 |
1.11.0 |
增强 (查看拉取请求) |
8.7.1 或更高版本 |
1.10.1 |
Bug 修复 (查看拉取请求) |
8.7.1 或更高版本 |
1.10.0 |
增强 (查看拉取请求) |
8.7.1 或更高版本 |
1.9.0 |
增强 (查看拉取请求) |
8.2.0 或更高版本 |
1.8.0 |
增强 (查看拉取请求) |
8.2.0 或更高版本 |
1.7.0 |
增强 (查看拉取请求) |
8.2.0 或更高版本 |
1.6.0 |
增强 (查看拉取请求) |
8.2.0 或更高版本 |
1.5.0 |
增强 (查看拉取请求) |
8.2.0 或更高版本 |
1.4.3 |
增强 (查看拉取请求) |
8.2.0 或更高版本 |
1.4.2 |
Bug 修复 (查看拉取请求) |
8.2.0 或更高版本 |
1.4.1 |
增强 (查看拉取请求) |
8.2.0 或更高版本 |
1.4.0 |
增强 (查看拉取请求) |
8.2.0 或更高版本 |
1.3.0 |
增强 (查看拉取请求) |
8.2.0 或更高版本 |
1.2.3 |
Bug 修复 (查看拉取请求) |
8.2.0 或更高版本 |
1.2.2 |
Bug 修复 (查看拉取请求) |
8.2.0 或更高版本 |
1.2.1 |
增强 (查看拉取请求) |
8.2.0 或更高版本 |
1.2.0 |
增强 (查看拉取请求) |
8.2.0 或更高版本 |
1.1.0 |
增强 (查看拉取请求) |
8.2.0 或更高版本 |
1.0.0 |
增强 (查看拉取请求) |
8.2.0 或更高版本 |
0.1.0 |
增强 (查看拉取请求) |
— |