Snort 集成

编辑

版本

1.15.1 (查看全部)

兼容的 Kibana 版本

7.16.0 或更高版本
8.0.0 或更高版本

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

安全
可观测性

订阅级别
这是什么?

基本

支持级别
这是什么?

Elastic

此集成适用于 Snort

兼容性

编辑

此模块是针对 Snort v2.9 和 v3 开发的,但预计可与其他版本的 Snort 一起使用。此软件包旨在读取 PFsense CSV 输出、通过读取本地日志文件或通过 syslog 接收消息的 Alert Fast 输出以及 Snort 3 JSON 日志文件。

日志

编辑
示例

log 的示例事件如下

{
    "@timestamp": "2022-09-05T16:02:55.000-05:00",
    "agent": {
        "ephemeral_id": "3ada3cc1-9563-4aa5-880e-585d87fc6adf",
        "id": "ca0beb8d-9522-4450-8af7-3cb7f3d8c478",
        "name": "docker-fleet-agent",
        "type": "filebeat",
        "version": "8.2.0"
    },
    "data_stream": {
        "dataset": "snort.log",
        "namespace": "ep",
        "type": "logs"
    },
    "destination": {
        "address": "175.16.199.1",
        "geo": {
            "city_name": "Changchun",
            "continent_name": "Asia",
            "country_iso_code": "CN",
            "country_name": "China",
            "location": {
                "lat": 43.88,
                "lon": 125.3228
            },
            "region_iso_code": "CN-22",
            "region_name": "Jilin Sheng"
        },
        "ip": "175.16.199.1"
    },
    "ecs": {
        "version": "8.11.0"
    },
    "elastic_agent": {
        "id": "ca0beb8d-9522-4450-8af7-3cb7f3d8c478",
        "snapshot": false,
        "version": "8.2.0"
    },
    "event": {
        "agent_id_status": "verified",
        "category": [
            "network"
        ],
        "created": "2022-09-05T16:02:55.000-05:00",
        "dataset": "snort.log",
        "ingested": "2022-05-09T16:00:09Z",
        "kind": "alert",
        "original": "Sep  5 16:02:55 dev snort: [1:1000015:0] Pinging... [Classification: Misc activity] [Priority: 3] {ICMP} 10.50.10.88 -> 175.16.199.1",
        "severity": 3,
        "timezone": "-05:00"
    },
    "input": {
        "type": "udp"
    },
    "log": {
        "source": {
            "address": "172.18.0.4:54924"
        }
    },
    "network": {
        "community_id": "1:AwywM3uuS+luH6U/hUKtj2x2LWU=",
        "direction": "outbound",
        "transport": "icmp",
        "type": "ipv4"
    },
    "observer": {
        "name": "dev",
        "product": "ids",
        "type": "ids",
        "vendor": "snort"
    },
    "process": {
        "name": "snort"
    },
    "related": {
        "ip": [
            "10.50.10.88",
            "175.16.199.1"
        ]
    },
    "rule": {
        "category": "Misc activity",
        "description": "Pinging...",
        "id": "1000015",
        "version": "0"
    },
    "snort": {
        "gid": 1
    },
    "source": {
        "address": "10.50.10.88",
        "ip": "10.50.10.88"
    },
    "tags": [
        "preserve_original_event",
        "forwarded",
        "snort.log"
    ]
}
导出的字段
字段 描述 类型

@timestamp

事件发生时的日期/时间。这是从事件中提取的日期/时间,通常表示事件由源生成的时间。如果事件源没有原始时间戳,则此值通常由管道首次接收到事件的时间填充。所有事件的必填字段。

date

cloud.account.id

用于在多租户环境中标识不同实体的云帐户或组织 ID。示例:AWS 帐户 ID、Google Cloud ORG ID 或其他唯一标识符。

keyword

cloud.availability_zone

此主机运行所在的可用区。

keyword

cloud.image.id

云实例的映像 ID。

keyword

cloud.instance.id

主机机器的实例 ID。

keyword

cloud.instance.name

主机机器的实例名称。

keyword

cloud.machine.type

主机机器的机器类型。

keyword

cloud.project.id

Google Cloud 中项目的名称。

keyword

cloud.provider

云提供商的名称。示例值有 aws、azure、gcp 或 digitalocean。

keyword

cloud.region

此主机运行所在的区域。

keyword

container.id

唯一的容器 ID。

keyword

container.image.name

容器构建所基于的映像名称。

keyword

container.labels

映像标签。

object

container.name

容器名称。

keyword

data_stream.dataset

数据流数据集。

constant_keyword

data_stream.namespace

数据流命名空间。

constant_keyword

data_stream.type

数据流类型。

constant_keyword

destination.address

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

keyword

destination.as.number

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

long

