自定义威胁情报集成
编辑自定义威胁情报集成
编辑自定义威胁情报包是一种集成,旨在以 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_until
和revoked
时,指示器将根据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 |
增强功能 (查看拉取请求) |
— |
0.3.0 |
增强功能 (查看拉取请求) 增强功能 (查看拉取请求) 错误修复 (查看拉取请求) |
— |
0.2.0 |
增强功能 (查看拉取请求) 增强功能 (查看拉取请求) |
— |
0.1.3 |
错误修复 (查看拉取请求) |
— |
0.1.2 |
错误修复 (查看拉取请求) |
— |
0.1.1 |
错误修复 (查看拉取请求) |
— |
0.1.0 |
增强 (查看拉取请求) |
— |