anvitahadkar06-beep/AI-Based-Phishing-Detection-Framework
GitHub: anvitahadkar06-beep/AI-Based-Phishing-Detection-Framework
该框架结合机器学习、规则引擎与域名白名单验证,实现对钓鱼网站 URL 的自动化风险检测与分类。
Stars: 0 | Forks: 1
## 🛡️ 项目描述
网络钓鱼攻击是最常见的网络安全威胁之一,通常会导致凭证被盗、金融欺诈和数据泄露。随着攻击者不断开发更复杂的钓鱼技术,传统的检测方法可能总是不够用。本项目旨在利用机器学习和网络安全技术来识别钓鱼网站,并通过自动化检测提升在线安全性。
# ✨ 功能
- 🤖 基于机器学习的钓鱼检测
- 🛡️ 结合 AI 与规则分析的混合决策引擎
- ✅ 可信域名白名单验证
- 🔍 URL 特征提取
- 📊 置信度评分预测
- 🚨 风险分类(低 / 中 / 高)
- 📝 扫描历史记录
- ⚡ RESTful Flask API
- 🌐 现代 React 前端
- 📦 模块化项目架构
- 🚀 可直接部署 (Render + Vercel)
# 🏗️ 系统架构
该框架采用模块化的客户端-服务端架构,旨在实现高效的钓鱼 URL 检测。
```
graph LR
User((User))
User -->|Enter URL| Frontend[React Frontend]
Frontend -->|POST /predict| Backend[Flask Backend]
Backend --> FeatureExtraction[Feature Extraction]
FeatureExtraction --> DecisionEngine[Hybrid Decision Engine]
DecisionEngine --> ML[Random Forest Model]
DecisionEngine --> Rules[Rule Engine]
DecisionEngine --> Trusted[Trusted Domain Verification]
ML --> DecisionEngine
Rules --> DecisionEngine
Trusted --> DecisionEngine
DecisionEngine --> Logger[Scan History Logger]
DecisionEngine --> Response[Prediction Result]
Response --> Frontend
Frontend --> User
```
# 🔍 检测工作流
钓鱼检测过程包含以下阶段:
1. 用户通过 React 前端输入 URL。
2. Flask 后端接收请求。
3. 提取 URL 的词法特征。
4. Random Forest 预测 URL 类别。
5. 规则引擎评估可疑的 URL 特征。
6. 可信域名验证检查已知的安全域名。
7. 混合决策引擎汇总所有结果。
8. 记录扫描历史。
9. 将最终预测结果返回给前端。
# 📂 项目结构
```
AI-Based-Phishing-Detection-Framework/
├── README.md # Main project overview and banner
│
├── 📁 Frontend/
│ ├── 📁 public/ # Static assets served by the React application
│ ├── 📁 src/ # React source code and UI components
│ ├── .gitignore # Git ignore rules for frontend
│ ├── package.json # Frontend dependencies and npm scripts
│ └── package-lock.json # Locked dependency versions
│
├── 📁 Backend/
│ ├── 📁 data/ # Datasets, processed data, and scan history
│ ├── 📁 models/ # Trained machine learning models
│ ├── 📁 reports/ # Model evaluation reports and figures
│ ├── 📁 src/ # Flask backend source code
│ ├── requirements.txt # Python dependencies
│ ├── Procfile # Render deployment configuration
│ ├── .env.example # Environment variable template
│
├── 📁 reports/
│ ├── 📁 evaluation/
│ ├── 📁 figures/
│ └── README.md
│
├── 📁 data/
│ ├── 📁 raw/
│ ├── 📁 processed/
│ ├── 📁 history/
│ ├── data_schema_design.txt
│ └── README.md
│
├── 📁 docs/
│ ├── API_SPEC.md
│ └── ARCHITECTURE.md
│
├── 📁 models/
│ ├── phishing_detector.pkl
│ ├── feature_columns.pkl
│ └── README.md
│
├── 📁 src/
│ ├── app.py
│ ├── decision_engine.py
│ ├── feature_extraction.py
│ ├── rule_engine.py
│ ├── trusted_domains.py
│ ├── logger.py
│ ├── model_loader.py
│ ├── prediction.py
│ ├── train_model.py
│ ├── evaluate_model.py
│ ├── data_collection.py
│ ├── data_processing.py
│ ├── data_storage.py
│ ├── dataset_builder.py
│ ├── reputation_checker.py
│ ├── utils.py
│ ├── config.py
│ ├── test_prediction.py
│ ├── test_decision_engine.py
│ └── README.md
│
├── 📁 deployment/
│ └── README.md
```
# 🛠️ 技术栈
### 前端
- React
- Vite
- JavaScript
- CSS3
- Axios
### 后端
- Flask
- Flask-CORS
### 机器学习
- Scikit-learn
- Random Forest Classifier
- Pandas
- NumPy
- Joblib
### 工具
- Git
- GitHub
- Render
- Vercel
# 🧠 机器学习流水线
钓鱼检测模型遵循结构化的机器学习工作流。
### 数据集收集
- 钓鱼 URL
- 合法 URL
### 数据预处理
- 数据清洗
- 去重
- 特征工程
- 数据验证
### 特征提取
模型提取的 URL 词法特征包括:
- URL 长度
- 域名长度
- 路径长度
- 查询长度
- 点的数量
- 连字符的数量
- 数字的数量
- 特殊字符的数量
- HTTPS 使用情况
- 是否存在 IP 地址
- URL 熵
- 可疑关键词
- Tiny URL 检测
- 重定向检测
- 子域名
- 前缀/后缀检测
### 模型
- Random Forest Classifier
### 附加检测层
- 基于规则的引擎
- 可信域名白名单
- 风险评估引擎
# 🚀 快速开始
## 前置条件
请确保您的系统已安装以下软件:
- Python 3.10+
- Node.js (v18 或更高版本)
- npm
- Git
## 1️⃣ 克隆仓库
```
git clone https://github.com/your-username/AI-Based-Phishing-Detection-Framework.git
cd AI-Based-Phishing-Detection-Framework
```
## 2️⃣ 后端设置
导航至后端目录:
```
cd Backend
```
创建虚拟环境。
### Windows
```
python -m venv .venv
```
激活环境:
```
.venv\Scripts\activate
```
### Linux / macOS
```
python3 -m venv .venv
source .venv/bin/activate
```
安装所需的依赖项:
```
pip install -r requirements.txt
```
## 3️⃣ 启动 Flask 后端
导航至源代码目录:
```
cd src
```
运行后端服务器:
```
python app.py
```
后端 API 将启动于:
```
http://127.0.0.1:5000
```
您可以通过打开以下链接来验证其是否正在运行:
```
http://127.0.0.1:5000
```
预期响应:
```
{
"message":"AI-Based Phishing Detection Backend",
"status":"Running"
}
```
## 4️⃣ 前端设置
打开**另一个终端**。
导航至前端文件夹:
```
cd Frontend
```
安装所需的 Node 包:
```
npm install
```
启动 React 开发服务器:
```
npm run dev
```
前端将启动于:
```
http://localhost:5173
```
## 5️⃣ 使用应用程序
确保**两个服务器同时运行。**
| 终端 | 命令 |
|----------|---------|
| 终端 1 | `python app.py` |
| 终端 2 | `npm run dev` |
打开浏览器并访问:
```
http://localhost:5173
```
输入一个 URL(例如):
```
https://google.com
```
点击 **Analyze URL** 以获取:
- 预测结果
- 置信度评分
- 风险等级
- 可信域名状态
- 检测原因
# 🧪 API 端点
| 方法 | 端点 | 描述 |
|---------|----------|-------------|
| GET | `/` | 后端状态 |
| GET | `/health` | 健康检查 |
| POST | `/predict` | 分析 URL |
## 请求示例
```
{
"url":"https://google.com"
}
```
## 响应示例
```
{
"prediction":"LEGITIMATE",
"confidence":99.0,
"risk":"LOW",
"trusted":true,
"rule_score":0,
"reasons":[
"Trusted domain - safe override"
]
}
```
# 🧪 运行测试
导航至后端源代码目录:
```
cd Backend/src
```
运行预测测试:
```
python test_prediction.py
```
运行决策引擎测试:
```
python test_decision_engine.py
```
# 📄 许可证
本项目仅供教育、研究和网络安全学习目的使用。
```
MIT License
```
标签:Apex, Flask, Python, React, Syscalls, Web安全, 无后门, 机器学习, 网络安全, 蓝队分析, 逆向工具, 钓鱼检测, 隐私保护