KoojithaT/Screenshot-Phishing-Malware-Detection-System
GitHub: KoojithaT/Screenshot-Phishing-Malware-Detection-System
该项目是一个集成了深度学习、OCR 和 NLP 技术的 Web 应用程序,能够通过分析网站截图来检测钓鱼网站和恶意软件威胁。
Stars: 0 | Forks: 0
# 截图钓鱼与恶意软件检测网站
一个完整的基于 AI 的 Web 应用程序,利用深度学习、OCR 和 NLP 分析截图,以检测钓鱼尝试和恶意软件威胁。
## 🌟 功能特性
- **深度学习视觉分析**:使用预训练的 MobileNetV2 CNN 分析视觉模式
- **OCR 文本提取**:使用 Tesseract OCR 从截图中提取文本
- **NLP 可疑文本检测**:使用 BERT 分析提取的文本中的钓鱼/恶意软件关键词
- **三分类分类**:将截图分类为安全、钓鱼或恶意软件
- **现代 React UI**:美观的拖放式界面,提供实时结果
- **置信度评分**:为每个预测提供置信度百分比
- **详细说明**:显示将截图归类为可疑的原因
- **关键词高亮**:显示检测到的可疑关键词
## 🛠️ 技术栈
### 后端
- **FastAPI**:高性能 REST API
- **PyTorch**:深度学习框架
- **TorchVision**:预训练 CNN 模型 (MobileNetV2)
- **OpenCV**:图像处理
- **Pytesseract**:OCR 文本提取
- **Transformers**:基于 DistilBERT 的 NLP
- **NumPy & SciPy**:数值处理
### 前端
- **React 18**:现代 UI 框架
- **Vite**:快速构建工具和开发服务器
- **Axios**:用于 API 调用的 HTTP 客户端
- **CSS3**:现代渐变样式
## 📋 前置条件
在运行此项目之前,请确保您拥有:
1. 已安装 **Python 3.8+**
2. 已安装 **Node.js 16+** 和 npm
3. 已安装 **Tesseract OCR**:
- **Windows**:从 [https://github.com/UB-Mannheim/tesseract/wiki](https://github.com/UB-Mannheim/tesseract/wiki) 下载
- 安装后,将 Tesseract 添加到 PATH 或更新 `ocr_utils.py` 第 7 行为您的安装路径
- **macOS**:`brew install tesseract`
- **Linux**:`sudo apt-get install tesseract-ocr`
## 🚀 安装与设置
### 1. 后端设置
打开终端并导航到 backend 文件夹:
```
cd backend
```
安装 Python 依赖:
```
pip install -r requirements.txt
```
**注意**:后端首次运行时,它会下载预训练模型(约 100MB)。这可能需要几分钟。
启动 FastAPI 服务器:
```
uvicorn main:app --reload
```
后端 API 将运行于:**http://localhost:8000**
### 2. 前端设置
打开一个**新终端**并导航到 frontend 文件夹:
```
cd frontend
```
安装 Node.js 依赖:
```
npm install
```
启动开发服务器:
```
npm run dev
```
网站将自动打开于:**http://localhost:5173**
## 🎯 使用方法
1. **打开网站**,访问 http://localhost:5173
2. **上传截图**,通过以下方式:
- 拖放图片,或
- 点击上传区域浏览文件
3. **点击“分析截图”**
4. **查看结果**:
- 预测结果(安全/钓鱼/恶意软件)
- 置信度百分比
- 详细说明
- 从截图中提取的文本
- 检测到的可疑关键词
## 🧠 工作原理
### 检测流程
1. **视觉分析 (CNN)**:
- 加载截图并调整大小为 224x224
- 归一化并转换为张量
- 通过预训练的 MobileNetV2 处理
- 分析视觉模式,如登录表单、弹窗、配色方案
- 生成视觉钓鱼评分
2. **文本提取 (OCR)**:
- 预处理图像(灰度化、阈值处理)
- 使用 Tesseract OCR 提取文本
- 返回提取的文本供 NLP 分析
3. **文本分析 (NLP)**:
- 检查钓鱼关键词:"urgent"、"verify"、"bank"、"password" 等
- 检查恶意软件关键词:"virus detected"、"infected"、"security warning" 等
- 使用 DistilBERT 进行情感分析
- 计算可疑文本评分
4. **最终分类**:
- 结合视觉评分 (40%) + 文本评分 (60%)
- 应用决策规则:
- **恶意软件**:警告弹窗语言 + 威胁关键词
- **钓鱼**:登录界面 + 紧急性/凭证相关词汇
- **安全**:无可疑模式
- 返回带有置信度和说明的预测结果
## 📁 项目结构
```
project/
│
├── backend/
│ ├── main.py # FastAPI server & endpoints
│ ├── model.py # CNN visual detection
│ ├── ocr_utils.py # Tesseract OCR functions
│ ├── nlp_utils.py # NLP text analysis
│ ├── requirements.txt # Python dependencies
│ └── uploads/ # Temporary upload folder (auto-created)
│
├── frontend/
│ ├── src/
│ │ ├── App.jsx # Main React component
│ │ ├── App.css # Component styles
│ │ ├── index.css # Global styles
│ │ └── main.jsx # React entry point
│ ├── index.html # HTML template
│ ├── package.json # Node dependencies
│ └── vite.config.js # Vite configuration
│
└── README.md # This file
```
## 🔧 API 端点
### GET /
健康检查端点
**响应**:
```
{
"message": "Screenshot Phishing & Malware Detection API is running"
}
```
### POST /predict
分析上传的截图
**请求**:包含图像文件的 Multipart 表单数据
**响应**:
```
{
"prediction": "Phishing",
"confidence": 0.92,
"explanation": "Fake login interface detected with keywords: urgent, verify, password",
"extracted_text": "Please verify your account immediately...",
"suspicious_keywords": ["urgent", "verify", "password"]
}
```
## 🎨 UI 配色方案
- **安全**:绿色渐变 (✅)
- **钓鱼**:红色渐变 (🎣)
- **恶意软件**:橙色渐变 (⚠️)
## ⚠️ 重要提示
### Windows 用户 - Tesseract 设置
如果您在 Windows 上遇到 OCR 错误,需要配置 Tesseract:
1. 从 [GitHub](https://github.com/UB-Mannheim/tesseract/wiki) 安装 Tesseract
2. 记下安装路径(通常是 `C:\Program Files\Tesseract-OCR\tesseract.exe`)
3. 打开 `backend/ocr_utils.py`
4. 取消注释第 7 行并更新路径:
```
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
```
### 模型下载
首次运行后端时,PyTorch 将下载:
- MobileNetV2 权重(约 14MB)
- DistilBERT 模型(约 250MB)
这是正常的,且只会发生一次。
## 🐛 故障排除
### 后端无法启动
- 确保已安装 Python 3.8+:`python --version`
- 安装依赖:`pip install -r requirements.txt`
- 检查端口 8000 是否可用
### 前端无法启动
- 确保已安装 Node.js 16+:`node --version`
- 安装依赖:`npm install`
- 检查端口 5173 是否可用
### OCR 不工作
- 安装 Tesseract OCR(见前置条件)
- 在 Windows 上,在 `ocr_utils.py` 中配置路径
### CORS 错误
- 确保后端运行在端口 8000 上
- 检查前端是否正在访问 `http://localhost:8000`
## 📚 教育目的
本项目旨在作为学生演示,涵盖:
- 全栈 Web 开发
- 机器学习集成
- 基于 CNN 的计算机视觉
- 自然语言处理
- OCR 技术
- REST API 设计
- 现代 React 开发
## 🔒 安全提示
这是一个用于教育目的的演示项目。在生产环境中,您应该:
- 添加身份验证和速率限制
- 验证并清理所有输入
- 使用 HTTPS 进行安全通信
- 实施适当的错误处理
- 添加日志记录和监控
- 正确配置 CORS
## 📝 许可证
本项目可免费用于教育目的。
## 👨💻 开发
要修改项目:
**后端更改**:编辑 `backend/` 中的文件,服务器会自动重新加载
**前端更改**:编辑 `frontend/src/` 中的文件,Vite 会自动热重载
**添加新的 ML 功能**:更新 `model.py`、`ocr_utils.py` 或 `nlp_utils.py`
## 🎓 致谢
构建使用了:
- PyTorch 预训练模型
- Google 的 Tesseract OCR
- Hugging Face Transformers
- FastAPI 框架
- React + Vite
# **享受检测钓鱼和恶意软件的过程!🔒🛡️**
# Screenshot-Phishing-Malware-Detection-System
该项目是一个 Web 应用程序,通过截图分析来检测网站是虚假的还是合法的。用户上传网站截图,我们基于深度学习的模型分析视觉和文本特征,将其分类为钓鱼网站或原始网站,从而以一种简单易用的方式帮助提高在线安全性。
标签:AI模型部署, Apex, AV绕过, BERT, FastAPI, MobileNetV2, NLP, OCR文字识别, OpenCV, PyTorch, React, REST API, Syscalls, Tesseract, Web安全, 人工智能, 全栈应用, 凭据扫描, 反钓鱼, 可视化检测, 后端开发, 图像识别, 截图分析, 机器学习, 欺诈检测, 深度学习, 用户模式Hook绕过, 系统调用监控, 网络安全, 自定义DNS解析器, 蓝队分析, 计算机视觉, 逆向工具, 隐私保护