h4rdxcry/CyberTrace

GitHub: h4rdxcry/CyberTrace

CyberTrace 是一个高级的攻击面情报与威胁研究平台,集成了域名调查、基础设施分析、风险评分和 AI 报告生成功能。

Stars: 0 | Forks: 0

# CYBERTRACE **高级 OSINT 与攻击面情报平台** CyberTrace 是一个可用于生产环境的网络安全平台,旨在调查域名、分析基础设施、发现子域名、检查 DNS/SSL 记录、检测技术栈、计算风险评分、生成 AI 驱动的调查报告,并随时间推移可视化攻击面。 ![技术栈](https://img.shields.io/badge/Next.js-15-black?style=flat-square&logo=next.js) ![FastAPI](https://img.shields.io/badge/FastAPI-0.115-009688?style=flat-square&logo=fastapi) ![PostgreSQL](https://img.shields.io/badge/PostgreSQL-16-336791?style=flat-square&logo=postgresql) ![Docker](https://img.shields.io/badge/Docker-Compose-2496ED?style=flat-square&logo=docker) ## 功能 | 功能 | 描述 | |---------|-------------| | **身份验证** | JWT 认证,RBAC(Admin/Analyst/Viewer),受保护的路由 | | **域名调查** | WHOIS,DNS,SSL,技术指纹识别,crt.sh 子域名 | | **风险评分** | 自定义 0-100 引擎,包含严重性级别和因子细分 | | **AI 报告** | 基于调查数据生成分析师级别的叙述性报告 | | **攻击面图谱** | 交互式 React Flow 可视化 | | **时间轴** | 随时间比较调查结果 — 子域名/DNS/SSL/技术变更 | | **仪表盘** | 统计数据,风险分布图表,最近扫描,热门域名 | | **PDF 报告** | 可下载的专业调查报告 | ## 架构 ``` ┌─────────────────────────────────────────────────────────────┐ │ Nginx (:80) │ │ Reverse Proxy + Rate Limiting │ └──────────────┬──────────────────────────────┬───────────────┘ │ │ ┌───────▼────────┐ ┌────────▼────────┐ │ Next.js 15 │ │ FastAPI │ │ Frontend │ │ Backend │ │ (:3000) │ │ (:8000) │ └────────────────┘ └────────┬────────┘ │ ┌────────▼────────┐ │ PostgreSQL 16 │ │ (:5432) │ └───────────────────┘ ``` ## 项目结构 ``` cybertrace/ ├── backend/ │ ├── app/ │ │ ├── main.py # FastAPI application │ │ ├── config.py # Settings & env vars │ │ ├── database.py # SQLAlchemy setup │ │ ├── dependencies.py # Auth dependencies │ │ ├── models/ # SQLAlchemy models │ │ ├── schemas/ # Pydantic schemas │ │ ├── routers/ # API routes │ │ ├── services/ # Business logic │ │ │ ├── whois_service.py │ │ │ ├── dns_service.py │ │ │ ├── ssl_service.py │ │ │ ├── tech_service.py │ │ │ ├── subdomain_service.py │ │ │ ├── risk_engine.py │ │ │ ├── ai_report_service.py │ │ │ ├── timeline_service.py │ │ │ ├── pdf_service.py │ │ │ └── investigation_service.py │ │ └── utils/ # Security & logging │ ├── alembic/ # Database migrations │ ├── Dockerfile │ └── requirements.txt ├── frontend/ │ ├── src/ │ │ ├── app/ # Next.js App Router pages │ │ ├── components/ # UI components │ │ ├── lib/ # API client, auth, utils │ │ └── types/ # TypeScript types │ ├── Dockerfile │ └── package.json ├── nginx/ │ └── nginx.conf ├── docker-compose.yml └── README.md ``` ## 快速开始 (Docker) ### 前置条件 - [Docker](https://docs.docker.com/get-docker/) & Docker Compose - Git ### 1. 克隆并配置 ``` git clone cd cybertrace cp .env.example .env # 编辑 .env 并设置一个强 SECRET_KEY: # openssl rand -hex 32 ``` ### 2. 启动所有服务 ``` docker compose up --build -d ``` ### 3. 执行数据库迁移 ``` docker compose exec backend alembic upgrade head ``` ### 4. 访问平台 | 服务 | URL | |---------|-----| | **应用程序 (通过 Nginx)** | http://localhost | | **前端 (直接访问)** | http://localhost:3000 | | **后端 API** | http://localhost:8000 | | **API 文档 (debug 模式)** | http://localhost:8000/api/docs | ### 5. 创建您的账户 访问 http://localhost/register 并创建一个 Analyst 账户。 ## 本地开发 ### 后端 ``` cd backend python -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate pip install -r requirements.txt cp .env.example .env # 启动 PostgreSQL(或使用 Docker) docker run -d --name cybertrace-db \ -e POSTGRES_USER=cybertrace \ -e POSTGRES_PASSWORD=cybertrace_secret \ -e POSTGRES_DB=cybertrace \ -p 5432:5432 postgres:16-alpine alembic upgrade head uvicorn app.main:app --reload --port 8000 ``` ### 前端 ``` cd frontend npm install cp .env.example .env.local # 设置 NEXT_PUBLIC_API_URL=http://localhost:8000 npm run dev ``` ## API 端点 | 方法 | 端点 | 描述 | 权限 | |--------|----------|-------------|------| | `POST` | `/api/auth/register` | 注册新用户 | 否 | | `POST` | `/api/auth/login` | 登录,获取 JWT | 否 | | `POST` | `/api/auth/logout` | 退出登录 | 是 | | `POST` | `/api/auth/forgot-password` | 请求重置密码 | 否 | | `GET` | `/api/auth/me` | 当前用户资料 | 是 | | `POST` | `/api/investigate` | 执行域名调查 | Analyst+ | | `GET` | `/api/investigation/{id}` | 获取调查详情 | 是 | | `GET` | `/api/history` | 调查历史 | 是 | | `GET` | `/api/dashboard` | 仪表盘统计数据 | 是 | | `GET` | `/api/report/{id}` | 下载 PDF 报告 | 是 | | `GET` | `/api/health` | 健康检查 | 否 | ## 数据库 Schema | 表 | 用途 | |-------|---------| | `users` | 带有 RBAC 角色的用户账户 | | `investigations` | 域名调查记录 | | `risk_scores` | 计算出的风险评估 | | `dns_records` | DNS 分析结果 | | `ssl_records` | SSL 证书数据 | | `subdomains` | 发现的子域名 | | `technologies` | 识别出的技术指纹 | | `timeline_changes` | 基础设施变更追踪 | | `reports` | 生成的 PDF 报告元数据 | ## 安全 - 具有可配置过期时间的 JWT 认证 - 基于角色的访问控制(Admin, Analyst, Viewer) - 通过 Pydantic schema 进行输入验证 - 速率限制(SlowAPI + Nginx) - 安全的 HTTP 标头(HSTS, X-Frame-Options 等) - CORS 保护 - 使用 bcrypt 进行密码哈希处理 - 基于环境变量的机密管理 ## 风险评分引擎 自定义风险引擎评估以下内容: - 域名年龄(新注册的域名得分较高) - SSL 证书的有效性和过期时间 - 缺失的 SPF/DKIM 记录 - 可疑的 DNS 配置 - 攻击面大小(子域名数量) - 技术指纹缺失情况 **严重性级别:** 低 (0-24) → 中 (25-49) → 高 (50-74) → 严重 (75-100) ## 时间轴功能 重新调查相同的域名以触发变更检测: - 新发现的子域名 - 已移除的子域名 - SSL 证书变更 - DNS 记录修改 - 技术栈变更 ## 生产环境部署 1. 在 `.env` 中设置强效的 `SECRET_KEY` 2. 设置 `DEBUG=false` 3. 配置正确的 `CORS_ORIGINS` 4. 在 Nginx 中使用带有 SSL 证书的 HTTPS 5. 为 PostgreSQL 卷设置数据库备份 6. 监控日志:`docker compose logs -f` ``` # Production build docker compose -f docker-compose.yml up --build -d docker compose exec backend alembic upgrade head ``` ## 技术栈 **前端:** Next.js 15, TypeScript, Tailwind CSS, shadcn/ui, React Query, React Flow, Framer Motion, Recharts **后端:** FastAPI, Python 3.12, SQLAlchemy, Alembic, ReportLab **数据库:** PostgreSQL 16 **基础设施:** Docker, Docker Compose, Nginx ## 许可证 MIT License — 专为安全研究人员、SOC 分析师和网络安全作品集打造。
标签:AV绕过, ESC4, FastAPI, GitHub, OSINT, PostgreSQL, 动态插桩, 威胁情报, 实时处理, 开发者工具, 自动化攻击, 请求拦截