anvitahadkar06-beep/AI-Based-Phishing-Detection-Framework

GitHub: anvitahadkar06-beep/AI-Based-Phishing-Detection-Framework

该框架结合机器学习、规则引擎与域名白名单验证,实现对钓鱼网站 URL 的自动化风险检测与分类。

Stars: 0 | Forks: 1

github-header-banner (2) ## 🛡️ 项目描述 网络钓鱼攻击是最常见的网络安全威胁之一,通常会导致凭证被盗、金融欺诈和数据泄露。随着攻击者不断开发更复杂的钓鱼技术,传统的检测方法可能总是不够用。本项目旨在利用机器学习和网络安全技术来识别钓鱼网站,并通过自动化检测提升在线安全性。 # ✨ 功能 - 🤖 基于机器学习的钓鱼检测 - 🛡️ 结合 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安全, 无后门, 机器学习, 网络安全, 蓝队分析, 逆向工具, 钓鱼检测, 隐私保护