自定义威胁情报集成

编辑

自定义威胁情报集成

编辑

版本

0.4.0 [beta] 此功能为测试版,可能会发生变化。其设计和代码不如官方 GA 功能成熟,按原样提供,不提供任何保证。测试版功能不受官方 GA 功能的支持 SLA 约束。 (查看全部)

兼容的 Kibana 版本

8.14.0 或更高版本

支持的 Serverless 项目类型
这是什么?

安全
可观测性

订阅级别
这是什么?

基本

支持级别
这是什么?

Elastic

自定义威胁情报包是一种集成,旨在以 STIX 2.1 格式摄取威胁情报 IOC,并将其转换为 Elastic Common Schema (ECS),以便无缝摄取到 Elasticsearch 中。它的交付是为了摄取那些当前没有现有集成的 API 的威胁情报数据。

该集成带有一个默认管道,可自动将标准 STIX 2.1 数据映射到 ECS 字段。但是,它还提供了处理自定义 STIX 数据的灵活性,允许用户根据需要添加自定义管道。

主要功能

编辑
支持的数据源
编辑

RESTful API

  • 连接到以 STIX 2.1 格式提供威胁情报的公共或私有 RESTful API。
  • 支持用于数据检索的标准 HTTP 方法,包括 GET 和 POST。

TAXII 2.1 协议

  • 充当 TAXII 客户端连接到 TAXII 2.x 服务器,从而可以收集 STIX 格式的威胁情报源。
  • 它仅支持 TAXII 数据检索的收集模型。

日志文件

  • 摄取日志文件中提供的威胁情报指示器,用于气隙环境。
STIX 2.1 合规性
编辑

指示器根据其类型进行分类并存储以供进一步处理。目前,支持的 IOC 类型有:

  • 自治系统
  • 域名
  • 电子邮件
  • 文件
  • IPv4
  • IPv6
  • URL
  • Windows 注册表
  • x509 证书

默认管道能够摄取其他类型的指示器,尽管它们没有 100% 映射到 ECS。

配置指南
编辑

由于某些 TI 提供商缺乏标准,因此在某些用例中可能需要进行一些额外的配置。

连接到 STIX API 时,默认情况下,该集成提供了一种充当 TAXII 客户端的本机方式。因此,要从 TAXII 2.x 服务器收集数据,除了提供服务器 URL 以及在需要时提供身份验证凭据外,无需进行其他配置。

但是,对于不遵循特定通信协议的 API。正确摄取 STIX 数据需要

  • 添加满足 API 规范的 CEL 程序。特别注意 HTTP 标头、查询参数、分页和有效负载的处理。
  • 添加要提供给程序的初始状态。通常,它将包括 API URL、身份验证参数和间隔。有关更多信息,请参阅 文档

默认情况下,该集成仅支持 STIX 2.1 指示器。这意味着要处理其他格式的 IOC,必须禁用 限制 STIX 2.1 格式 选项,并添加自定义管道以正确映射指示器。

入侵指标 (IOC) 的过期
编辑

自定义威胁情报集成支持 IOC 过期。摄取的 IOC 在一定期限后过期。根据 STIX 2.1 参考,以下选项可用于确定指示器的过期时间:

  • valid_until 字段,指示此指示器不再被视为有效指示器的时间
  • revoked 字段,表示对象创建者不再认为该指示器有效。
  • 当缺少 valid_untilrevoked 时,指示器将根据 IOC 过期持续时间 配置参数设置的默认过期时间过期。有关更多详细信息,请参阅 处理孤立 IOC

字段 stix.ioc_expiration_reason 指示上述 3 种方法中哪一种是指示器过期的原因。

创建了一个 Elastic 转换,以便最终用户只能使用活动 IOC。此转换创建名为 logs-ti_custom_latest.dest_indicator-* 的目标索引,其中仅包含活动和未过期的 IOC。最新的目标索引还有一个名为 logs-ti_custom_latest.indicator 的别名。在查询活动指示器或设置指示器匹配规则时,仅使用最新的目标索引或别名,以避免来自过期 IOC 的误报。

处理孤立 IOC
编辑

