Prerana25pradeep/phishing-url-detection

GitHub: Prerana25pradeep/phishing-url-detection

基于词法特征工程对多种机器学习与深度学习模型进行钓鱼URL检测的性能比较分析项目。

Stars: 0 | Forks: 0

# phishing-url-detection 对用于钓鱼 URL 检测的机器学习和深度学习模型进行比较分析,采用词法特征工程、SMOTE 平衡处理及性能基准测试。 # 使用机器学习和深度学习进行钓鱼 URL 检测 ## 概述 本项目对用于钓鱼 URL 检测的机器学习和深度学习技术进行了比较分析。该系统提取 URL 的词法特征,应用数据预处理并使用 SMOTE 进行类别平衡,并评估了多种用于识别恶意 URL 的分类模型。 其目标是在比较模型性能、资源利用率和可扩展性的同时,提高钓鱼检测的准确率。 ## 数据集 本项目使用了一个包含大量钓鱼 URL 的数据集,其中包括: - 54,807 条恶意 URL - 450,176 条合法 URL 在进行模型训练之前,数据集经过了清洗、归一化以及通过特征工程进行的转换。 ## 特征工程 提取了以下 URL 词法特征: - URL 长度 - 点的数量 - 连字符的数量 - 下划线的数量 - 问号的数量 - 等号的数量 - 子域名数量 - 域名长度 ## 数据预处理 - URL 归一化与清洗 - 移除重复项 - 使用 StandardScaler 进行特征缩放 - 使用 SMOTE 处理类别不平衡问题 - 训练集-测试集划分 (70:30) - 4 折交叉验证 ## 评估模型 ### 机器学习模型 - XGBoost - 随机森林 - 线性 SVM ### 深度学习模型 - 深度神经网络 (DNN) - 一维卷积神经网络 (CNN) - 长短期记忆网络 (LSTM) ## 结果 随机森林模型取得了最佳的整体性能。 | 指标 | 得分 | |----------|----------| | 准确率 | 90.4% | | F1 Score | 0.920 | | AUC Score | 0.960 | 该研究表明,在基于词法的钓鱼 URL 检测中,传统的机器学习方法可以优于更复杂的深度学习架构。 ## 技术栈 - Python - Pandas - NumPy - Scikit-Learn - XGBoost - TensorFlow / Keras - Matplotlib - Seaborn - SMOTE - TLDExtract ## 安装说明 ``` pip install -r requirements.txt ``` ## 运行项目 ``` python url_model_training.py ``` ## 应用场景 - 钓鱼检测 - 威胁情报 - 安全浏览系统 - 电子邮件安全解决方案 - 网络安全分析 ## 未来增强功能 - 实时 URL 分类 API - 浏览器扩展集成 - 域名信誉分析 - 词法与基于内容的混合检测 - 集成学习方法
标签:逆向工具