hamzaatlili/phishguard-ai
GitHub: hamzaatlili/phishguard-ai
基于机器学习的网络钓鱼检测与威胁情报平台,通过对 URL 和邮件内容进行静态分析来识别潜在的钓鱼攻击。
Stars: 0 | Forks: 0
# 🛡️ PhishGuard AI
### 基于 AI 的网络钓鱼检测与威胁情报平台
PhishGuard AI 是一个网络安全平台,旨在通过**机器学习**、**URL 特征分析**和**邮件内容检查**来检测和分析网络钓鱼威胁。
该平台为可疑的 URL 和邮件提供智能风险评估,帮助用户在与恶意内容交互之前识别潜在的网络钓鱼攻击。
该项目结合了**人工智能、网络安全、机器学习、FastAPI、Python、JavaScript 和 Docker**,构建了一个完整的安全导向应用。
## 🚀 核心功能
### 🔗 基于 AI 的 URL 网络钓鱼检测
PhishGuard AI 通过提取多种与安全相关的特征来分析可疑 URL,包括:
* URL 长度
* 主机名长度
* 域名长度
* 点号数量
* 连字符数量
* 特殊字符数量
* 数字和字母数量
* HTTPS 使用情况
* IP 地址检测
* 子域名数量
* 可疑关键词
* 数字与字母比例
* URL 结构分析
提取的特征将由训练好的机器学习模型进行分析,将 URL 分类为:
* ✅ **合法 (LEGITIMATE)**
* 🚨 **钓鱼 (PHISHING)**
### 🤖 机器学习检测
该项目支持用于网络钓鱼检测的机器学习模型,包括:
* 🌲 Random Forest
* ⚡ XGBoost
在训练过程中,系统使用以下指标评估模型:
* Accuracy (准确率)
* Precision (精确率)
* Recall (召回率)
* F1-Score (F1 分数)
* Classification Report (分类报告)
表现最佳的模型将被自动选择并保存以用于推理。
### 📊 风险评分
每个被分析的 URL 都会获得一个风险评分,范围为:
```
0 ───────────────────────────── 100
Low Risk High Risk
```
系统提供:
* 预测结果
* 风险评分
* 检测原因
* 机器学习特征重要性
这使得检测过程更加易于理解,并帮助用户明白为什么某个 URL 被归类为可疑。
### 📧 邮件钓鱼分析
PhishGuard AI 还包含一个基础的邮件钓鱼检测模块。
该系统分析邮件内容中的可疑指标,例如:
* 紧急信息
* 威胁性语言
* 账户暂停警告
* 虚假奖励
* 凭据收集企图
* 可疑发件人模式
* 密码验证请求
可疑指标示例:
```
Urgent
Verify your account
Your account will be suspended
Login here
Update your password
Claim your reward
```
系统会计算风险评分并将邮件分类为:
* ✅ **合法 (LEGITIMATE)**
* 🚨 **钓鱼 (PHISHING)**
## 🏗️ 系统架构
```
┌──────────────────────────┐
│ User / SOC │
└────────────┬─────────────┘
│
▼
┌──────────────────────────┐
│ Web Dashboard │
│ HTML / CSS / JavaScript │
└────────────┬─────────────┘
│
HTTP REST API
│
▼
┌──────────────────────────┐
│ FastAPI Backend │
│ Python Application │
└────────────┬─────────────┘
│
┌─────────────────┴─────────────────┐
│ │
▼ ▼
┌──────────────────┐ ┌──────────────────┐
│ URL Analyzer │ │ Email Analyzer │
└────────┬─────────┘ └────────┬─────────┘
│ │
▼ ▼
┌──────────────────┐ ┌──────────────────┐
│ Feature Extractor│ │ Suspicious Pattern│
│ URL Features │ │ Detection │
└────────┬─────────┘ └──────────────────┘
│
▼
┌──────────────────┐
│ Machine Learning │
│ Random Forest / │
│ XGBoost │
└────────┬─────────┘
│
▼
┌──────────────────┐
│ Risk Assessment │
│ & Explanation │
└──────────────────┘
```
## 🧰 技术栈
### 后端
* Python 3.10+
* FastAPI
* Uvicorn
* Pydantic
* Pandas
* NumPy
* Scikit-learn
* XGBoost
* Joblib
* TLDExtract
### 机器学习
* Random Forest Classifier
* XGBoost Classifier
* Feature Engineering (特征工程)
* Model Evaluation (模型评估)
* Feature Importance (特征重要性)
### 前端
* HTML5
* CSS3
* JavaScript
* Fetch API
* Responsive Dashboard (响应式仪表盘)
### DevOps 与部署
* Docker
* Docker Compose
* Nginx
* REST API
### 网络安全概念
* Phishing Detection (网络钓鱼检测)
* URL Analysis (URL 分析)
* Email Threat Analysis (邮件威胁分析)
* Threat Indicators (威胁指标)
* Risk Scoring (风险评分)
* Suspicious Pattern Detection (可疑模式检测)
* Explainable Security Analysis (可解释性安全分析)
## 📂 项目结构
```
phishguard-ai/
│
├── backend/
│ │
│ ├── app/
│ │ ├── __init__.py
│ │ ├── main.py
│ │ ├── models.py
│ │ ├── utils.py
│ │ │
│ │ └── services/
│ │ ├── __init__.py
│ │ ├── url_analyzer.py
│ │ └── email_analyzer.py
│ │
│ ├── ml_model/
│ │ ├── train.py
│ │ ├── features.py
│ │ └── generate_dataset.py
│ │
│ ├── requirements.txt
│ └── Dockerfile
│
├── frontend/
│ ├── index.html
│ ├── style.css
│ └── script.js
│
├── .gitignore
├── docker-compose.yml
└── README.md
```
# ⚙️ 安装与设置
## 前置条件
请确保您已安装以下软件:
* Git
* Docker
* Docker Compose
验证 Docker 安装:
```
docker --version
```
验证 Docker Compose 安装:
```
docker compose version
```
## 🐳 使用 Docker Compose 运行
克隆代码库:
```
git clone https://github.com/YOUR_USERNAME/phishguard-ai.git
```
进入项目:
```
cd phishguard-ai
```
构建并启动应用:
```
docker compose up --build
```
系统将自动:
1. 构建后端 Docker 镜像。
2. 安装 Python 依赖项。
3. 生成机器学习数据集。
4. 训练 Random Forest 模型。
5. 训练 XGBoost 模型。
6. 评估训练好的模型。
7. 选择表现最佳的模型。
8. 保存训练好的模型。
9. 启动 FastAPI 后端。
10. 启动 Nginx 前端服务器。
# 🌐 访问应用
### Web 仪表盘
```
http://localhost:8080
```
### FastAPI 后端
```
http://localhost:8000
```
### API 文档
FastAPI 自动提供交互式 API 文档:
```
http://localhost:8000/docs
```
备用文档:
```
http://localhost:8000/redoc
```
# 🔌 API 端点
## 健康检查
```
GET /
```
示例响应:
```
{
"message": "PhishGuard AI API is running"
}
```
## 分析 URL
```
POST /api/v1/analyze-url
```
请求:
```
{
"url": "https://example.com"
}
```
示例响应:
```
{
"url": "https://example.com",
"prediction": "LEGITIMATE",
"risk_score": 96.42,
"reasons": [
"URL appears legitimate (no strong phishing indicators)"
]
}
```
对于可疑 URL,响应可能包含:
```
{
"url": "http://secure-login-example.com/verify",
"prediction": "PHISHING",
"risk_score": 98.31,
"reasons": [
"Does not use HTTPS",
"Contains suspicious keywords (login, verify, etc.)"
]
}
```
## 分析邮件
```
POST /api/v1/analyze-email
```
请求:
```
{
"raw_email": "URGENT! Your account has been suspended. Verify your password immediately."
}
```
示例响应:
```
{
"prediction": "PHISHING",
"risk_score": 80,
"indicators": [
"urgency: urgent",
"threats: suspended",
"credential harvest: verify your password"
]
}
```
# 🧠 机器学习流水线
机器学习工作流分为几个阶段。
### 1. 数据集生成
```
python generate_dataset.py
```
生成一个包含以下内容的数据集:
* 合法 URL
* 钓鱼 URL
* 提取的 URL 特征
* 分类标签
### 2. 特征提取
系统从每个 URL 中提取与安全相关的特征。
示例:
```
URL length
Number of dots
Number of subdomains
HTTPS usage
IP address presence
Suspicious keywords
Special characters
Domain length
```
### 3. 模型训练
```
python train.py
```
训练流水线:
```
Dataset
│
▼
Feature Extraction
│
▼
Train/Test Split
│
├───────────────┐
▼ ▼
Random Forest XGBoost
│ │
└───────┬───────┘
▼
Model Evaluation
│
▼
Best Model Selection
│
▼
Model Serialization
```
选定的模型使用 Joblib 保存。
# 🔐 安全考量
PhishGuard AI 被设计为一个网络安全研究和教育项目。
该平台对 URL 和电子邮件内容执行**静态分析**。
它不会自动访问可疑网站或执行恶意内容。
这降低了以下风险:
* 恶意软件执行
* 偷渡式下载
* 恶意 JavaScript 执行
* 浏览器漏洞利用
对于生产环境,应实施额外的安全控制措施,包括:
* 域名信誉服务
* DNS 分析
* WHOIS 信息
* SSL/TLS 证书分析
* VirusTotal 集成
* URL 沙盒化
* 威胁情报源
* 真实的钓鱼数据集
* 身份验证与授权
* API 速率限制
* 日志记录与监控
* SIEM 集成
# 📈 未来改进
该项目可以通过高级网络安全功能进行扩展。
### 🤖 高级 AI
* 深度学习模型
* 基于 NLP 的邮件分类
* Transformer 模型
* 基于 BERT 的钓鱼检测
* 结合 SHAP 的可解释 AI
* 实时模型重训练
### 🌐 威胁情报
集成:
* VirusTotal API
* AbuseIPDB
* URLhaus
* PhishTank
* OpenPhish
* WHOIS 服务
* DNS 情报
### 📧 高级邮件安全
* 邮件头分析
* SPF 验证
* DKIM 验证
* DMARC 分析
* 发件人信誉
* 附件分析
* 从邮件中提取 URL
### 🛡️ SOC 集成
未来集成:
* Wazuh
* Splunk
* Elastic Security
* Microsoft Sentinel
* TheHive
* Cortex
* MISP
这将使 PhishGuard AI 成为完整的 **SOC 检测与响应工作流**的一部分。
# 📊 项目路线图
```
[x] URL feature extraction
[x] Machine Learning phishing detection
[x] Random Forest model
[x] XGBoost model
[x] Risk score calculation
[x] URL explanation
[x] Email phishing analysis
[x] FastAPI REST API
[x] Web dashboard
[x] Docker containerization
[x] Docker Compose deployment
[ ] Real phishing dataset integration
[ ] VirusTotal integration
[ ] URLhaus integration
[ ] PhishTank integration
[ ] Advanced NLP email detection
[ ] SHAP explainability
[ ] User authentication
[ ] PostgreSQL database
[ ] SIEM integration
[ ] SOC dashboard
[ ] Automated threat intelligence enrichment
```
# 🎯 项目目标
PhishGuard AI 的主要目标是:
* 使用机器学习检测钓鱼 URL。
* 分析可疑的电子邮件内容。
* 提供易于理解的风险评分。
* 解释安全决策背后的原因。
* 展示人工智能在网络安全中的应用。
* 构建可扩展的安全分析 REST API。
* 使用 Docker 提供容器化部署。
* 为未来的 SOC 和威胁情报集成奠定基础。
# ⚠️ 免责声明
PhishGuard AI 仅供**教育、研究和防御性网络安全目的**使用。
应负责任地使用该项目,并且仅在您获得授权的 URL、邮件和系统上使用。
开发版本中包含的机器学习模型是使用合成数据训练的,如果不针对真实世界数据集进行进一步验证和测试,不应将其视为生产级别的钓鱼检测系统。
# 👨💻 作者
**Hamza Tlili**
计算机工程 | 网络安全 | 云 | DevOps
兴趣方向:
* 网络安全
* SOC 与 Blue Team
* 威胁检测
* 云安全
* DevSecOps
* 人工智能在网络安全中的应用
# ⭐ 支持
如果您发现该项目对网络安全研究或学习有用,请考虑在 GitHub 上给该代码库一个 ⭐。
## 📜 许可证
该项目基于 **MIT License** 授权。
标签:Apex, AV绕过, Docker, FastAPI, 威胁情报, 安全防御评估, 开发者工具, 数据可视化, 机器学习, 请求拦截, 逆向工具, 钓鱼检测