某些 IOC 可能永远不会过期,并将继续保留在最新的目标索引 logs-ti_custom_latest.dest_indicator-* 中。为避免此类孤立 IOC 造成任何误报,允许用户在设置集成时配置 IOC 过期持续时间 参数。此参数会在指定的持续时间到达后删除摄入到目标索引 logs-ti_custom_latest.dest_indicator-* 的任何指示器,默认值为源的 @timestamp 字段的 90d。请注意,IOC 过期持续时间 参数仅用于在 IOC 永不过期的情况下添加故障安全默认过期。

ILM 策略
编辑

为了方便 IOC 过期,允许以数据流为后盾的源索引 .ds-logs-ti_custom.indicator-* 包含来自每个轮询间隔的重复项。向这些源索引添加 ILM 策略,使其不会导致无限制增长。这意味着这些源索引中的数据将在摄入日期 5 天 后删除。

日志参考

编辑
指示器
编辑

indicator 数据集存储已处理为 ECS 的 STIX 2.1 指示器。

示例

indicator 的示例事件如下

{
    "@timestamp": "2015-05-15T09:12:16.432Z",
    "agent": {
        "ephemeral_id": "3179505d-300c-450f-9a13-6c48e97a6453",
        "id": "f2593b61-002f-42d8-b72b-c4181b590c92",
        "name": "elastic-agent-77457",
        "type": "filebeat",
        "version": "8.14.0"
    },
    "data_stream": {
        "dataset": "ti_custom.indicator",
        "namespace": "36027",
        "type": "logs"
    },
    "ecs": {
        "version": "8.11.0"
    },
    "elastic_agent": {
        "id": "f2593b61-002f-42d8-b72b-c4181b590c92",
        "snapshot": false,
        "version": "8.14.0"
    },
    "event": {
        "agent_id_status": "verified",
        "category": [
            "threat"
        ],
        "dataset": "ti_custom.indicator",
        "ingested": "2024-10-02T10:51:17Z",
        "kind": "enrichment",
        "original": "{\"type\":\"indicator\",\"spec_version\":\"2.1\",\"pattern_type\":\"stix\",\"id\":\"indicator--745e1537-b4f3-49da-9f64-df6b1b5df190\",\"created\":\"2015-05-15T09:12:16.432Z\",\"modified\":\"2015-05-15T09:12:16.432Z\",\"name\":\"Appendix E MD5 hash '002325a0a67fded0381b5648d7fe9b8e'\",\"description\":\"Test description.\",\"pattern\":\"[file:hashes.md5 = '002325a0a67fded0381b5648d7fe9b8e']\",\"indicator_types\":[\"malicious-activity\"],\"valid_from\":\"2015-05-15T09:12:16.432678Z\"}",
        "type": [
            "indicator"
        ]
    },
    "input": {
        "type": "filestream"
    },
    "log": {
        "file": {
            "device_id": "36",
            "inode": "125",
            "path": "/tmp/service_logs/stix-indicators-ndjson.log"
        },
        "offset": 3409
    },
    "related": {
        "hash": [
            "002325a0a67fded0381b5648d7fe9b8e"
        ]
    },
    "stix": {
        "created": "2015-05-15T09:12:16.432Z",
        "id": "indicator--745e1537-b4f3-49da-9f64-df6b1b5df190",
        "indicator_types": [
            "malicious-activity"
        ],
        "ioc_expiration_date": "2015-05-20T09:12:16.432Z",
        "ioc_expiration_duration": "5d",
        "ioc_expiration_reason": "Expiration set by Elastic from the integration's parameter `IOC Expiration Duration`",
        "modified": "2015-05-15T09:12:16.432Z",
        "pattern": "[file:hashes.md5 = '002325a0a67fded0381b5648d7fe9b8e']",
        "pattern_type": "stix",
        "spec_version": "2.1",
        "type": "indicator",
        "valid_from": "2015-05-15T09:12:16.432678Z"
    },
    "tags": [
        "preserve_original_event",
        "forwarded",
        "ti_custom-indicator"
    ],
    "threat": {
        "feed": {
            "name": "STIX Provider",
            "reference": "https://stix-example.com"
        },
        "indicator": {
            "description": "Test description.",
            "file": {
                "hash": {
                    "md5": [
                        "002325a0a67fded0381b5648d7fe9b8e"
                    ]
                }
            },
            "first_seen": "2015-05-15T09:12:16.432Z",
            "last_seen": "2015-05-15T09:12:16.432Z",
            "modified_at": "2015-05-15T09:12:16.432Z",
            "name": "Appendix E MD5 hash '002325a0a67fded0381b5648d7fe9b8e'",
            "type": "file"
        }
    }
}
导出的字段
字段 描述 类型

