Mrutyunjayamuduli1998/elastic-siem-misp-integration
GitHub: Mrutyunjayamuduli1998/elastic-siem-misp-integration
将 MISP 开源威胁情报平台与 Elastic Security 集成的自托管 SIEM 管道,提供威胁指标匹配、告警调查工作流和可视化仪表板。
Stars: 0 | Forks: 0
# Elastic Security SIEM ↔ MISP 威胁情报集成
一个完整、自托管的 SIEM pipeline,将 [MISP](https://www.misp-project.org/) 威胁情报与 [Elastic Security](https://www.elastic.co/security) 集成在一起,包括自定义检测规则、告警调查工作流和仪表板——完全基于运行在 Docker 中的免费/开源工具构建。

## 架构
```
MISP (Threat Intelligence Platform)
- 1.5M+ indicators from open-source feeds
- CIRCL OSINT, Botvrij.eu, OpenPhish, URLhaus,
MalwareBazaar, Threatfox, IPsum, blocklist.de
│
▼
Elastic Agent (MISP integration, Filebeat-based)
- Polls MISP REST API on a configurable interval
- Maps MISP attributes to ECS threat.indicator.* fields
│
▼
Elasticsearch
- logs-ti_misp.threat-default
- logs-ti_misp.threat_attributes-default
│
▼
Elastic Security (Kibana)
- Threat Intelligence indicator browsing
- Detection rules (built-in + custom)
- Alerts, Timelines, Cases
- Custom Lens dashboards
```
## 包含内容
### 基础设施
- `docker-compose.yml` — Elasticsearch + Kibana 技术栈
- 用于 MISP 集成的 Elastic Agent 配置(standalone 模式)
### 检测规则
启用了四个内置的 Elastic 预置规则:
- 威胁情报 IP 地址指标匹配 (Threat Intel IP Address Indicator Match)
- 威胁情报 URL 指标匹配 (Threat Intel URL Indicator Match)
- 威胁情报哈希指标匹配 (Threat Intel Hash Indicator Match)
- 威胁情报 Windows 注册表指标匹配 (Threat Intel Windows Registry Indicator Match)
从头构建的三个自定义规则 — 参见 [`docs/detection-rules.md`](docs/detection-rules.md):
- **自定义查询** — 基于关键字的勒索软件检测
- **指标匹配(按类别过滤)** — 仅针对 payload 投递的 IOC 匹配,用于演示如何降低噪声
- **阈值** — 针对重复连接的行为检测
### 调查工作流
在 [`docs/case-study.md`](docs/case-study.md) 中记录了完整的告警 → Timeline → Case 生命周期,包括:
- 使用 Elastic 内置的调查指南进行告警筛选
- Timeline 关联性和分析师笔记
- Case 创建、状态追踪(Open → In Progress → Closed)
### 仪表板
自定义 Kibana Lens 仪表板(`MISP 威胁情报概览`)包含:
- 指标总数(KPI 指标)
- 指标类型分布(圆环图)
- 随时间变化的指标摄入趋势(折线图)
## 设置
### 前置条件
- Docker + Docker Compose
- 正在运行的 MISP 实例(参见 [misp-docker](https://github.com/MISP/misp-docker))
- WSL2 用户:有关已知的兼容性问题和修复方案(SSL 验证、Docker 网络、Kibana 服务账户 token),请参见 [`docs/wsl2-notes.md`](docs/wsl2-notes.md)
### 1. 启动 Elastic 技术栈
```
cp docker-compose.yml.example docker-compose.yml
# 编辑 docker-compose.yml:设置 ELASTICSEARCH_SERVICEACCOUNTTOKEN 和
# XPACK_ENCRYPTEDSAVEDOBJECTS_ENCRYPTIONKEY(参见 docs/setup.md)
docker compose up -d
```
### 2. 生成 Kibana 服务账户 token
```
docker exec -it elasticsearch bin/elasticsearch-service-tokens create elastic/kibana kibana-token
```
### 3. 生成 Kibana 加密密钥
```
openssl rand -hex 32
```
这是解锁检测规则管理所必需的 —— 如果没有此密钥,Kibana 会在每次重启时生成一个新密钥,导致规则管理静默失败。
### 4. 配置 MISP 集成
在 Kibana 中:**Integrations → MISP → Add MISP** — 设置:
- MISP URL(例如,针对 WSL2/Docker Desktop 环境使用 `https://host.docker.internal`)
- MISP API auth key
- SSL 验证模式:`none`(适用于本地自签名的 MISP 证书)
下载生成的 `elastic-agent.yml` 策略并运行该 agent:
```
docker run \
-v ./elastic-agent.yml:/usr/share/elastic-agent/elastic-agent.yml \
--network elastic-siem-misp-integration_elastic-net \
--name elastic-agent \
-d \
docker.elastic.co/beats/elastic-agent:8.15.0
```
### 5. 启用检测规则
加载 Elastic 的预置规则(**Rules → Add Elastic rules**),启用 4 个威胁情报指标匹配规则,然后按照 [`docs/detection-rules.md`](docs/detection-rules.md) 构建 3 个自定义规则。
## 解决的关键技术挑战
| 问题 | 解决方案 |
|---|---|
| Kibana 8.15 拒绝使用 `elastic` 超级用户进行内部写入 | 通过 `elasticsearch-service-tokens` 生成了专用的服务账户 token |
| Elastic Agent → Elasticsearch 连接被拒绝 | 在容器网络内部使用了 Docker 服务名(`elasticsearch`)而不是 `localhost` |
| MISP 集成 SSL 握手失败(`x509: certificate signed by unknown authority`) | 为本地自签名的 MISP 证书设置了 `request.ssl.verification_mode: none` |
| 检测规则静默失败,无法保存/删除 | 设置了持久化的 `xpack.encryptedSavedObjects.encryptionKey` —— 否则 Kibana 会在每次容器重启时重新生成它 |
| 规则日志中出现 "missing timestamp override field `event.ingested`" 警告 | 确保所有测试/注入的文档都包含已填充的 `event.ingested` 字段 |
| 试用版许可证无法手动重新运行规则 | 使用禁用/启用开关来强制执行计划外的运行 |
## 截图
请参见 [`docs/screenshots/`](docs/screenshots/) 了解:
- 威胁情报指标浏览器(超过 8.2 万个指标)
- 带有完整 MISP 扩展信息 (JSON) 的检测规则告警
- Timeline 调查视图
- Case 生命周期(Open → In Progress → Closed)
- 自定义仪表板
## 相关项目
- [`misp-threat-intel-platform`](https://github.com/Mrutyunjayamuduli1998/misp-threat-intel-platform) — MISP 部署、feed 配置、摄入 pipeline
- [`telegram-cti-monitor`](https://github.com/Mrutyunjayamuduli1998/telegram-cti-monitor) — 实时 Telegram OSINT 监控并输入至 MISP
标签:Docker, Elastic Security, 威胁情报, 安全运营, 安全防御评估, 开发者工具, 扫描框架, 版权保护, 网络信息收集, 请求拦截, 越狱测试