文件完整性监控集成

编辑

文件完整性监控集成

编辑

版本

1.15.1 (查看全部)

兼容的 Kibana 版本

8.7.1 或更高版本

支持的无服务器项目类型
这是什么?

安全
可观察性

订阅级别
这是什么?

基本

支持级别
这是什么?

Elastic

此集成会在磁盘上的文件发生更改(创建、更新或删除)时发送事件。事件包含文件元数据和哈希值。

此集成适用于 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 套接字。您应该始终将原始地址存储在 .address 字段中。然后应将其复制到 .ip.domain,具体取决于它是哪个。

关键词

ecs.version

此事件符合的 ECS 版本。ecs.version 是一个必需字段,必须存在于所有事件中。在查询可能符合略微不同的 ECS 版本的多个索引时,此字段允许集成调整为事件的模式版本。

关键词

error.message

错误消息。

仅匹配文本

event.action

事件捕获的操作。这描述了事件中的信息。它比 event.category 更具体。示例有 group-addprocess-startedfile-created。该值通常由实施者定义。

关键词

event.dataset

事件数据集

常量关键词

event.ingested

事件到达中央数据存储时的时间戳。这与 @timestamp 不同,后者是事件最初发生的时间。它也与 event.created 不同,后者旨在捕获代理首次看到事件的时间。在正常情况下,假设没有篡改,时间戳应按时间顺序如下所示:@timestamp < event.created < event.ingested

日期

event.module

事件模块

常量关键词

event.outcome

这是四个 ECS 分类字段之一,表示 ECS 类别层次结构中的最低级别。event.outcome 仅表示从生成事件的实体的角度来看,事件是成功还是失败。请注意,当单个事务在多个事件中描述时,根据其角度,每个事件可能会填充不同的 event.outcome 值。另请注意,在复合事件(包含多个逻辑事件的单个事件)的情况下,此字段应填充最能从事件生成者的角度捕获整体成功或失败的值。此外请注意,并非所有事件都会有相关结果。例如,对于指标事件、event.type:info 的事件或任何结果没有逻辑意义的事件,此字段通常不会填充。

关键词

file.ctime

上次更改文件属性或元数据的时间。请注意,更改文件内容将更新 mtime。这意味着 ctime 将同时调整,因为 mtime 是文件的属性。

日期

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.origin 的多字段。

文本

file.owner

文件所有者的用户名。

关键词

file.path

文件的完整路径,包括文件名。它应包括驱动器盘符(如果适用)。

关键词

file.path.text

file.path 的多字段。

仅匹配文本

file.setgid

如果文件设置了 setgid 位,则设置。否则省略。

布尔值

file.setuid

如果文件设置了 setuid 位,则设置。否则省略。

布尔值

file.size

文件大小(以字节为单位)。仅当 file.type 为“file”时相关。

长整型

file.target_path

符号链接的目标路径。

关键词

file.target_path.text

file.target_path 的多字段。

仅匹配文本

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。它通常包含主机计算机上 hostname 命令返回的内容。

关键词

host.id

唯一的主机 ID。由于主机名并不总是唯一的,请使用在您的环境中具有意义的值。示例:当前使用的 beat.name

关键词

host.ip

主机 IP 地址。

IP

host.mac

主机 MAC 地址。

关键词

host.name

主机的名称。它可以包含 Unix 系统上 hostname 返回的内容、完全限定的域名或用户指定的名称。发送者决定使用哪个值。

关键词

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.name 的多字段。

文本

host.os.platform

操作系统平台(例如 centos、ubuntu、windows)。

关键词

host.os.version

操作系统的版本,以原始字符串形式。

关键词

host.type

主机类型。对于云提供商,这可以是像 t2.medium 这样的机器类型。如果是虚拟机,这可以是容器,例如,或在您的环境中有意义的其他信息。

关键词

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.executable 的多字段。

仅匹配文本

process.exit_code

进程的退出代码(如果这是一个终止事件)。如果事件没有退出代码(例如,进程启动),则该字段应不存在。

长整型

process.name

进程名称。有时称为程序名称或类似名称。

关键词

process.name.text

process.name 的多字段。