@timestamp

事件时间戳。

日期

data_stream.dataset

数据流数据集。

constant_keyword

data_stream.namespace

数据流命名空间。

constant_keyword

data_stream.type

数据流类型。

constant_keyword

event.dataset

事件数据集

constant_keyword

event.module

事件模块

constant_keyword

input.type

输入类型

keyword

labels.is_ioc_transform_source

指示 IOC 是否在原始源数据流中,或者是否在最新的目标索引中。

constant_keyword

log.file.device_id

包含文件所在的文件系统的设备的 ID。

keyword

log.file.inode

日志文件的 inode 号。

keyword

log.file.path

日志文件的路径。

keyword

log.flags

日志文件的标志。

keyword

log.offset

日志文件中条目的偏移量。

长整型

stix.confidence

置信度属性标识创建者对其数据的正确性的置信度。置信度值必须是 0-100 范围内的数字。

整数

stix.created

STIX 指示器对象最初创建的时间

日期

stix.created_by_ref

created_by_ref 属性指定描述创建此对象的实体的标识对象的 id 属性。

keyword

stix.extensions

以字典形式指定对象的任何扩展。

扁平化

stix.external_references

external_references 属性指定外部参考列表,这些参考指向非 STIX 信息。此属性用于提供一个或多个 URL、描述或 ID,指向其他系统中的记录。

扁平化

stix.id

指示器的 ID。

keyword

stix.indicator_types

keyword

stix.ioc_expiration_date

指示器的过期日期。它可以由源事件定义,也可以由 revoked 或 valid_until 字段定义,或者由集成配置通过 ioc_expiration_duration 定义。

日期

stix.ioc_expiration_duration

为指示器配置的过期持续时间。

keyword

stix.ioc_expiration_reason

指示器过期的原因。由集成在摄取管道中定义。

keyword

stix.kill_chain_phases

描述攻击者执行的杀伤链的各个阶段。

扁平化

stix.lang

源语言。

keyword

stix.modified

上次修改的日期。

日期

stix.object_marking_refs

object_marking_refs 属性指定适用于此对象的 marking-definition 对象的 id 属性列表。

keyword

stix.pattern

指示器的检测模式。

keyword

stix.pattern_type

此指示器中使用的模式语言,始终为 "stix"。

keyword

stix.pattern_version

此指示器中使用的模式语言的版本。

keyword

stix.revoked

revoked 属性仅供支持版本控制的 STIX 对象使用,并指示是否已撤销该对象。对象创建者不再认为撤销的对象有效。撤销对象是永久性的;不得创建具有此 id 的对象的未来版本。

布尔值

stix.spec_version

用于表示此对象的 STIX 规范的版本。此属性的值必须为 2.1。

keyword

stix.type

STIX 对象的类型。

keyword

stix.valid_from

指示器被视为有效指示器的起始时间。

日期

stix.valid_until

指示器不再被视为有效指示器的时间。

日期

threat.indicator.first_seen

情报源首次报告看到此指示器的日期和时间。

日期

threat.indicator.last_seen

情报源上次报告看到此指示器的日期和时间。

日期

threat.indicator.modified_at

情报源上次修改此指示器信息的日期和时间。

日期

更新日志

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

0.4.0

增强功能 (查看拉取请求)
event.kind 设置为 "pipeline_error" 的文档添加 "preserve_original_event" 标记。

0.3.0

增强功能 (查看拉取请求)
支持 SSL 和代理设置。

增强功能 (查看拉取请求)
为 API 部分添加源名称和源参考选项。

错误修复 (查看拉取请求)
修复 CEL 程序以遵循 TAXII 2.1 规范。

0.2.0

增强功能 (查看拉取请求)
添加对基本身份验证的支持。

增强功能 (查看拉取请求)
添加指纹以避免摄取重复的指示器。

0.1.3

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

0.1.2

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

0.1.1

错误修复 (查看拉取请求)
修复 labels.is_ioc_transform_source 的值

0.1.0

增强 (查看拉取请求)
自定义威胁情报包的初始版本