TheHome1ander/HoneyNet---Threat-Intelligence-Dashboard
GitHub: TheHome1ander/HoneyNet---Threat-Intelligence-Dashboard
一个基于FastAPI的实时威胁情报仪表板,用于捕获和分析全球范围内的恶意流量。
Stars: 0 | Forks: 0
# HoneyNet - API Honeypot & Threat Intelligence Dashboard

这是一个我为了学习异步 Python、WebSockets 和威胁情报而构建的个人项目。它是一个完全异步的 Python Honeypot,可以捕获攻击者的活动,通过 GeoIP 查询丰富数据,将其保存到 SQLite 数据库中,并实时将其流式传输到深色主题仪表板。
我将这个项目分阶段构建,作为一个作品集,以获得使用 FastAPI、SQLAlchemy 和前端开发(不使用框架)的实践经验。
### 事件详情与异常检测

## 技术栈
以下是构建此项目所使用的工具:
- **FastAPI (异步)**:选择它是因为它本地的 ASGI 支持、WebSockets 和自动生成的文档。
- **Uvicorn + uvloop**:一个处理数千个并发 WebSocket 连接的极快事件循环服务器。
- **SQLite + aiosqlite**:我希望实现零配置的持久性,但使用异步 I/O 以防止阻塞事件循环。
- **SQLAlchemy 2.x**:用于类型化模型和异步数据库会话。
- **httpx (异步)**:用于使用共享连接池进行 GeoIP 查询。
- **纯 HTML/CSS/JS**:我决定跳过像 React 这样的前端框架,以保持完全的控制和轻量级。
- **Nginx**:用作 TLS 终止、WebSocket 升级和静态缓存的反向代理。
- **systemd**:用于在 Linux 服务器上保持服务运行,具有自动重启和日志记录。
## 项目结构
以下是如何组织代码的快速查看:
```
honeypot/
├── app/
│ ├── main.py # FastAPI app, lifespan, middleware, routers
│ ├── config.py # Settings singleton
│ ├── database.py # Async SQLAlchemy engine
│ ├── engine/ # Threat detection logic (signatures, behavioral)
│ ├── middleware/ # ASGI body-replay middleware
│ ├── models/ # SQLAlchemy ORM models
│ ├── routers/ # API endpoints and WebSocket routes
│ └── services/ # GeoIP, event storage, connection management
├── static/ # Vanilla HTML, CSS, JS dashboard
├── nginx/ # Nginx reverse proxy configuration
├── deploy.sh # EC2 Ubuntu setup script
├── requirements.txt # Python dependencies
└── scripts/ # Machine learning training scripts
```
## 构建方法
我将这个项目分为几个不同的阶段,以保持其可管理性。
### 阶段 1:核心设置
我开始设置基本的 FastAPI 服务器,配置异步数据库引擎,并添加健康检查。正确管理异步生命周期是一个有趣的挑战。
### 阶段 2:威胁引擎与欺骗路由
接下来,我添加了实际的 Honeypot 端点。我创建了像 `/wp-admin`、`/.env` 和 `/api/v1/users` 这样的假路由,向攻击者返回看起来逼真的模拟数据。我还编写了一个 ASGI 中间件,它拦截每个请求并将其通过签名扫描器和行为速率限制器传递,以分配威胁级别。
### 阶段 3:数据持久性与丰富
一旦我开始捕获攻击,我需要存储它们。我连接了一个异步 GeoIP 服务来找出攻击来自哪里,并编写了 ORM 模型将所有内容保存到 SQLite。
### 阶段 4:实时 WebSockets
为了使其看起来更有活力,我添加了一个 WebSocket 连接管理器。现在,每当攻击被保存到数据库中时,它就会立即广播到任何打开的仪表板标签页。
### 阶段 5:仪表板与生产部署
最后,我使用纯 CSS 和 JavaScript 构建了一个自定义深色主题仪表板来可视化攻击。然后,我使用 Nginx 和 systemd 将整个堆栈部署到 AWS EC2 实例。
### 阶段 6:机器学习异常检测
为了捕获静态正则表达式签名可能错过的零日攻击,我添加了一个无监督的机器学习层。我编写了一个使用 pandas 和 scikit-learn 的独立脚本,用于在历史流量上训练 Isolation Forest 模型,并将其连接到实时 FastAPI 中间件,以实时对传入请求进行评分。
## 本地运行
如果您想自己启动它:
```
# 创建虚拟环境
python3 -m venv venv && source venv/bin/activate
# 安装依赖项
pip install -r requirements.txt
# 启动服务器
python -m app.main
# 打开仪表板
open http://localhost:8000
# 在另一个终端中发起一些测试攻击以观察其亮起!
for route in /.env /wp-admin /admin /phpinfo.php; do
curl -s http://localhost:8000$route -o /dev/null
done
```
标签:多模态安全, 逆向工具