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解析器, 蓝队分析, 计算机视觉, 逆向工具, 隐私保护