Laveshsawant/Soc-threat-intelligence-tool

GitHub: Laveshsawant/Soc-threat-intelligence-tool

这是一个基于 Python 和 Flask 的自动化威胁情报工具,帮助 SOC 分析师快速分析、分诊和响应可疑 IP 地址,提升运营效率。

Stars: 0 | Forks: 0

# ⚡ SOC 威胁情报工具 一款基于 Python 和 Flask 构建的安全运营中心自动化威胁情报与 IP 信誉分析工具。 ## 🔍 工具功能 - 利用 **VirusTotal** 和 **AbuseIPDB** 分析可疑 IP 地址 - **自动分类** 风险等级为 严重 / 高 / 中 / 低 - **自动分诊** — 无需人工干预,将告警分类为真阳性、假阳性或待复核 - **自动映射** 至 **12 种 MITRE ATT&CK 技术** - **一键阻断** Windows 防火墙中的恶意 IP - 为**严重威胁**发送包含 PDF 报告的**自动邮件告警** - **维护所有分析师决策的可审计日志** ## 🛠️ 技术栈 - Python 3.13 - Flask (Web 框架) - VirusTotal API - AbuseIPDB API - ReportLab (PDF 生成) - Windows Netsh (防火墙自动化) - Pandas (CSV 分析) ## 🚀 如何运行 1. 克隆此仓库 2. 安装依赖: pip install flask pandas requests python-dotenv reportlab 3. 创建 `.env` 文件: (VIRUSTOTAL_API_KEY=your_key_here ABUSEIPDB_API_KEY=your_key_here EMAIL_SENDER=your_gmail@gmail.com EMAIL_PASSWORD=your_app_password EMAIL_RECEIVER=your_gmail@gmail.com) 4. 以管理员身份运行:python app.py 5. 打开浏览器:`http://127.0.0.1:5000` 3.2 系统建模 ## 3.2.1 流程图 [开始] | v [用户上传 CSV 文件或手动输入 IP] | v <是否为私有地址?192.168.x.x / 10.x.x.x> | | 是 否 | | [跳过 - 记录为 [查询 VirusTotal API] 内部 IP] | v [查询 AbuseIPDB API] | v [计算风险评分] | v [分类:严重 / 高 / 中 / 低] | v [运行自动分诊算法] | v <裁决 = 高置信度真阳性?> | | 是 否 | | [自动阻断] [向分析师显示裁决] [防火墙规则] | | v | <风险 = 严重 或 高?> | | | | 是 否 | | | | [发送邮件] [不发送] | [告警] | v [显示结果及 MITRE ATT&CK 映射] | v <分析师决策> | | 真阳性 假阳性 | | [阻断 IP] [将 IP 加入白名单] | | v v [记录带时间戳的决策] | v [结束] ## 3.2.2 数据流图 外部实体: - SOC 分析师 --> 上传 CSV 或手动输入 IP - VirusTotal API --> 返回恶意引擎数量、国家 - AbuseIPDB API --> 返回滥用评分、ISP、总报告数 - Windows FW --> 通过 netsh 接收阻断/解封命令 - 邮件服务器 --> 通过 Gmail SMTP 接收告警邮件 数据存储: - CSV 日志文件 --> 输入攻击日志数据 - blocked_ips.log --> 带时间戳的已阻断 IP 记录 - false_positives.log --> 已加入白名单的 IP 记录 处理过程: P1: IP 提取 --> 解析 CSV,找出唯一的公共 IP P2: 私有 IP 过滤 --> 跳过 192.168.x.x 和 10.x.x.x P3: API 查询 --> 针对每个 IP 调用 VirusTotal + AbuseIPDB P4: 风险分类 --> 加权评分算法 P5: 自动分诊 --> 真阳性 / 假阳性 / 待复核 P6: MITRE 映射 --> 映射至 12 种 ATT&CK 技术 P7: 邮件告警 --> 为严重/高风险发送 HTML 邮件 P8: 防火墙响应 --> 执行 netsh 阻断/解封命令 P9: 审计日志 --> 将决策写入日志文件 数据流: 分析师 --> [P1] --> IP 列表 IP 列表 --> [P2] --> 仅公共 IP 公共 IP --> [P3] --> 原始威胁数据 原始数据 --> [P4] --> 风险等级 风险等级 --> [P5] --> 分诊裁决 分诊裁决 --> [P6] --> MITRE 技术 MITRE + 风险 + 分诊 --> [P7] --> 发送给分析师的邮件告警 真阳性裁决 --> [P8] --> 防火墙阻断命令 所有决策 --> [P9] --> 审计日志文件 ## 3.2.3 UML 用例图 ## 参与者 用例 描述 SOC 分析师 上传 CSV 日志文件 批量分析所有 IP SOC 分析师 检查单个 IP 手动即时查询 SOC 分析师 查看分析结果 查看风险、分诊、MITRE SOC 分析师 标记为真阳性 确认阻断操作 SOC 分析师 标记为假阳性 将安全 IP 加入白名单 SOC 分析师 查看已阻断 IP 仪表板 审查所有决策 SOC 分析师 解封 IP 移除防火墙规则 系统 (自动) 自动阻断高风险 IP 阻断高置信度的 TP IP 系统 (自动) 发送邮件告警 为严重/高风险发送通知 系统 (自动) 记录分析师决策 为所有操作添加时间戳 系统 (自动) 映射至 MITRE ATT&CK 12 种技术框架 系统 (自动) 私有 IP 检测 跳过内部地址 ## 3.3 风险分类算法 该工具使用加权评分算法对 IP 风险进行分类: ## 风险等级 标准 建议操作 严重 评分 >= 15 (高 VT 评分 + 滥用率 > 80%) 立即阻断 高 评分 8-14 (中等 VT 评分 + 50-80%) 防火墙中阻断 中 评分 3-7 (低 VT 评分 + 20-50%) 密切监控 低 评分 < 3 (检测次数极少) 记录并监控 评分权重: - 每个 VT 恶意引擎: +2 分 - 每个 VT 可疑引擎: +1 分 - 滥用评分 > 80%: +10 分 - 滥用评分 > 50%: +6 分 - 滥用评分 > 20%: +3 分 ## 3.4 自动分诊算法 自动分诊系统分配 TP 和 FP 评分: 真阳性信号(增加 TP 评分): - VT 恶意引擎 >= 10: +3 分 - VT 恶意引擎 >= 5: +1 分 - 滥用评分 >= 85%: +3 分 - 滥用评分 >= 50%: +2 分 - 总报告数 >= 100: +2 分 - 检测到恶意 ISP: +3 分 假阳性信号(增加 FP 评分): - 零 VT 检测: +3 分 - 滥用评分 < 5%: +2 分 - 零滥用报告: +2 分 - 检测到可信 ISP: +3 分 裁决规则: - TP 评分 >= 5 且 TP > FP: 真阳性 - FP 评分 >= 5 且 FP > TP: 假阳性 - 所有其他情况: 需分析师复核 置信度水平: - 评分 >= 8: 高置信度 - 评分 5-7: 中等置信度 ================================================================================ ## 📁 项目结构 soc_threat_detection/ ├── app.py # Flask Web 服务器 ├── scripts/ │ ├── ip_checker.py # VirusTotal + AbuseIPDB 集成 │ ├── email_alert.py # 邮件告警系统 │ └── report_generator.py # PDF 报告生成 ├── templates/ │ └── index.html # Web 仪表板 ├── data/ # CSV 日志文件 ├── output/ # 生成的报告和日志 └── README.md ## ✨ 功能特性 ### CSV 日志分析 上传任何网络日志 CSV 文件。工具自动提取公共 IP,跳过私有 IP,并逐一进行分析。 ### 手动 IP 查询 输入任何公共 IP,即可进行即时威胁分析,包含完整的 MITRE ATT&CK 映射和可下载的 PDF 报告。 ### 自动分诊 工具根据 VirusTotal 引擎数量、AbuseIPDB 滥用评分、ISP 信誉和总滥用报告数,自动判定真阳性或假阳性。 ### 防火墙集成 通过仪表板一键直接在 Windows 防火墙中阻断恶意 IP。可随时从仪表板解封。 ### 邮件告警 所有严重威胁自动发送包含 PDF 附件的 HTML 邮件告警给分析师。 ### 已阻断 IP 仪表板 查看所有已阻断的 IP,解封它们,并查看已加入白名单的假阳性记录及完整时间戳。 ## 🎯 MITRE ATT&CK 覆盖范围 | 技术编号 | 名称 | 战术阶段 | |-----------|------|----------| | T1110 | 暴力破解 | 凭据访问 | | T1046 | 网络服务发现 | 发现 | | T1190 | 利用面向公众的应用程序 | 初始访问 | | T1090 | 代理 | 命令与控制 | | T1071 | 应用层协议 | C2 | | T1595 | 主动扫描 | 侦察 | | T1496 | 资源劫持 | 影响 | | T1078 | 有效账户 | 防御规避 | | T1133 | 外部远程服务 | 初始访问 | | T1204 | 用户执行 | 执行 | | T1566 | 钓鱼 | 初始访问 | | T1498 | 网络拒绝服务 | 影响 | ## 👨‍💻 构建者 Lavesh Ravi Sawant — SOC 分析师
标签:API集成, Cloudflare, Flask框架, IP信誉分析, MITRE ATT&CK, PDF报告生成, Python开发, SOC自动化, Windows防火墙, 可观测性, 威胁情报, 威胁映射, 安全事件响应, 安全运营, 开发者工具, 恶意IP阻止, 扫描框架, 电子邮件警报, 网络安全, 自动分流, 逆向工具, 防火墙自动化, 隐私保护, 风险分类