h4rdxcry/CyberTrace
GitHub: h4rdxcry/CyberTrace
CyberTrace 是一个高级的攻击面情报与威胁研究平台,集成了域名调查、基础设施分析、风险评分和 AI 报告生成功能。
Stars: 0 | Forks: 0
# CYBERTRACE
**高级 OSINT 与攻击面情报平台**
CyberTrace 是一个可用于生产环境的网络安全平台,旨在调查域名、分析基础设施、发现子域名、检查 DNS/SSL 记录、检测技术栈、计算风险评分、生成 AI 驱动的调查报告,并随时间推移可视化攻击面。




## 功能
| 功能 | 描述 |
|---------|-------------|
| **身份验证** | 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, 动态插桩, 威胁情报, 实时处理, 开发者工具, 自动化攻击, 请求拦截