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, 域名枚举, 威胁情报, 开发者工具, 暗色界面, 机器学习, 版权保护, 网络安全, 请求拦截, 逆向工具, 钓鱼检测, 隐私保护