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 中的免费/开源工具构建。 ![仪表板](https://raw.githubusercontent.com/Mrutyunjayamuduli1998/elastic-siem-misp-integration/main/docs/dashboard-screenshot.png) ## 架构 ``` 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, 威胁情报, 安全运营, 安全防御评估, 开发者工具, 扫描框架, 版权保护, 网络信息收集, 请求拦截, 越狱测试