突破!再次新增【钓鱼邮件检测】能力
🔥 一个集成多源威胁情报的聚合平台,为安全研究人员和运维团队提供实时威胁情报查询和播报服务;集成阿里云WAF主动拦截威胁IP,钓鱼邮件实时监测,集成AI等多项常用安全类工具🔧
https://github.com/HaoY-l/threat-intel-hub
其他能力之前已经有过文章介绍,或者可以看公开文档:https://www.yuque.com/weare/mx0zcy/vrqwsxe3vgtesate?singleDoc#,以下内容仅做【钓鱼邮件检测】能力相关介绍。🈲
钓鱼邮件检测🎣介绍
该部分提供钓鱼邮件检测能力,同时提供了邮件链接🔗、附件安全扫描能力,检测并发现邮件中的钓鱼链接,木马文件等安全风险。
它基于机器学习,旨在通过深度学习技术识别潜在的钓鱼邮件,保护用户免受网络诈骗威胁。该系统集成了数据预处理、模型训练、实时预测和结果可视化功能,提供用户友好的Web界面,支持邮件内容手动/自动输入、预测结果展示以及模型性能分析。
注意:模型的阈值为0.5,大于0.5的是钓鱼邮件,小于0.5的是正常的。最终结果都乘以了100%。
实现思路
- 数据获取:使用
spam_assassin.csv
数据集,包含邮件内容和标签(0=正常,1=钓鱼)。 - 数据预处理:通过NLTK分词和Scikit-learn的TF-IDF向量化,将邮件文本转换为特征向量。
- 模型构建:基于Keras的Sequential神经网络,包含多层Dense和Dropout,用于二分类任务。
- 模型训练与保存:训练模型并保存为HDF5格式,支持重复加载和预测。
- 实时预测:通过Flask Web界面接收用户输入的邮件内容,调用模型进行预测。
- 结果展示:展示预测结果(钓鱼/正常)及概率,同时记录预测日志。
模型
- Keras Sequential模型,结构为:
- 输入层:接受TF-IDF特征(5000维)。
- 隐藏层1:128个神经元,ReLU激活,Dropout(0.2)防止过拟合。
- 隐藏层2:64个神经元,ReLU激活。
- 输出层:1个神经元,Sigmoid激活,输出钓鱼概率。
- 优化器:Adam;损失函数:二元交叉熵;评估指标:准确率。
- 训练参数:5个epoch,批次大小32。
- 模型保存为
phishing_model.h5
,便于重复使用。
手动检测
手动复制邮件内容,点击【开始检测】,即会出现模型分析后的结果。
在下方的历史记录中,可以查看以往的历史检测记录,如果不及时可以点击【刷新】按钮;如果太多了不想要记录了直接点击【清空记录】。
自动检测
环境配置文件:.env需要配置对应的邮箱账号/密码,以及机器人的webhook url
自动检测,可以设置检测周期,这里的周期会对应自动去邮箱拉取邮件的周期,如:设置3分钟调用一次检测,那么去邮箱拉取的邮件范围就是当前时间到之前的3分钟内的邮箱。故这里想要实时检测,最好设置3分钟以内,如1分钟、2分钟、3分钟。
检测状态可以看到你设置的周期、下次检测时间、检测的次数、发现钓鱼邮件的数量等。
检测日志会记录检测完成后检测的数量等等。
模型性能
模型性能,可以看到当前模型的准确率、精确率、召回率、F1分数等信息,也可以在模型管理中重新训练模型。
模型管理
模型管理可以看到模型的详细信息,也可以重新训练我们的模型(需要几分钟),也可以看到当前系统模型是否正常等情况。