PadanFain/edl_manager

GitHub: PadanFain/edl_manager

EDL Manager 是运行在 Splunk 上的 IOC 生命周期管理应用,解决外部动态列表在生产环境中的自动过期、馈送生成与审计难题。

Stars: 0 | Forks: 0

# EDL Manager — Splunk 应用 **外部动态列表(EDL)管理器** 是一个生产级的 Splunk 应用,提供 完整的 IOC 生命周期管理 UI、策略驱动的过期控制、防火墙就绪的 EDL Feed API、STIX/TAXII 2.1 摄入、CSV 批量导入、地理攻击映射、活动聚类, 以及完整的审计追踪。 适用于 **Splunk Enterprise 9.0+** 和 **Splunk Cloud**。 ## 快速开始 ``` # 将应用程序复制到 Splunk cp -r edl_manager/ $SPLUNK_HOME/etc/apps/ # 重启 Splunk $SPLUNK_HOME/bin/splunk restart # 构建 React UI(需要 Node 18+) cd $SPLUNK_HOME/etc/apps/edl_manager/appserver/static/js npm install && npm run build # 打开应用程序 # https://localhost:8000/en-US/app/edl_manager/edl_manager ``` ## 架构 ``` TAXII 2.1 feeds ─┐ CSV bulk import ─┤ Manual UI entry ─┤─→ ioc_entries (KV Store) ─→ edl_active_export.csv SPL macros ─┘ ↓ Firewall EDL feed (plain text, one IOC/line) ``` **存储**:KV Store 用于 CRUD操作,物化 CSV 用于防火墙读取(避免每次轮询的 REST 开销)。计划搜索每 5 分钟刷新一次 CSV。 ## 功能 - **IOC 生命周期** — 创建、过期、批量启用/禁用(策略驱动的 TTL) - **防火墙 Feed** — ETag/304 缓存、EDLToken 认证、速率限制、优先级规则 - **TAXII 2.1** — STIX 2.1 模式解析器、基于游标的增量轮询 - **冲突检测** — 相同值的阻断/允许冲突,可配置解析策略 - **批量导入** — 带列别名检测的 CSV、每行验证、去重 - **攻击地图** — 使用 D3 的地球仪展示 IOC 命中地理弧线 - **活动聚类** — /24 子网和国家分组、置信度评分 - **审计日志** — 所有创建/更新/删除事件的不可变追踪 - **令牌管理** — 用于防火墙服务账户的长生命周期 EDLToken API 令牌 ## 防火墙集成 **企业版:** ``` GET /servicesNS/nobody/edl_manager/edl_manager/feed?format=text&type=ip&list_type=block Authorization: EDLToken ``` **Splunk Cloud:** ``` GET /servicesNS/nobody/edl_manager/data/lookup-table-files/edl_feed_block_ip.csv Authorization: Splunk ``` ## 要求 | 组件 | 版本 | |-------|-------| | Splunk Enterprise | 9.0+ | | Python | 3.7+(随 Splunk 9.x 捆绑) | | Node.js | 18+(仅构建时) | | npm | 9+(仅构建时) | ## 安装说明 请参阅 `local/README.md` 获取操作员配置(功能、防火墙 SourceType、TAXII 凭证加固)。 安装后,在添加 IOC 之前创建默认策略: ``` curl -k -u admin:PASS -X POST -H "Content-Type: application/json" \ -d '{"name":"default","description":"Default policy","list_type_default":"block","auto_disable_on_expiry":true}' \ "https://localhost:8089/servicesNS/nobody/edl_manager/edl_manager/policies" ``` ## 开发 ``` # 观看模式 cd appserver/static/js && npm run dev # 生产构建 npm run build ``` 要添加新的 IOC 字段:更新 `_validate_ioc()` 在 `edl_base_handler.py` 中, `fields_list` 在 `transforms.conf` 中,`validateIOCRow()` 在 `csvParser.js` 中, `IOCForm.jsx` 和 `IOCTable.jsx`。
标签:CSV批量导入, D3地理可视化, EDLToken认证, EDL管理, ETag缓存, IOC生命周期管理, KV存储, MITM代理, SEO: IOC管理, SEO: Splunk应用, SEO: TAXII, SEO: 地理攻击映射, SEO: 防火墙馈送, Splunk Cloud, Splunk Enterprise, Splunk应用, STIX, TAXII 2.1, 优先级规则, 冲突检测, 地理攻击映射, 外部动态列表, 审计日志, 技术栈: CSV, 技术栈: D3, 技术栈: JavaScript, 技术栈: KV Store, 技术栈: Node 18, 技术栈: React UI, 攻击地图, 竞选聚类, 策略驱动过期控制, 逆向工具, 防火墙EDL馈送