vlaw1217/Cyber-Security-Capstone-Project-
GitHub: vlaw1217/Cyber-Security-Capstone-Project-
基于机器学习的钓鱼邮件检测原型系统,利用 TF-IDF 特征提取和分类模型识别恶意邮件,并提供 Web 界面、管理仪表盘和附件风险分析功能。
Stars: 1 | Forks: 0
# 基于 AI 的钓鱼检测系统
这是一个网络安全毕业设计项目,旨在开发一个基于 AI 的钓鱼检测原型系统,该系统利用机器学习、邮件内容分析、附件风险指标和仪表盘监控来识别潜在的恶意邮件。
本项目专为 **INFO49402 Cyber Security Capstone – 2026年春/夏季** 开发,同时也是在 **INFO36206** 完成的第一阶段概念验证的延续。
## 项目概述
基于 AI 的钓鱼检测系统旨在根据邮件内容和支持的风险指标将邮件分类为钓鱼邮件或合法邮件。在第一阶段,项目侧重于使用邮件主题和正文文本构建概念验证的机器学习模型。该系统使用了文本预处理、TF-IDF 特征提取、监督式机器学习以及用于测试钓鱼预测的基础 Flask Web 界面。
在第二阶段,项目正在被修订和扩展为一个更完整的网络安全原型。该系统将添加安全的用户访问、基于角色的权限、管理仪表盘、尝试性的 Microsoft Graph API 邮件集成以及附件分析。
目标是展示一个端到端的钓鱼分析工作流,从用户登录到邮件扫描、钓鱼分类、附件风险检查、数据库存储以及仪表盘结果展示。
## 项目状态
**当前状态:** 第二阶段修订后的项目规划和系统优化。
该项目目前正在更新,以符合 INFO49402 的要求。修订后的计划包括每周里程碑、更新的范围、风险缓解、团队职责、GitHub 证据和最终交付物。
## 第一阶段已完成的工作
在第一阶段完成了以下工作:
- 收集并准备了钓鱼邮件数据集
- 清洗并预处理了邮件主题/正文文本
- 提取了 TF-IDF 文本特征
- 在适用的情况下添加了基础工程特征
- 训练了一个监督式机器学习钓鱼检测模型
- 保存了训练好的模型和 TF-IDF 向量化器
- 构建了一个基础的 Flask Web 应用程序
- 添加了手动邮件预测功能
- 通过 Web 界面展示了钓鱼分类结果
- 使用数据库工作流存储或准备了预测历史记录
## 第二阶段计划增强功能
第二阶段将通过添加以下组件来改进系统:
### 1. 第一阶段系统审查和优化
在添加新功能之前,将对现有的第一阶段系统进行审查、测试和清理。
计划工作:
- 测试现有的训练模型和向量化器
- 验证 Flask 预测工作流
- 审查数据库使用情况和预测历史记录
- 清理并组织代码仓库
- 更新文档和设置说明
### 2. 身份验证和基于角色的访问控制
该系统将为用户和管理员提供安全的访问控制。
计划工作:
- 用户注册
- 登录和注销
- 密码哈希处理
- 会话管理
- 用户和管理员角色
- 受保护的路由
- 仅限管理员的访问限制
### 3. 管理仪表盘
管理仪表盘将提供对系统活动和钓鱼检测结果的可见性。
计划工作:
- 显示预测历史记录
- 显示邮件扫描结果
- 显示附件扫描结果
- 在适用的情况下显示用户活动
- 提供基础系统状态或摘要统计信息
- 允许管理员审查可疑或钓鱼分类
### 4. Microsoft Graph API 邮件集成
该系统将尝试与 Microsoft Graph API 集成,以检索 Outlook 邮件数据进行自动钓鱼分析。
计划工作:
- 配置 Microsoft Entra ID 应用程序注册
- 在可能的情况下实现基于 OAuth 的身份验证
- 检索邮件主题、发件人、正文和元数据
- 将检索到的邮件内容发送到钓鱼检测模型
- 在仪表盘中显示分类结果
如果完整的 API 访问受到权限、配置或账户限制的阻碍,系统将使用遵循相同处理结构的受控示例邮件导入工作流。
### 5. 附件分析
附件分析组件不会执行、打开或运行附件文件。它将分析附件元数据、文件扩展名、文件大小、哈希值,以及在可获得 API 访问权限时来自 VirusTotal 的可选信誉结果。
计划工作:
- 检测邮件是否包含附件
- 提取附件元数据,如文件名、文件类型和大小
- 生成文件哈希值
- 检查可疑的文件扩展名或模式
- 如果有 API 访问权限,则集成 VirusTotal 或其他威胁情报服务
- 在仪表盘中显示附件风险结果
- 将附件扫描元数据存储在数据库中
如果外部 API 访问受限,系统仍将使用元数据、哈希生成和可疑扩展名检查来完成本地附件分析。
## 预期的最终交付物
到第二阶段结束时,项目预计将包括:
- 可运行的钓鱼检测 Web 应用程序
- 重用或优化后的机器学习模型和 TF-IDF 向量化器
- 安全的身份验证系统
- 基于角色的访问控制
- 功能完善的管理仪表盘
- 尝试性的 Microsoft Graph API 集成或备用邮件导入工作流
- 附件元数据和基于哈希的风险分析
- 更新后的数据库结构
- 清晰的 GitHub README 和文档
- 每周进度证据
- 最终演示和 Demo 材料
- 端到端工作流演示
## 技术栈
| 类别 | 工具 / 技术 |
|---|---|
| 编程语言 | Python |
| Web 框架 | Flask |
| 机器学习 | scikit-learn |
| 数据处理 | pandas, NumPy |
| 特征提取 | TF-IDF Vectorizer |
| 模型存储 | joblib |
| 数据库 | SQLite |
| 前端 | HTML, CSS, Bootstrap 或基础样式 |
| 邮件集成 | Microsoft Graph API, Microsoft Entra ID, OAuth 2.0 |
| 附件分析 | Python 哈希库,元数据检查,可选 VirusTotal API |
| 版本控制 | Git, GitHub |
| 开发环境 | VS Code |
## 仓库结构
```
Cyber-Security-Capstone-Project/
│
├── app.py
├── requirements.txt
├── README.md
├── .gitignore
│
├── models/
│ ├── phishing_model_v1.pkl
│ └── tfidf_vectorizer_v1.pkl
│
├── templates/
│ ├── index.html
│ ├── login.html
│ ├── register.html
│ ├── dashboard.html
│ └── admin_dashboard.html
│
├── static/
│ ├── css/
│ └── images/
│
├── database/
│ └── database_schema_notes.md
│
├── docs/
│ ├── project_plan.md
│ ├── weekly_updates/
│ ├── diagrams/
│ └── testing_notes.md
│
└── notebooks/
└── model_training.ipynb
```
标签:AI钓鱼检测, Apex, DAST, Flask, Microsoft Graph, ML分类模型, NLP, PoC, Python, RBAC权限管理, Streamlit, TF-IDF, Web应用开发, 人工智能, 代码示例, 仪表盘, 异常检测, 微软Graph API, 恶意软件分析, 数据分析, 文本预处理, 无后门, 暴力破解, 机器学习, 概念验证, 毕业设计, 特征工程, 用户模式Hook绕过, 监督学习, 端到端工作流, 网络安全, 访问控制, 逆向工具, 邮件内容分析, 邮件安全网关, 钓鱼邮件防御, 附件风险分析, 隐私保护