destination.as.organization.name

组织名称。

keyword

destination.as.organization.name.text

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

match_only_text

destination.bytes

从目标发送到源的字节数。

long

destination.domain

目标系统的域名。此值可以是主机名、完全限定的域名或其他主机命名格式。该值可能来自原始事件,也可能是从丰富化添加的。

keyword

destination.geo.city_name

城市名称。

keyword

destination.geo.continent_name

大洲名称。

keyword

destination.geo.country_iso_code

国家/地区 ISO 代码。

keyword

destination.geo.country_name

国家/地区名称。

keyword

destination.geo.location

经度和纬度。

geo_point

destination.geo.region_iso_code

区域 ISO 代码。

keyword

destination.geo.region_name

区域名称。

keyword

destination.ip

目标 IP 地址(IPv4 或 IPv6)。

ip

destination.mac

目标的 MAC 地址。建议使用 RFC 7042 中的表示法格式:每个八位字节(即 8 位字节)由两个 [大写] 十六进制数字表示,这两个数字给出了该八位字节的值作为无符号整数。连续的八位字节之间用连字符分隔。

keyword

destination.packets

从目标发送到源的数据包数。

long

destination.port

目标的端口。

long

ecs.version

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

keyword

event.category

这是四个 ECS 分类字段之一,指示 ECS 类别层次结构中的第二级。event.category 表示 ECS 类别的“大桶”。例如,筛选 event.category:process 将产生与进程活动相关的所有事件。此字段与用作子类别的 event.type 密切相关。此字段是一个数组。这将允许对属于多个类别的某些事件进行适当的分类。

keyword

event.created

event.created 包含代理或管道首次读取事件时的日期/时间。此字段与 @timestamp 不同,因为 @timestamp 通常包含从原始事件中提取的时间。在大多数情况下,这两个时间戳会略有不同。可以使用此差异来计算源生成事件的时间与代理首次处理事件的时间之间的延迟。这可用于监视代理或管道跟上事件源的能力。如果两个时间戳相同,则应使用 @timestamp

date

event.dataset

事件数据集

constant_keyword

event.kind

这是四个 ECS 分类字段之一,指示 ECS 类别层次结构中的最高级别。event.kind 提供有关事件包含的信息类型的高级信息,而不具体说明事件的内容。例如,此字段的值将警报事件与度量事件区分开来。此字段的值可用于告知应如何处理此类事件。它们可能需要不同的保留期、不同的访问控制,它还可以帮助了解数据是否以固定间隔传入。

keyword

event.module

事件模块

constant_keyword

event.original

整个事件的原始文本消息。用于演示日志完整性,或者在可能需要完整日志消息(在将其拆分为多个部分之前)的情况下,例如,对于重新索引。此字段未编制索引,且禁用了 doc_values。它无法搜索,但可以从 _source 中检索。如果用户希望覆盖此字段并为其编制索引,请参阅 Elasticsearch 参考中的 字段数据类型

keyword

event.outcome

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

keyword

event.severity

根据事件源,事件的数字严重性。不同严重性值的含义在不同源和用例之间可能有所不同。由实施者确保来自同一来源的事件的严重性保持一致。log.syslog.severity.code 中包含 Syslog 严重性。 event.severity 旨在表示根据事件源(例如,防火墙、IDS)的严重性。如果事件源未发布自己的严重性,您可以选择将 log.syslog.severity.code 复制到 event.severity

long

event.timezone

当事件的时间戳不包含时区信息时(例如,默认的 Syslog 时间戳),应填充此字段。否则,它是可选的。可接受的时区格式为:规范 ID(例如,“Europe/Amsterdam”)、缩写(例如,“EST”)或 HH:mm 差值(例如,“-05:00”)。

keyword

event.type

这是四个 ECS 分类字段之一,指示 ECS 类别层次结构中的第三级。event.type 表示一个分类“子桶”,当与 event.category 字段值一起使用时,可以将事件筛选到适合单个可视化的级别。此字段是一个数组。这将允许对属于多个事件类型的某些事件进行适当的分类。

keyword

host.architecture

操作系统架构。

keyword

host.containerized

如果主机是容器。

boolean

host.domain

主机所属的域的名称。例如,在 Windows 上,这可能是主机的 Active Directory 域或 NetBIOS 域名。对于 Linux,这可能是主机 LDAP 提供程序的域。

keyword

host.hostname

主机的主机名。它通常包含主机上 hostname 命令返回的内容。

keyword

host.id

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

keyword

host.ip

主机 IP 地址。

ip

host.mac

主机 MAC 地址。

keyword

host.name

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

keyword

host.os.build

操作系统构建信息。

keyword

host.os.codename

操作系统代号(如果有)。

keyword

host.os.family

