anuj-gupta03/project1-threat-intelligence-platform

GitHub: anuj-gupta03/project1-threat-intelligence-platform

一个整合多源 OSINT 情报采集、风险评分、SIEM 可视化与 Linux 防火墙策略执行的威胁情报平台。

Stars: 0 | Forks: 0

# 高级威胁情报平台与动态策略执行器 这是 Infotact 网络安全项目 1 的一个安全默认实现。该平台收集公开的威胁情报,对指标进行标准化、去重并分配风险评分,将其存储在 MongoDB 中,导出到 Elasticsearch/Kibana,并可以通过专用的 Linux iptables 链来管理高风险 IP 封禁。 ## 已实现的功能 - 四个 OSINT 集成:Feodo Tracker、ThreatFox、URLhaus 以及可选的 AlienVault OTX - IP 和域名标准化、解反义化、验证以及 MongoDB 去重 - 支持交叉验证的 0-100 风险评分 - FastAPI SOC 仪表板和只读 API - 导出到 Elasticsearch 以供 Kibana 分析 - 优先试运行的策略执行 - 专用的 TIP_BLOCKLIST iptables 链 - 私有、保留及配置的 CIDR 保护 - 分析师回滚和不可变的策略操作历史记录 - 可选的 Webhook 告警 - Docker Compose 实验环境、自动化测试和 GitHub Actions CI ## 架构 ``` flowchart LR F1[Feodo Tracker] --> C[Python Collector] F2[ThreatFox] --> C F3[URLhaus] --> C F4[AlienVault OTX] --> C C --> N[Normalize and deduplicate] N --> M[(MongoDB)] M --> A[FastAPI SOC Dashboard] M --> S[Elasticsearch Sync] S --> K[Kibana] M --> P[Policy Enforcer] P --> G{Safety gates} G -->|Dry run| L[Audit log] G -->|Explicit apply on Linux| I[Dedicated iptables chain] I --> L L --> M ``` ## 快速开始 要求:带有 Compose 功能的 Docker Desktop 以及大约 2 GB 的可用内存。 1. 复制环境模板: Copy-Item .env.example .env 2. 启动 MongoDB、Elasticsearch、Kibana 和 SOC 仪表板: docker compose up -d mongo elasticsearch kibana api 3. 收集公开情报: docker compose --profile jobs run --rm collector 4. 将其导出到 Elasticsearch: docker compose --profile jobs run --rm siem-sync 5. 查看界面: - SOC 仪表板:http://127.0.0.1:8000 - API 文档:http://127.0.0.1:8000/docs - Kibana:http://127.0.0.1:5601 6. 在不更改防火墙的情况下预览策略决策: docker compose --profile jobs run --rm enforcer-dry-run Docker 执行器被特意设置为仅进行试运行。 要进行离线安全演示,请运行 `docker compose run --rm api seed-demo`。它只会插入保留的 TEST-NET 地址 203.0.113.66;策略引擎必须将其作为非全局地址拒绝。 ## AlienVault OTX 创建一个 OTX API 密钥,并将其仅放在本地 .env 文件中: ``` TIP_OTX_API_KEY=your_key_here ``` 切勿提交 .env。这三个 abuse.ch 数据源无需凭证即可工作,因此 OTX 是可选的。 ## Kibana 设置 首次 SIEM 同步后: 1. 打开 Kibana 并进入 Stack Management,然后进入 Data Views。 2. 使用 tip-indicators 创建一个名为 TIP Indicators 的 data view。 3. 将 last_seen 设置为时间字段。 4. 使用 tip-policy-actions 创建第二个名为 TIP Policy Actions 的 data view。 5. 构建 Lens 面板,以显示按严重程度划分的指标、热门来源、随时间变化的风险以及应用的封禁/回滚操作。 有关确切的面板定义,请参阅 docs/KIBANA_DASHBOARD.md。 ## 实际防火墙执行 仅限在授权的、一次性的 Linux 实验虚拟机内执行此操作。请先审查 MongoDB 候选对象和试运行输出。 执行器需要两个独立的批准: - TIP_FIREWALL_ENABLED=true - 显式的 --apply 命令标志 在 Linux 主机上的示例: ``` python3 -m venv .venv . .venv/bin/activate pip install -e . export TIP_MONGO_URI='mongodb://127.0.0.1:27017' export TIP_FIREWALL_ENABLED=true sudo -E .venv/bin/tipctl enforce --apply ``` 每 60 秒持续监控一次: ``` sudo -E .venv/bin/tipctl enforce --apply --watch --interval 60 ``` 回滚误报: ``` sudo -E .venv/bin/tipctl rollback 1.2.3.4 --apply ``` 该实现仅创建 TIP_BLOCKLIST 并将其附加到 INPUT。它绝不会清空防火墙或编辑无关的规则。 ## API - GET /health - GET /summary - GET /indicators - GET /indicators?severity=critical&type=ip - GET /policy/actions 由于这是一个孤立的实习实验室环境,因此该 API 没有身份验证。请将其绑定在 localhost。在任何共享部署之前,请添加身份验证和 TLS。 ## 风险模型 - 数据源置信度:最高 70 分 - 独立来源交叉验证:最高 20 分 - 时效性:最高 10 分 - 严重阈值:默认为 85 仅仅高分本身是不够的。防火墙模块还会拒绝私有、保留、回环、多播以及明确列入白名单的地址。 ## 开发 ``` python -m venv .venv . .venv/bin/activate pip install -e '.[dev]' pytest ruff check src tests bandit -q -r src ``` ## 项目文档 - docs/FOUR_WEEK_PLAN.md - 冲刺和 GitHub 贡献计划 - docs/THREAT_MODEL.md - 滥用案例和缓解措施 - docs/KIBANA_DASHBOARD.md - 仪表板构建 - docs/DEMO.md - 评估演示 - docs/OPERATIONS.md - 收集、执行、回滚和恢复 ## 重要评估说明 # 实习规范要求在四周内都要有可见的 GitHub 提交。请勿在一次最终提交中上传整个项目。请遵循 docs/FOUR_WEEK_PLAN.md 中的分支和提交时间表。 # project1-threat-intelligence-platform
标签:AV绕过, Elasticsearch, FastAPI, MongoDB, 威胁情报, 安全运营, 开发者工具, 扫描框架, 版权保护, 网络信息收集, 自动化防御, 越狱测试, 逆向工具