仅匹配文本

process.parent.pid

进程 ID。

长整型

process.pid

进程 ID。

长整型

process.working_directory

进程的工作目录。

关键词

process.working_directory.text

process.working_directory 的多字段。

仅匹配文本

service.type

收集服务数据的服务类型。该类型可用于对来自一种服务类型的日志和指标进行分组和关联。示例:如果从 Elasticsearch 收集日志或指标,则 service.type 将为 elasticsearch

关键词

source.address

某些事件源地址的定义不明确。事件有时会列出 IP、域或 Unix 套接字。您应始终将原始地址存储在 .address 字段中。然后,应将其复制到 .ip.domain,具体取决于它是哪一个。

关键词

source.as.number

分配给自治系统的唯一编号。自治系统号 (ASN) 唯一标识 Internet 上的每个网络。

长整型

source.as.organization.name

组织名称。

关键词

source.as.organization.name.text

source.as.organization.name 的多字段。

仅匹配文本

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.effective.name 的多字段。

仅匹配文本

user.group.id

系统/平台上组的唯一标识符。

关键词

user.id

用户的唯一标识符。

关键词

user.name

用户的简称或登录名。

关键词

user.name.text

user.name 的多字段。

仅匹配文本

user.target.group.id

系统/平台上组的唯一标识符。

关键词

user.target.group.name

组的名称。

关键词

user.target.id

用户的唯一标识符。

关键词

user.target.name

用户的简称或登录名。

关键词

user.target.name.text

user.target.name 的多字段。

仅匹配文本

变更日志

编辑
变更日志
版本 详细信息 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

增强 (查看拉取请求)
ECS 版本更新至 8.11.0。

8.7.1 或更高版本

1.13.0

增强 (查看拉取请求)
ECS 版本更新至 8.10.0。

8.7.1 或更高版本

1.12.0

增强 (查看拉取请求)
程序包清单中的 format_version 从 2.11.0 更改为 3.0.0。从程序包清单中删除了点状 YAML 键。将 owner.type: elastic 添加到程序包清单中。

8.7.1 或更高版本

1.11.0

增强 (查看拉取请求)
添加 tags.yml 文件,以便将集成的仪表板和已保存的搜索标记为“安全解决方案”,并在安全解决方案 UI 中显示。

8.7.1 或更高版本

1.10.1

Bug 修复 (查看拉取请求)
排除定期更新的文件。

8.7.1 或更高版本

1.10.0

增强 (查看拉取请求)
添加了用于 FIM 事件概述的仪表板。

8.7.1 或更高版本

1.9.0

增强 (查看拉取请求)
将程序包更新到 ECS 8.9.0。

8.2.0 或更高版本

1.8.0

增强 (查看拉取请求)
确保为管道错误正确设置了 event.kind。

8.2.0 或更高版本

1.7.0

增强 (查看拉取请求)
将程序包更新到 ECS 8.8.0。

8.2.0 或更高版本

1.6.0

增强 (查看拉取请求)
将 package-spec 版本更新到 2.7.0。

8.2.0 或更高版本

1.5.0

增强 (查看拉取请求)
将程序包更新到 ECS 8.7.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

增强 (查看拉取请求)
将程序包更新到 ECS 8.6.0。

8.2.0 或更高版本

1.3.0

增强 (查看拉取请求)
将程序包更新到 ECS 8.5.0。

8.2.0 或更高版本

1.2.3

Bug 修复 (查看拉取请求)
修复路径配置文档。

8.2.0 或更高版本

1.2.2

Bug 修复 (查看拉取请求)
删除重复字段。

8.2.0 或更高版本

1.2.1

增强 (查看拉取请求)
使用 ECS geo.location 定义。

8.2.0 或更高版本

1.2.0

增强 (查看拉取请求)
将程序包更新到 ECS 8.4.0

8.2.0 或更高版本

1.1.0

增强 (查看拉取请求)
将程序包更新到 ECS 8.3.0。

8.2.0 或更高版本

1.0.0

增强 (查看拉取请求)
使 GA 并与 8.2 兼容

8.2.0 或更高版本

0.1.0

增强 (查看拉取请求)
初始版本