操作系统系列(例如 redhat、debian、freebsd、windows)。

keyword

host.os.kernel

操作系统内核版本,原始字符串格式。

keyword

host.os.name

操作系统名称,不含版本。

keyword

host.os.name.text

host.os.name 的多字段。

text

host.os.platform

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

keyword

host.os.version

操作系统版本,原始字符串格式。

keyword

host.type

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

keyword

input.type

输入类型

keyword

log.file.path

此事件来自的日志文件的完整路径,包括文件名。它应包括驱动器盘符(如果适用)。如果事件不是从日志文件读取的,则不要填充此字段。

keyword

log.flags

日志文件的标志。

keyword

log.offset

日志偏移量

long

log.source.address

从中读取/发送日志事件的源地址。

keyword

message

对于日志事件,message 字段包含日志消息,针对在日志查看器中查看进行了优化。对于没有原始消息字段的结构化日志,可以将其他字段连接起来以形成事件的人工可读摘要。如果存在多条消息,可以将它们组合成一条消息。

match_only_text

network.bytes

两个方向传输的总字节数。如果已知 source.bytesdestination.bytes,则 network.bytes 是它们的总和。

long

network.community_id

通信中使用的源和目标 IP 和端口以及协议的哈希值。这是一个与工具无关的用于识别流的标准。有关详细信息,请访问 https://github.com/corelight/community-id-spec

keyword

network.direction

网络流量的方向。当从基于主机的监视上下文中映射事件时,请从主机的角度填充此字段,使用值“ingress”或“egress”。当从基于网络或外围的监视上下文中映射事件时,请从网络外围的角度填充此字段,使用值“inbound”、“outbound”、“internal”或“external”。请注意,“internal”不跨越外围边界,旨在描述外围内两台主机之间的通信。另请注意,“external”旨在描述两个位于外围之外的主机之间的流量。例如,这对于 ISP 或 VPN 服务提供商可能很有用。

keyword

network.iana_number

IANA 协议号(https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml)。协议的标准化列表。这与使用 IANA 协议号的 NetFlow 和 sFlow 相关日志非常一致。

keyword

network.packets

两个方向传输的总数据包数。如果已知 source.packetsdestination.packets,则 network.packets 是它们的总和。

long

network.protocol

在 OSI 模型中,这将是应用层协议。例如,httpdnsssh。为了方便查询,字段值必须规范化为小写。

keyword

network.transport

与 network.iana_number 相同,但使用传输层的关键字名称(udp、tcp、ipv6-icmp 等)。为了方便查询,字段值必须规范化为小写。

keyword

network.type

在 OSI 模型中,这将是网络层。ipv4、ipv6、ipsec、pim 等。为了方便查询,字段值必须规范化为小写。

keyword

network.vlan.id

观察者报告的 VLAN ID。

keyword

observer.ingress.interface.name

系统报告的接口名称。

keyword

observer.ip

观察者的 IP 地址。

ip

observer.name

观察者的自定义名称。这是可以分配给观察者的名称。例如,如果组织中使用多个相同型号的防火墙,这将很有帮助。如果不需要自定义名称,则可以使该字段为空。

keyword

observer.product

观察者的产品名称。

keyword

observer.type

数据来源的观察者类型。没有预定义的观察者类型列表。一些示例是 forwarderfirewallidsipsproxypollersensorAPM server

keyword

observer.vendor

观察者的供应商名称。

keyword

process.name

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

keyword

process.name.text

process.name 的多字段。

match_only_text

process.pid

进程 ID。

long

related.ip

在您的事件中看到的所有 IP。

ip

rule.category

使用规则的实体用于检测此事件的分类值关键字。

keyword

rule.description

生成事件的规则的描述。

keyword

rule.id

在代理、观察者或其他使用该规则检测此事件的实体的范围内唯一的规则 ID。

keyword

rule.name

生成事件的规则或签名的名称。

keyword

rule.version

用于分析的规则的版本/修订。

keyword

snort.dgm.length

长度

long

snort.eth.length

以太网报头和负载的长度。

long

snort.gid

gid 关键字(生成器 ID)用于标识当特定规则触发时,Snort 的哪个部分生成了事件。dd

long

snort.icmp.code

ICMP 代码。

long

snort.icmp.id

回显请求/回复的 ID

long

snort.icmp.seq

ICMP 序列号。

long

snort.icmp.type

ICMP 类型。

long

snort.ip.flags

IP 标志。

keyword

snort.ip.id

数据包的 ID

long

snort.ip.length

IP 报头和负载的长度。

long

snort.ip.tos

IP 服务类型标识。

long

snort.ip.ttl

数据包的生存时间 (TTL)

long

snort.tcp.ack

TCP 确认号。

long

snort.tcp.flags

TCP 标志。

