mustafacagricaliskan/EDL

GitHub: mustafacagricaliskan/EDL

企业级威胁情报聚合平台,将多源威胁指标标准化、评分后生成适配Palo Alto和Fortinet的外部动态列表。

Stars: 0 | Forks: 0

# Threat Feed Aggregator

Version 1.20.0 Python 3.13+ Flask 3.0 Docker Ready

用于外部动态列表 (EDL) 的企业级情报引擎
规范化、聚合并评分多源威胁情报,适用于 Palo Alto Networks、Fortinet 及更多平台。

## 概述 **Threat Feed Aggregator** 是一个企业级平台,旨在简化威胁情报源的管理。它从不同来源获取原始指标,对其进行标准化,计算风险评分,并生成优化列表以供安全基础设施使用。 ## 主要特性 ### 情报引擎 - **DNS 去重 V2:** 后台批量解析 —— 自动移除指向已被拦截 IP 的域名。 - **通用 EDL 构建器:** 通过 GUI 或 API 创建具有可选类型 和格式 的自定义列表。 - **认证源支持:** 支持针对高级/受限来源的 HTTP Basic Authentication。 - **CIDR 聚合:** 将连续的 IP 地址和重叠的子网合并为最优的 CIDR 块。 - **智能评分:** 基于来源置信度和情报源之间的指标重叠情况计算风险评分 (0-100)。 - **自动保留:** 细粒度的、针对每个来源的老化策略,以保持拦截列表的时效性。 - **原子化 EDL 生成:** 先写入临时文件,成功后重命名 —— 出错时防火墙永远不会收到空列表。 ### 实时仪表板 - **实时终端:** 具备智能过滤功能的操作日志。 - **动态统计:** AJAX 驱动的摘要卡片和活动历史。 - **可视化分布:** 用于威胁指标地理位置的交互式世界地图。 - **威胁分析:** 由 DataTables 支持的分页指标浏览器,具备高级过滤功能。 ### 企业级就绪 - **多因素认证 (MFA):** 基于 TOTP 的 2FA (Google/Microsoft Authenticator)。 - **高级 RBAC:** 基于角色的访问控制,支持自定义权限配置文件 (每个模块的 读/写/无 权限)。 - **LDAP/AD 集成:** 支持 Active Directory 及 组到配置文件 的映射。 - **ITAI Hub SSO:** 基于 JWT 的单点登录,用于 iframe 集成 (通过 `ITAI_MODE` 条件控制)。 - **CSRF 防护:** 所有更改状态的操作均受 CSRF token 保护。 - **安全基础设施:** 系统级代理、自定义 Root CA、SSL 证书管理。 - **多客户端 API:** 针对每个客户端的 SOAR/SIEM API 密钥,并强制执行 IP 白名单。 - **FortiDeceptor 集成:** 通过 webhook API 自动拦截/解封。 ### 调查工具 - **深度查询:** IP 调查,包括 WHOIS、地理位置 和反向 DNS (THC)。 - **内部查询:** 根据所有配置的威胁来源交叉引用指标。 ## 快速开始 ### 1. Docker 部署 (推荐) ``` git clone https://github.com/mustafacagricaliskan/EDL.git cd EDL # 配置环境 cp .env.example .env # 编辑 .env — 设置 SECRET_KEY 和 ADMIN_PASSWORD # 启动 cd threat-feed-aggregator docker-compose up -d --build ``` - **仪表板:** `https://localhost:8080` - **健康检查:** `http://localhost:8080/health` ### 2. 本地 Python 设置 ``` # System dependencies (Ubuntu/Debian) sudo apt-get install libldap2-dev libsasl2-dev libssl-dev whois # 设置环境 python -m venv venv source venv/bin/activate # Linux/macOS # .\venv\Scripts\Activate.ps1 # Windows # 安装依赖 pip install -r threat-feed-aggregator/requirements.txt # 配置 cp .env.example .env # 运行 (development) cd threat-feed-aggregator python -m threat_feed_aggregator.app ``` ### 3. 生产环境 ``` gunicorn --worker-class=gthread --workers=2 --threads=4 \ --bind 0.0.0.0:8080 --timeout 300 \ threat_feed_aggregator.app:app ``` ## 环境变量 | Variable | Required | Default | Description | |----------|----------|---------|-------------| | `SECRET_KEY` | Yes | (random) | Flask session 签名密钥。**生产环境必须设置。** | | `ADMIN_PASSWORD` | No | - | 初始管理员密码 (仅首次运行) | | `PORT` | No | 8080 | HTTP 监听端口 | | `DB_TYPE` | No | sqlite | `sqlite` 或 `postgres` | | `DB_HOST`, `DB_PORT`, `DB_NAME`, `DB_USER`, `DB_PASS` | If postgres | - | PostgreSQL 连接详情 | | `REDIS_HOST`, `REDIS_PORT` | No | - | 用于分布式会话的 Redis | | `ITAI_MODE` | No | false | 启用 ITAI Hub SSO 集成 | | `ITAI_JWT_SECRET` | If ITAI | - | 用于 SSO token 验证的 JWT 密钥 | | `FLASK_DEBUG` | No | 0 | 设置为 `1` 开启调试模式 (仅限开发环境) | ## 配置 该平台设计为**通过 GUI 配置**优先。导航至 **System Settings** 以管理: - **通用:** 时区、全局保留策略和威胁来源 - **网络:** 集中代理、自定义 DNS、SSL 绕过主机 - **认证:** LDAP 服务器集群和 AD 组映射 - **安全:** SSL 证书、MFA、API 密钥管理、系统备份 运行时配置存储在 `data/config.json` 中。 ## 架构 ``` threat_feed_aggregator/ app.py # Flask app, Blueprint registration, CSRF setup aggregator.py # Async feed aggregation engine (aiohttp + asyncio) routes/ # Flask Blueprints (dashboard, api, auth, system, tools, analysis) services/ # Business logic (DNS dedup, investigation, job tracking) repositories/ # Data access layer (indicators, users, whitelist, jobs) database/ # DB abstraction (connection pooling, schema migrations) middleware/ # ITAI Hub SSO integration templates/ # Jinja2 HTML templates static/ # CSS, JS, images ``` - **数据库:** PostgreSQL (生产环境) 或开启 WAL 模式的 SQLite (开发环境) - **会话:** Redis 支持 (如已配置) 或服务器端文件系统 - **异步核心:** `asyncio` + `aiohttp` 用于并发源获取 - **事务管理:** `db_transaction` 上下文管理器处理所有提交/回滚 —— repositories 层从不直接调用 `commit()`。 - **调度:** APScheduler 用于定期的源获取和 DNS 去重 ## API 端点 ### 公开 (无需认证) - `GET /health` — 健康检查 - `GET /api/edl/firewall/` — 供防火墙下载的 EDL 文件 - `GET /api/edl/custom/` — 按 token 获取自定义 EDL ### 需要 API 密钥 - `GET /api/edl/generic` — 具有 类型/格式/来源 过滤器的通用 EDL - `POST /api/indicators` — 添加指标 (SOAR 集成) - `DELETE /api/indicators` — 移除指标 - `POST /api/deceptor/block` — FortiDeceptor 自动拦截 webhook - `POST /api/deceptor/unblock` — FortiDeceptor 自动解封 webhook ### 需要会话 (仪表板) - `GET /api/run` — 触发完整聚合 - `GET /api/run_single/` — 触发单源获取 - `GET /api/status` — 聚合状态 - `GET /api/backup` — 系统备份 (仅限管理员) ## 许可证 本项目基于 [MIT 许可证](LICENSE) 授权。
标签:Checkov, CIDR聚合, DNS去重, Docker, EDL生成器, Flask, Fortinet, IP 地址批量处理, IP地址调查, Palo Alto, Python, RBAC, 企业级安全, 信标情报, 外部动态列表, 威胁情报, 威胁源聚合, 安全运营, 安全防御评估, 实时仪表盘, 密码管理, 开发者工具, 扫描框架, 指标标准化, 搜索引擎查询, 无后门, 测试用例, 网络安全, 计算机取证, 请求拦截, 逆向工具, 防火墙集成, 阻断列表, 隐私保护, 风险评分, 黑白名单管理