temmymicheal78/automated-threat-detection-framework

GitHub: temmymicheal78/automated-threat-detection-framework

这是一个基于Python的自动化威胁检测框架,用于实时检测和阻止SSH暴力破解攻击,通过多源威胁情报提高防御精确度。

Stars: 1 | Forks: 0

# 自动化威胁检测与响应框架 一个实时入侵防御框架,通过结合行为日志分析与多源威胁情报,检测SSH暴力破解攻击并在网络防火墙层自动阻止。 ## 伦敦都市大学(2025-2026)网络安全硕士论文项目## **关键指标** | 指标 | 结果 | |---|---| | **检测率** | 针对 Hydra、Medusa 和 Ncrack 的检测率达 100%(20次试验) | | **平均响应时间** | 9.8 秒 (σ = 0.6秒) | | **误报数** | 0(针对精心筛选的良性IP白名单) | | **通过单元测试数** | 110/110 | ## 架构 一个模拟企业网络的五虚拟机实验室环境: Kali 攻击机] → [网关] → [防火墙 (iptables)] → [端点] ↕ [检测器虚拟机] (通过 SSH/paramiko 连接) 检测与执行组件被刻意部署在两台独立的机器上,遵循最小权限原则。 ## 技术栈 - **语言:** Python 3.12 - **SSH:** paramiko - **HTTP:** requests - **持久化:** sqlite3 - **测试:** pytest - **防火墙:** iptables (Ubuntu 24.04) - **威胁情报:** AbuseIPDB, VirusTotal, AlienVault OTX - **地理定位:** ip-api.com - **实验室环境:** Oracle VirtualBox ## 功能 - **滑动窗口检测** (5次尝试 / 300秒,可配置) - **多源威胁情报聚合**,支持并行API查询 - **双阈值决策引擎**,生成 BLOCK / MONITOR / IGNORE 判定 - **地理信息增强** (国家、城市、ASN、ISP) - **持久化 SQLite 审计追踪**,系统重启后数据依然存在 - **威胁情报 API 不可用时的故障安全行为** - **在防火墙 FORWARD 链上实现网络层阻断** ## 流水线工作原理 1. **日志捕获** — 防火墙上的 `iptables LOG` 规则记录每个 SSH 数据包 2. **日志流传输** — 检测器通过已认证的 SSH 通道实时读取内核日志 3. **解析** — 正则表达式提取时间戳、源IP、目标端口 4. **检测** — 基于每个IP的滑动窗口(双端队列)在300秒内出现5次失败时触发警报 5. **威胁情报** — 并行查询 AbuseIPDB、VirusTotal、OTX 并进行地理定位 6. **决策** — 双阈值规则(需要行为证据和信誉证据同时满足) 7. **执行** — 通过 SSH 将 `iptables DROP` 规则推送到防火墙 8. **持久化** — 所有事件、评估结果和阻断记录均保存至 SQLite ## 项目结构 src/ ├── api_client.py # AbuseIPDB HTTP 客户端 ├── config.py # 配置加载器 ├── database.py # SQLite 持久化 ├── decision.py # 双阈值决策引擎 ├── detector.py # 滑动窗口算法 ├── firewall.py # 通过 paramiko 推送 iptables 规则 ├── log_parser.py # 基于正则表达式的日志解析 ├── main.py # CLI 协调器 ├── multi_intel.py # 并行威胁情报聚合器 ├── notifier.py # BLOCK 事件时发送邮件警报 ├── reporter.py # CSV 报告生成 └── threat_intel.py # 威胁情报数据结构 ## 设置(简要) 1. 克隆仓库 2. 安装依赖:`pip install -r requirements.txt` 3. 创建 `.env` 文件,填入您的 API 密钥: ABUSEIPDB_API_KEY=your_key_here VIRUSTOTAL_API_KEY=your_key_here OTX_API_KEY=your_key_here 4. 编辑 `config.json` 文件,指定您的防火墙地址和阈值参数 5. 运行:`python3 src/main.py --live --firewall-mode ips` ## 致谢 本项目基于以下开源库构建: - paramiko, requests, python-dateutil, pytest 威胁情报由以下平台提供: - AbuseIPDB (社区驱动的IP信誉库) - VirusTotal (多引擎聚合检测) - AlienVault 开放威胁交换 - ip-api.com (地理定位服务) ## 研究方法 本项目的架构与方法论选择参考了以下文献: - Inayat 等 (2016) — 自动化入侵响应系统 - Tounsi & Rais (2018) — 威胁情报分类 - Bryant & Saiedian (2017) — 网络层执行设计 - Bace & Mell (NIST SP 800-31) — 入侵检测系统原则 - Sommer & Paxson (2010) — 误报挑战 完整引文请参见项目论文。 ## 免责声明 本框架专为教育与防御性网络安全研究目的而构建。其开发与测试完全在一个隔离的 VirtualBox 实验室环境中进行。该工具旨在**保护网络,而非攻击网络**。用户有责任遵守相关法律法规,包括《1990年英国计算机滥用法》及《通用数据保护条例》。 ## 作者 **Temiloluwa Micheal Ogunrinde** 伦敦都市大学 · 2025–2026 网络与网络安全硕士 temmymicheal78@gmail.com ## 许可证 本项目采用 MIT 许可证 — 详情请参阅 [LICENSE](LICENSE) 文件。
标签:Python开发, SSH安全, 企业网络模拟, 单元测试, 地理定位, 威胁情报, 审计跟踪, 并行处理, 开发者工具, 故障安全, 数据库存储, 暴力破解防护, 最小权限原则, 滑动窗口算法, 网络安全, 自动化响应, 自动化威胁检测, 虚拟化环境, 逆向工具, 防火墙管理, 隐私保护