TheHome1ander/HoneyNet---Threat-Intelligence-Dashboard

GitHub: TheHome1ander/HoneyNet---Threat-Intelligence-Dashboard

一个基于FastAPI的实时威胁情报仪表板,用于捕获和分析全球范围内的恶意流量。

Stars: 0 | Forks: 0

# HoneyNet - API Honeypot & Threat Intelligence Dashboard ![仪表盘概述](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/90e75513b3225122.png) 这是一个我为了学习异步 Python、WebSockets 和威胁情报而构建的个人项目。它是一个完全异步的 Python Honeypot,可以捕获攻击者的活动,通过 GeoIP 查询丰富数据,将其保存到 SQLite 数据库中,并实时将其流式传输到深色主题仪表板。 我将这个项目分阶段构建,作为一个作品集,以获得使用 FastAPI、SQLAlchemy 和前端开发(不使用框架)的实践经验。 ### 事件详情与异常检测 ![事件详情](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/1d2cd61f65225135.png) ## 技术栈 以下是构建此项目所使用的工具: - **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 ```
标签:多模态安全, 逆向工具