keyword

snort.tcp.length

TCP 报头和负载的长度。

long

snort.tcp.seq

TCP 序列号。

long

snort.tcp.window

通告的 TCP 窗口大小。

long

snort.udp.length

UDP 报头和负载的长度。

long

source.address

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

keyword

source.as.number

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

long

source.as.organization.name

组织名称。

keyword

source.as.organization.name.text

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

match_only_text

source.bytes

从源发送到目标的字节数。

long

source.geo.city_name

城市名称。

keyword

source.geo.continent_name

大洲名称。

keyword

source.geo.country_iso_code

国家/地区 ISO 代码。

keyword

source.geo.country_name

国家/地区名称。

keyword

source.geo.location

经度和纬度。

geo_point

source.geo.region_iso_code

区域 ISO 代码。

keyword

source.geo.region_name

区域名称。

keyword

source.ip

源的 IP 地址(IPv4 或 IPv6)。

ip

source.mac

源的 MAC 地址。建议使用 RFC 7042 中的表示法格式:每个八位字节(即 8 位字节)由两个 [大写] 十六进制数字表示,给出该八位字节的值作为无符号整数。连续的八位字节用连字符分隔。

keyword

source.packets

从源发送到目标的数据包数。

long

source.port

源的端口。

long

tags

用于标记每个事件的关键字列表。

keyword

更新日志

编辑
更新日志
版本 详细信息 Kibana 版本

1.15.1

Bug 修复 (查看拉取请求)
在引用提取管道中的变量时,使用三重大括号 Mustache 模板。

7.16.0 或更高版本
8.0.0 或更高版本

1.15.0

增强 (查看拉取请求)
将软件包规范更新到 3.0.3。

7.16.0 或更高版本
8.0.0 或更高版本

1.14.1

Bug 修复 (查看拉取请求)
修复 exclude_files 模式。

7.16.0 或更高版本
8.0.0 或更高版本

1.14.0

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

7.16.0 或更高版本
8.0.0 或更高版本

1.13.0

增强 (查看拉取请求)
改进 event.original 检查以避免在设置时发生错误。

7.16.0 或更高版本
8.0.0 或更高版本

1.12.0

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

7.16.0 或更高版本
8.0.0 或更高版本

1.11.0

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

7.16.0 或更高版本
8.0.0 或更高版本

1.10.0

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

7.16.0 或更高版本
8.0.0 或更高版本

1.9.0

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

7.16.0 或更高版本
8.0.0 或更高版本

1.8.0

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

7.16.0 或更高版本
8.0.0 或更高版本

1.7.0

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

7.16.0 或更高版本
8.0.0 或更高版本

1.6.0

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

7.16.0 或更高版本
8.0.0 或更高版本

1.5.0

增强 (查看拉取请求)
将软件包更新到 ECS 8.7.0。

7.16.0 或更高版本
8.0.0 或更高版本

1.4.2

增强 (查看拉取请求)
添加了类别和/或子类别。

7.16.0 或更高版本
8.0.0 或更高版本

1.4.1

缺陷修复 (查看拉取请求)
确保正确解释数值时区。

7.16.0 或更高版本
8.0.0 或更高版本

1.4.0

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

7.16.0 或更高版本
8.0.0 或更高版本

1.3.0

增强 (查看拉取请求)
udp_options 添加到 UDP 输入。

7.16.0 或更高版本
8.0.0 或更高版本

1.2.0

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

7.16.0 或更高版本
8.0.0 或更高版本

1.1.0

增强 (查看拉取请求)
添加 Snort 3 JSON 支持。

7.16.0 或更高版本
8.0.0 或更高版本

1.0.0

增强 (查看拉取请求)
正式发布

7.16.0 或更高版本
8.0.0 或更高版本

0.5.0

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

0.4.0

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

0.3.1

缺陷修复 (查看拉取请求)
按照 ECS 格式化 source.mac 和 destination.mac,并为各种 event.* 字段添加缺失的映射。

0.3.0

增强 (查看拉取请求)
更新到 ECS 8.2

0.2.2

增强 (查看拉取请求)
添加多字段的文档

0.2.1

缺陷修复 (查看拉取请求)
修复测试数据

0.2.0

增强 (查看拉取请求)
更新到 ECS 8.0

0.1.2

缺陷修复 (查看拉取请求)
使用新的 GeoIP 数据库重新生成测试文件

0.1.1

缺陷修复 (查看拉取请求)
将测试公共 IP 更改为受支持的子集

0.1.0

增强 (查看拉取请求)
添加 8.0.0 版本约束

0.0.3

增强 (查看拉取请求)
更新标题和描述。

0.0.2

缺陷修复 (查看拉取请求)
修复检查forwarded标记的逻辑

0.0.1

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