karthikeyan2746/CyberShield
GitHub: karthikeyan2746/CyberShield
CyberShield 是一个基于 AI 机器学习与多源威胁情报的全栈钓鱼 URL 检测与分析平台,通过分层风险评估机制帮助用户实时识别恶意链接。
Stars: 0 | Forks: 0
# 🛡️ CyberShield – 基于 AI 的钓鱼检测平台
CyberShield 是一个全栈网络安全平台,旨在利用**机器学习、启发式分析和外部威胁情报服务**来检测和分析潜在的恶意及钓鱼 URL。
该平台结合了 **React 前端、Spring Boot 后端、FastAPI AI 微服务、MySQL 数据库、基于 JWT 的安全机制以及 Docker 化架构**,以提供实时的 URL 风险分析。
## 🚀 核心功能
- 🔍 实时 URL 扫描与风险分析
- 🤖 基于机器学习的钓鱼检测
- 🧠 URL 特征提取与 Random Forest 分类
- 🌐 集成 VirusTotal 威胁情报
- 🔎 集成 URLScan.io
- 📋 WHOIS/域名情报查询
- 📊 风险评分与扫描分析
- 📜 扫描历史与威胁报告
- 🔐 基于 JWT 的身份验证
- 👥 基于角色的访问控制 (RBAC)
- 📈 交互式仪表盘与图表
- 🐳 Docker 化的多服务架构
- 📖 Swagger/OpenAPI 文档
- ⚠️ 对不可用的外部服务提供者进行平滑处理
## 🏗️ 系统架构
```
graph TD
A[React Frontend] -->|REST API| B[Spring Boot Backend]
B -->|REST API| C[FastAPI AI Service]
B -->|JPA / Hibernate| D[(MySQL Database)]
C --> E[Random Forest Model]
B --> F[VirusTotal API]
B --> G[URLScan.io API]
B --> H[WHOIS Service]
```
### URL 分析流程
```
User submits URL
↓
React Frontend
↓
Spring Boot Backend
↓
URL Validation & Heuristic Analysis
↓
Threat Intelligence
├── VirusTotal
├── URLScan.io
└── WHOIS
↓
FastAPI AI Microservice
↓
Random Forest Prediction
↓
Combined Risk Assessment
↓
Store Results in MySQL
↓
Dashboard / Scan Result
```
## 🧰 技术栈
| 层级 | 技术 |
|---|---|
| 前端 | React.js, Vite, CSS, Chart.js |
| 后端 | Java 21, Spring Boot, Spring Security |
| AI/ML | Python, FastAPI, Scikit-learn, Random Forest |
| 数据库 | MySQL 8 |
| 身份验证 | JWT |
| 授权 | 基于角色的访问控制 (RBAC) |
| 威胁情报 | VirusTotal, URLScan.io, WHOIS |
| API 文档 | Swagger / OpenAPI |
| 容器化 | Docker, Docker Compose |
| 构建工具 | Maven, npm |
## 📂 项目结构
```
CyberShield/
│
├── backend/ # Spring Boot REST API
├── frontend/ # React frontend
├── ai-service/ # FastAPI ML microservice
├── sandbox-service/ # Sandboxing components
├── docs/ # Project documentation
├── scripts/ # Utility scripts
├── docker-compose.yml
├── .gitignore
└── README.md
```
## 🤖 AI 钓鱼检测
CyberShield 使用 **Random Forest 分类器**来分析 URL 特征并评估钓鱼风险。
AI 服务会提取基于 URL 的特征,例如:
- URL 长度
- 域名长度
- HTTPS 使用情况
- IP 地址使用情况
- 点号和连字符的数量
- 数字数量
- 特殊字符
- 可疑关键词
- 路径长度
- 查询长度
FastAPI 微服务暴露的接口:
```
POST /predict
```
请求示例:
```
{
"url": "https://example.com/login"
}
```
响应示例:
```
{
"prediction": "SUSPICIOUS",
"confidence": 87.5,
"riskScore": 68,
"reasons": [
"Suspicious keyword detected"
]
}
```
## 🔐 安全性
CyberShield 实现了:
- JWT 身份验证
- BCrypt 密码哈希
- 基于角色的访问控制
- 受保护的 REST endpoint
- 输入验证
- CORS 配置
- 安全的 API 配置
- 外部 API 故障处理
支持的角色包括:
```
USER
ANALYST
ADMIN
```
## ⚙️ 前置条件
本地开发所需环境:
- Java 21+
- Maven 3.9+
- Node.js 20+
- Python 3.11+
- MySQL 8+
- Docker & Docker Compose(可选)
## 🔑 环境配置
切勿将真实的 API 密钥或敏感信息提交到 GitHub。
请在本地配置以下环境变量:
```
VIRUSTOTAL_API_KEY=your_virustotal_api_key
URLSCAN_API_KEY=your_urlscan_api_key
JWT_SECRET=your_secure_jwt_secret
```
您的 Spring Boot 配置应引用环境变量,而不是直接暴露敏感信息。
示例:
```
virustotal.api.key=${VIRUSTOTAL_API_KEY}
urlscan.api.key=${URLSCAN_API_KEY}
jwt.secret=${JWT_SECRET}
```
## ▶️ 本地运行
### 1. 启动 MySQL
确保 MySQL 正在运行,并且 CyberShield 数据库可用。
### 2. 启动 AI 服务
```
cd ai-service
.\.venv\Scripts\activate
uvicorn app:app --reload
```
AI API:
```
http://localhost:8000
```
FastAPI 文档:
```
http://localhost:8000/docs
```
### 3. 启动后端
```
cd backend
mvn spring-boot:run
```
后端:
```
http://localhost:8081
```
Swagger UI:
```
http://localhost:8081/swagger-ui/index.html
```
### 4. 启动前端
```
cd frontend
npm install
npm run dev
```
前端:
```
http://localhost:5173
```
## 🐳 使用 Docker 运行
确保 Docker Desktop 正在运行。
在 CyberShield 根目录下执行:
```
docker compose up -d --build
```
停止所有容器:
```
docker compose down
```
## 🧪 测试应用
启动所有服务后:
1. 注册或登录 CyberShield。
2. 验证 JWT 身份验证。
3. 打开仪表盘。
4. 导航至 **Scan URL**。
5. 提交一个 URL。
6. 验证 AI 预测和风险评分。
7. 验证可用的威胁情报结果。
8. 检查扫描是否出现在扫描历史中。
9. 验证受角色保护的功能。
10. 确认不可用的外部服务提供者能平滑失败,且不会中断 URL 分析。
## 📊 分析示例
CyberShield 结合了多种安全信号,而不是依赖于单一的检测机制:
```
URL
↓
Heuristic Analysis
+
AI Prediction
+
Threat Intelligence
↓
Combined Risk Score
↓
SAFE / SUSPICIOUS / PHISHING
```
这种分层方法为 URL 风险评估提供了更多上下文。
## ⚠️ 外部 API 配置
VirusTotal 和 URLScan.io 需要有效的 API 凭证。
如果外部服务提供者不可用、受到速率限制或未配置,CyberShield 会使用可用的检测机制继续处理 URL,而不是导致整个扫描失败。
## 🔮 未来增强功能
- 隔离的浏览器沙箱执行
- 基于截图的钓鱼检测
- 邮件钓鱼分析
- 域名信誉缓存
- 高级的可解释 AI
- 实时 WebSocket 扫描更新
- 云端部署与监控
- CI/CD pipeline
## 👨💻 项目目的
CyberShield 作为一个网络安全工程项目开发,旨在展示在以下领域的实践经验:
**全栈开发 • 机器学习 • REST API • 微服务 • 安全身份验证 • 威胁情报 • 数据库设计 • Docker • 网络安全工程**
## 📄 许可证
本项目旨在用于教育和网络安全研究目的。
标签:Apex, Caido项目解析, Java Spring Boot, JS文件枚举, React, Syscalls, 域名枚举, 威胁情报, 开发者工具, 暗色界面, 机器学习, 版权保护, 网络安全, 请求拦截, 逆向工具, 钓鱼检测, 隐私保护