vinodap-hub/honeypot-attack-logger

GitHub: vinodap-hub/honeypot-attack-logger

一个集成 TCP 蜜罐诱捕、攻击日志记录与实时可视化仪表盘的威胁情报监测平台。

Stars: 0 | Forks: 0

# HoneyWatch — 蜜罐攻击记录器 一个基于欺骗的威胁情报平台,可实时诱捕、记录并可视化针对您基础架构的恶意活动。 ![stack](https://img.shields.io/badge/React-18-22d3ee) ![stack](https://img.shields.io/badge/Supabase-Postgres-22c55e) ![stack](https://img.shields.io/badge/Python-3-3776ab) ## 功能 - **用户身份验证** — 注册、登录、登出、JWT (Supabase Auth)、密码哈希、忘记密码流程、个人资料页 - **仪表盘** — 总攻击数、今日攻击数、独立 IP 数、已封禁 IP 数、活动蜜罐数,以及时间线、攻击类型、国家、端口、协议和风险等级的图表 - **TCP 蜜罐** — Python socket 服务器监听 22、23、80、443、445、3389 端口(可配置)。记录源 IP、时间戳、端口、协议、GeoIP 数据、攻击类型、原始请求和风险等级 - **攻击日志** — 搜索、排序、筛选(国家、类型、日期、风险、端口)、分页、导出(CSV / Excel / PDF)、删除、封禁 IP - **实时功能** — 每 5 秒自动刷新、实时攻击订阅源、通知下拉菜单 - **攻击地图** — 带有地理定位攻击者标记的 Leaflet.js 世界地图;点击查看 IP、国家、时间、攻击类型 - **管理面板** — 已封禁 IP 管理、蜜罐设置(端口、状态、通知) - **安全性** — Supabase Auth、密码哈希、所有表上的 Row Level Security、输入验证、CORS ## 技术栈 | 层级 | 技术 | |------------|------------| | 前端 | React 18, Vite, TypeScript, Tailwind CSS, React Router, Chart.js, Framer Motion, Leaflet | | 后端 | Supabase (PostgreSQL 数据库 + Auth) | | 蜜罐 | Python sockets (多线程 TCP 监听器),通过 REST API 写入 Supabase | ## 项目结构 ``` . ├── src/ # React frontend │ ├── components/ # Layout, charts, stat cards, logo │ ├── context/ # Auth context (Supabase) │ ├── lib/ # Supabase client, API layer, utilities │ ├── pages/ # Dashboard, Attacks, Map, Blocked, Settings, Profile │ │ └── auth/ # Login, Register, ForgotPassword │ └── types/ # TypeScript types ├── backend/ # Python honeypot │ ├── honeypot.py # TCP honeypot listener (writes to Supabase) │ ├── requirements.txt │ └── .env.example ├── database/ │ └── schema.sql # Reference schema (tables are auto-created in Supabase) ├── docs/ # Architecture documentation └── README.md ``` ## 安装 — 分步指南 ### 步骤 1:前端 (React) 前端已配置好连接到您的 Supabase 项目。连接详细信息位于 `.env` 文件中。 ``` npm install npm run dev ``` 这将在 `http://localhost:5173` 上启动应用程序。您可以注册一个账户并立即登录 — 数据库表已经创建完毕。 ### 步骤 2:蜜罐(可选 — 用于捕获真实攻击) 蜜罐是一个独立的 Python 脚本,它监听 TCP 端口并将每个连接记录到您的 Supabase 数据库中。 ``` cd backend python -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate pip install -r requirements.txt cp .env.example .env # add your Supabase URL + service role key python honeypot.py ``` 您需要在 `backend/.env` 中提供两个值: - `SUPABASE_URL` — 您的项目 URL(与前端 `.env` 中的 `VITE_SUPABASE_URL` 相同) - `SUPABASE_SERVICE_ROLE_KEY` — service role key(在您的 Supabase 控制台的 Settings → API 下找到) ## 一切如何连接 ``` Attacker | v TCP Honeypot (Python) ──writes──> Supabase Database (PostgreSQL) ^ | React Frontend ──reads/writes──> Supabase Database + Auth ``` 1. **React 前端**直接与 **Supabase** 通信,进行身份验证(登录/注册)以及读取/写入攻击日志、已封禁 IP 和设置。 2. **Python 蜜罐**通过其 REST API 将捕获的攻击直接写入同一个 **Supabase** 数据库。 3. 前端每 5 秒自动刷新一次,因此蜜罐捕获的攻击会近实时地显示在仪表盘上。 无需 Flask 服务器或 MySQL 安装 — Supabase 负责处理数据库和身份验证。 ## 数据库表 所有表都会在 Supabase 中自动创建,并启用 Row Level Security: - **attack_logs** — id, ip_address, country, country_code, city, latitude, longitude, isp, hostname, attack_type, protocol, port, raw_data, risk_level, connection_status, os, created_at - **blocked_ips** — id, ip, reason, created_at - **settings** — id, honeypot_status, ports, notifications 用户账户由 Supabase Auth(内置的 `auth.users` 表)管理。 ## 部署 ### 前端 → Vercel 1. 将代码仓库推送到 GitHub 2. 在 [Vercel](https://vercel.com) 中导入项目 3. 构建命令:`npm run build` · 输出目录:`dist` 4. 添加环境变量:`VITE_SUPABASE_URL` 和 `VITE_SUPABASE_ANON_KEY` 5. 部署 ### 蜜罐 → Render / VPS 1. 将 `backend/honeypot.py` 作为后台 worker 部署在 [Render](https://render.com) 或任何 VPS 上 2. 设置环境变量:`SUPABASE_URL` 和 `SUPABASE_SERVICE_ROLE_KEY` 3. 启动命令:`python honeypot.py` 4. 确保部署主机的防火墙允许您监控的端口上的入站流量 ### 数据库 → Supabase(已配置) Supabase 项目已经设置完毕。表和安全策略已应用。要查看您的数据,请打开 Supabase 控制台并检查 Table Editor。 ## 蜜罐配置 从 UI 中的**设置**页面更改受监控的端口。蜜罐在启动时会读取活动端口。默认端口:`22, 23, 80, 443, 445, 3389`。 ## 安全说明 - 通过 Supabase Auth 进行用户身份验证(bcrypt 密码哈希) - 在所有数据库表上启用 Row Level Security - 只有经过身份验证的用户才能读取或写入数据 - 蜜罐使用 service role key(绕过 RLS)插入攻击日志 - 环境变量确保机密信息不包含在源代码中 ## License MIT
标签:CISA项目, Python, React, Syscalls, 威胁情报, 安全, 开发者工具, 插件系统, 无后门, 测试用例, 自动化攻击, 蜜罐, 证书利用, 超时处理, 逆向工具