Sainavyasri24/Cyber-Phish-Platform
GitHub: Sainavyasri24/Cyber-Phish-Platform
基于 AI 的安全 Web 网关,通过实时分析 URL 模式与网络行为预测并拦截钓鱼威胁。
Stars: 0 | Forks: 0
# 🛡️ Cyber-Phish 平台:完整项目分解
欢迎来到 **Cyber-Phish 平台**。如果您完全不了解这个项目,本文档将详细解释它是什么、为什么存在、如何工作,以及构建它所使用的每一项技术。我们将从头到尾逐步了解其架构。
## 1. 什么是这个项目?
**Cyber-Phish 平台**充当一个 **安全 Web 网关(SWG)**。简单来说,它是一道智能安全屏障。
当用户尝试访问一个网站(URL)时,黑客窃取密码或资金的最常见方式是创建“钓鱼”网站——这些网站看起来合法(如伪造的 PayPal 或 Apple 登录页),但实际上是陷阱。
传统的杀毒工具通常依赖“阻止列表”(已知恶意网站列表)。问题是,黑客每天创建数千个新网站。等到一个网站被加入阻止列表时,往往为时已晚。
**这个项目利用人工智能解决了这个问题。** 不再仅仅检查列表,我们的平台像侦探一样工作。它使用机器学习深入分析 URL 的模式、网络属性和行为,以预测链接是否危险——即使该链接是 5 分钟前创建的。
## 2. 平台如何工作(逐步流程)
想象一个用户登录我们的平台并想要检查一个链接:`http://login-update-paypal-912.xyz/secure.php`。以下是后台发生的完整过程:
1. **用户界面(前端):** 用户将链接粘贴到现代化 Web 应用中并点击“扫描”。
2. **API 请求:** Web 应用将该 URL 安全发送到我们的后端“大脑”(API)。
3. **特征提取(调查阶段):** 在做出判断前,后端将 URL 像拼图一样拆解,寻找线索(特征):
- URL 是否过长?
- 是否包含可疑词汇(如 “login”、“update”、“secure”)?
- 域名扩展名是否高风险(如 `.xyz` 或 `.tk`)?
- 该网站多大年龄?(10 年历史的网站通常安全;刚注册的网站非常可疑)
4. **机器学习大脑:** 后端将这些线索(通常为 12 个独立测量值)输入我们训练好的 **随机森林分类器(Random Forest Classifier)** 模型。
5. **判断结果:** AI 模型基于数千个历史样本处理线索,输出一个概率分数(例如 *99% 概率为威胁*)。
6. **响应处理:** 系统对威胁进行分类(低、中、高风险)并决定操作:
- **低风险:** 允许访问。
- **高风险:** 自动拦截并记录告警。
7. **日志记录(SIEM):** 整个事件永久保存在数据库日志中,供管理员审查。
8. **可视化:** 前端即时更新,向用户展示包含威胁分数、采取的操作及拦截原因的“风险卡片”。
## 3. 技术栈(我们使用了什么?)
我们将项目分为两个独立部分:**前端**(用户界面)和 **后端**(逻辑与数据处理)。以下是使用的工具:
### 前端(用户界面)
- **React.js:** 用于构建交互式用户界面的流行 JavaScript 库,可实现按钮、导航标签、风险卡片等组件的即时更新。
- **Vite:** 极速构建工具,使 React 应用在开发中能立即启动。
- **Tailwind CSS:** 现代样式系统,无需编写独立的 CSS 文件,直接在代码中样式化界面,实现深色、精致的高级外观。
- **Axios:** React 用于向后端 API 发送 HTTP 请求的轻量库。
### 后端(大脑与 API)
- **Python:** 后端核心编程语言,因其在机器学习领域的统治地位而被选用。
- **FastAPI:** 现代化、高性能的 Python Web 框架,用于创建 API 端点(如 `/scan-url`、`/login`、`/logs`)。
- **Uvicorn:** 实际运行 FastAPI 应用并监听请求的服务器软件。
- **Pydantic:** FastAPI 原生使用,确保输入数据(如用户密码或 URL)格式严格且有效。
### 机器学习(AI 引擎)
- **Scikit-Learn(sklearn):** 主要的 Python 机器学习库,用于构建 `RandomForestClassifier`。
- **Pandas 与 NumPy:** 数据处理库,像功能强大的 Excel 一样帮助加载、组织和计算训练数据。
- **Joblib:** 用于压缩并保存训练好的 AI 模型到文件(`phishing_model.pkl`),避免每次启动都重新训练。
### 数据库与安全
- **SQLite:** 轻量级数据库,将所有数据(用户名、密码、安全日志)存储在单个文件(`phishing.db`)中。
- **SQLAlchemy:** 对象关系映射器(ORM),允许使用 Python 代码而非原始 SQL 查询数据库。
- **JWT(JSON Web Tokens)与 Passlib:** 处理安全认证。用户注册时密码会被加密(哈希);登录成功后生成“令牌”(数字腕带),用于验证访问受保护日志的身份。
## 4. 从代码到文件详解(每个文件的作用)
如果查看项目文件夹结构,每个主要组件的功能如下:
### 📂 `frontend/` 重点文件
* **`src/App.jsx`:** 主控制者,包含路由逻辑,决定显示登录页、注册页或仪表盘,并强制未登录用户重定向。
* **`src/pages/UserScan.jsx`:** 主仪表盘页面,包含搜索栏、扫描按钮、标签页(仪表盘、日志、设置)和实时时钟。
* **`src/components/RiskCard.jsx`:** 可复用的结果弹窗,根据风险动态着色(红色表示高风险,绿色表示低风险),展示威胁详情。
* **`src/services/api.js`:** 通信模块,负责将用户的安全令牌附加到每个请求并与 FastAPI 后端通信。
### 📂 `backend/` 重点文件
* **`main.py`:** 后端核心,定义路由(`@app.post("/scan-url")`、`@app.get("/logs")`)并整合所有逻辑。
* **`model.py`:** 智能单元,包含从 URL 提取特征的逻辑(统计点数、识别 IP 格式、检查字典),加载 `.pkl` AI 模型并生成最终概率分数;若模型缺失或失败,还包含基于启发式的备用判断系统。
* **`generate_data.py`:** 数据工厂,生成数千个“正常”URL(如 Amazon 或 Google API)和数千个“恶意”URL(Unicode 欺骗、IP 欺骗、域名抢注),构建 AI 训练数据集。
- **`train_model.py`:** AI 训练流程,加载数据集,训练随机森林算法区分正常与恶意,测试准确率并导出最终的 `phishing_model.pkl` “大脑”。
- **`database.py` 与 `sql_models.py`:** 定义数据表结构,建立数据库中的 `users` 表和 `scan_logs` 表。
- **`auth.py`:** 处理身份验证,包括密码哈希校验和生成标准 JWT 安全令牌。
## 5. 总结
Cyber-Phish 平台是一个完整的前后全栈网络安全应用:
1. 具备 **数据生成** 能力,构建自身知识库。
2. 拥有 **AI 训练管道**,产出高精度的预测模型。
3. 提供 **FastAPI Web 服务器**,安全地将 AI 能力暴露给互联网。
4. 包含 **数据库日志记录** 与 **身份认证**,控制谁可使用平台并记录拦截行为。
5. 最后,通过美观、响应式的 **React Web 应用** 将所有内容整合,使与复杂机器学习交互变得像粘贴链接并点击按钮一样简单。
标签:Apex, API, Caido项目解析, Secure Web Gateway, SEO, URL模式分析, Web安全, 人工智能, 关键词优化, 前端, 反钓鱼, 后端, 安全网关, 实时威胁检测, 异常检测, 机器学习, 特征提取, 用户模式Hook绕过, 网络行为分析, 网络钓鱼防护, 蓝队分析, 逆向工具, 钓鱼网站检测, 预测性安全