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安全, 企业网络模拟, 单元测试, 地理定位, 威胁情报, 审计跟踪, 并行处理, 开发者工具, 故障安全, 数据库存储, 暴力破解防护, 最小权限原则, 滑动窗口算法, 网络安全, 自动化响应, 自动化威胁检测, 虚拟化环境, 逆向工具, 防火墙管理, 隐私保护