Aravind-Arige/Threat-Intelligence-Platform-TIP-

GitHub: Aravind-Arige/Threat-Intelligence-Platform-TIP-

面向金融和银行环境的自动化威胁情报平台,实现从多源 OSINT 采集、CVSS 风险评分、SIEM 可视化到动态防火墙封禁的完整链路。

Stars: 0 | Forks: 0

# 🛡️ 威胁情报平台 (TIP) 面向金融和银行环境的生产级网络安全平台。 自动从多个 OSINT 来源收集威胁情报,使用 CVSS 对齐的风险引擎对指标进行评分,强制执行动态防火墙规则,并在 Kibana SIEM 仪表板中可视化所有内容。 ## 📁 项目结构 ``` threat-intelligence-platform/ ├── config/ │ ├── config.yaml # Central configuration — add your API keys here │ └── mongo-init.js # MongoDB collection and index initialization ├── week1_osint/ │ ├── feed_collector.py # OSINT collectors: AlienVault OTX, AbuseIPDB, URLhaus │ └── db_handler.py # MongoDB interface with deduplication and audit logging ├── week2_siem/ │ ├── normalizer.py # Risk scoring engine (0–10, CVSS v3 aligned) │ └── elk_pusher.py # MongoDB → Elasticsearch sync for Kibana ├── week3_enforcer/ │ ├── rule_engine.py # iptables rule engine with whitelist and dry-run support │ └── policy_daemon.py # Continuous enforcement daemon with signal handling ├── week4_dashboard/ │ ├── rollback_manager.py # CLI: list / unblock / reblock / flush / history │ ├── alert_manager.py # Email + Slack alerting with daily summaries │ └── kibana_dashboard.json # Import-ready Kibana 8.x dashboard ├── tests/ │ └── test_all.py # 27 unit tests across all 4 weeks (all passing) ├── docs/ │ └── API_SETUP.md # Free API registration guide ├── docker-compose.yml # MongoDB + Elasticsearch + Kibana stack ├── requirements.txt # Python dependencies └── README.md ``` ## ⚡ 快速开始 ### 前置条件 - Ubuntu / Kali Linux - Docker + Docker Compose - Python 3.10+ - 最低 4GB RAM(用于 Elasticsearch) ### 步骤 1 — 修复 Elasticsearch 的系统内存 这需要在启动 Docker 之前运行。执行一次即可: ``` sudo sysctl -w vm.max_map_count=262144 echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf ``` ### 步骤 2 — 克隆并配置 ``` git clone https://github.com/Aravind-Arige/Project1.git cd Project1 ``` 将您的免费 API 密钥添加到 `config/config.yaml`: ``` nano config/config.yaml ``` 填写以下 API 密钥(完整的注册说明见 `docs/API_SETUP.md`): | API | config.yaml 中的密钥字段 | 获取地址 | 必需 | |-----|--------------------------|-----------------|----------| | AlienVault OTX | `apis.alienvault_otx.api_key` | https://otx.alienvault.com | ✅ 是 | | AbuseIPDB | `apis.abuseipdb.api_key` | https://www.abuseipdb.com/api | ✅ 是 | | VirusTotal | `apis.virustotal.api_key` | https://www.virustotal.com | ⚪ 可选 | | URLhaus | 无需密钥 | https://urlhaus.abuse.ch | ⚪ 免费/无需密钥 | ### 步骤 3 — 安装 Python 依赖 ``` # 创建并激活虚拟环境 python3 -m venv venv source venv/bin/activate # 安装所有必需的包 pip3 install requests pymongo "elasticsearch==8.11.0" pyyaml aiohttp beautifulsoup4 python-dateutil validators schedule APScheduler colorlog pytest --break-system-packages ``` ### 步骤 4 — 启动基础设施 ``` docker-compose up -d ``` 等待约 60 秒,然后验证所有容器是否健康: ``` docker ps ``` 三个容器(`tip_mongodb`、`tip_elasticsearch`、`tip_kibana`)都应该显示 **healthy**。 ### 步骤 5 — 运行管道 **重要提示:请始终从项目根目录运行所有命令。** ``` # 第1周 — 从OSINT源收集威胁指标(约2-3分钟) python3 week1_osint/feed_collector.py # 第2周 — 规范化并对所有指标进行风险评分 python3 week2_siem/normalizer.py # 第2周 — 将数据推送到Elasticsearch以供Kibana使用 python3 week2_siem/elk_pusher.py # 第3周 — 启动策略执行守护进程(按Ctrl+C停止) python3 week3_enforcer/policy_daemon.py # 第4周 — 列出所有被阻止的IP python3 week4_dashboard/rollback_manager.py list # 第4周 — 解除阻止特定IP(示例) python3 week4_dashboard/rollback_manager.py unblock 105.247.69.196 --actor "SOC_Analyst" # 第4周 — 查看完整审计历史 python3 week4_dashboard/rollback_manager.py history ``` ### 步骤 6 — 打开 Kibana 访问:**http://localhost:5601** 1. 点击 ☰ → **Discover** → **Create data view** 2. 名称:`TIP Threats` | 索引模式:`tip-threats` | 时间戳:`@timestamp` 3. 点击 **Save data view to Kibana** 4. 搜索 `severity: HIGH` 查看高风险指标 5. 如果没有结果,将时间范围更改为 **Last 7 days** ## 🧪 运行测试 ``` pytest tests/test_all.py -v ``` 预期输出:**27 passed, 19 subtests passed** ## 🔧 快速参考 | 命令 | 描述 | |---------|-------------| | `docker-compose up -d` | 启动 MongoDB + Elasticsearch + Kibana | | `docker-compose down` | 停止容器(数据保留) | | `docker-compose down -v` | 停止容器并删除所有数据 | | `python3 week1_osint/feed_collector.py` | 收集威胁指标 | | `python3 week2_siem/normalizer.py` | 规范化并风险评分指标 | | `python3 week2_siem/elk_pusher.py` | 同步数据到 Elasticsearch/Kibana | | `sudo python3 week3_enforcer/policy_daemon.py` | 启动防火墙强制执行守护进程 | | `python3 week4_dashboard/rollback_manager.py list` | 列出所有被阻止的 IP | | `python3 week4_dashboard/rollback_manager.py unblock 105.247.69.196 --actor "SOC_Analyst"` | 解封特定 IP | | `python3 week4_dashboard/rollback_manager.py history` | 查看完整审计历史 | | `python3 week4_dashboard/rollback_manager.py reblock --actor "Name"` | 重新封禁 IP | | `python3 week4_dashboard/rollback_manager.py flush --actor "Name" --confirm` | 紧急解封所有 IP | | `pytest tests/test_all.py -v` | 运行所有单元测试 | ## 🏗️ 架构 ``` [AlienVault OTX] ──┐ [AbuseIPDB] ──┼──► [feed_collector.py] ──► [MongoDB] [URLhaus] ──┤ │ [VirusTotal] ──┘ [normalizer.py] │ [elk_pusher.py] ──► [Elasticsearch] ──► [Kibana :5601] │ [policy_daemon.py] ──► [iptables firewall rules] │ [rollback_manager.py] + [alert_manager.py] ``` ## 📊 预期结果 | 指标 | 值 | |--------|-------| | 收集的指标 | ~7,500–8,500 | | HIGH 严重性 IP | ~500 | | 通过的单元测试 | 27/27 | | Kibana 仪表板 | http://localhost:5601 | ## 🔒 安全说明 - 策略守护进程默认以 `dry_run: true` 模式运行 — 记录将被阻止的内容,但不应用实际的 iptables 规则 - 要启用实时阻止,请在 `config/config.yaml` 中设置 `dry_run: false` 并使用 `sudo` 运行 - 所有阻止和解封操作都记录在 PCI-DSS 合规的审计日志中 - 私有 IP 范围(`10.x.x.x`、`192.168.x.x`、`172.16.x.x`、`127.x.x.x`)始终被列入白名单 ## 📄 许可证 MIT 许可证 — 可免费用于教育和商业用途。
标签:AbuseIPDB, APT, Cloudflare, CVSS, Docker, Elasticsearch, ESC4, HTTP工具, IOC, iptables, masscan, MITRE ATT&CK, MongoDB, nuclei, OSINT, Python, Slack, TIP, URLhaus, 代理支持, 僵尸网络, 告警, 命令控制, 回滚管理, 威胁情报共享, 威胁情报平台, 威胁指标, 子域名变形, 安全运营, 安全防御评估, 密码管理, 恶意IP, 恶意URL, 恶意软件, 扫描框架, 数据采集, 无后门, 无线安全, 版权保护, 策略引擎, 网络安全, 网络安全挑战, 网络调试, 自动化, 请求拦截, 越狱测试, 逆向工具, 邮件告警, 金融安全, 银行安全, 防火墙, 隐私保护, 风险评分