badiginchalavandana-art/Social_Engineering_Risk_Detection

GitHub: badiginchalavandana-art/Social_Engineering_Risk_Detection

这是一个基于机器学习的社会工程学风险检测系统,通过集成多种分类器识别短信和消息中的钓鱼攻击、冒充诈骗等威胁,并提供 REST API 和实时仪表板。

Stars: 0 | Forks: 0

# 由于输入中未提供需要翻译的具体文本,且根据您的要求不能输出解释内容,因此无法提供翻译结果。 SERD ML 项目 社会工程学风险检测器 —— 机器学习系统 版本 4.0 | Python + Scikit-learn + Flask + Dashboard 这是什么? ───────────── 一个完整的端到端 ML 系统,具备以下功能: 1. 生成包含 1,000 条消息的已标注数据集 2. 训练 4 个 ML 分类器 + 一个集成模型 3. 通过 Flask 暴露 REST API 4. 连接到实时网络安全仪表板 项目结构 ───────────────── serd-ml-project/ ├── dataset.py ← 步骤 1:构建并保存数据集 (CSV) ├── train_model.py ← 步骤 2:训练 ML 模型,保存产物 ├── app.py ← 步骤 3:Flask REST API 后端 ├── dashboard.html ← 步骤 4:实时仪表板(在浏览器中打开) ├── requirements.txt ← Python 依赖项 ├── README.txt ← 本文件 │ │ (运行脚本后生成) ├── serd_dataset.csv ← 1,000 条已标注消息 ├── serd_dataset_stats.txt ← 数据集统计信息 ├── serd_model.pkl ← 训练好的 ML 模型(最佳) ├── serd_vectorizer.pkl ← TF-IDF 向量化器 ├── serd_hcf.pkl ← 手工特征提取器 ├── serd_report.txt ← 完整训练报告 ├── confusion_matrix.png ← 混淆矩阵图 └── roc_curve.png ← ROC 曲线(所有模型) 快速开始(3 步) ───────────────────── 步骤 1 — 安装依赖项 在此文件夹中打开 Command Prompt 或 PowerShell,然后运行: ``` pip install -r requirements.txt ``` 步骤 2 — 构建数据集 + 训练模型 (按顺序运行两者) ``` python dataset.py python train_model.py ``` 此步骤将: • 创建包含 1,000 条消息的 serd_dataset.csv • 训练 Logistic Regression、Random Forest、Gradient Boosting、SVM • 构建 Voting Ensemble(投票集成) • 将最佳模型保存到 serd_model.pkl • 打印完整的准确率报告 步骤 3 — 启动 API + 打开仪表板 在一个终端窗口中: ``` python app.py ``` 然后在浏览器中打开 dashboard.html。 您会在顶部栏看到绿色的 “● API ONLINE” 指示器。 步骤 4 — 试用 • 将任何 SMS 或消息粘贴到扫描器中 • 点击 “Analyze with ML” • 仪表板将其发送到 Flask API • ML 模型返回:诈骗概率、风险等级、攻击类型、关键词 • 结果实时显示在仪表板中 注意:如果 app.py 未运行,仪表板仍可使用内置的基于规则的备用引擎工作 —— 结果会标记为 “⚠ API offline”。 机器学习详情 ───────────────────────── 数据集: • 500 条诈骗消息(label = 1) - 钓鱼攻击、冒充诈骗、彩票诈骗、求职诈骗、UPI 欺诈、政府冒充 • 500 条合法消息(label = 0) - 真实的银行提醒、电商订单、HR、公用事业账单、旅行预订 特征工程: • 对清洗后的文本进行 TF-IDF(一元语法 + 二元语法,8,000 个特征) • 42 个手工特征: - 诈骗关键词标志(35 个关键词) - 大写单词数、感叹号计数、URL 存在 - 数字计数、单词计数、字符长度、总关键词命中数 训练的模型: ┌─────────────────────┬──────────────────────────────────────────┐ │ Logistic Regression │ L2 正则化,类别平衡 │ │ Random Forest │ 200 棵树,max_depth=20,平衡 │ │ Gradient Boosting │ 150 个估计器,learning_rate=0.1 │ │ SVM (LinearSVC) │ 已校准以输出概率 │ │ Ensemble │ 对所有 4 个模型进行软投票 │ └─────────────────────┴──────────────────────────────────────────┘ 评估: • 80/20 分层训练/测试集划分 • 5 折交叉验证 • Accuracy、F1-score(加权)、ROC-AUC • 混淆矩阵、分类报告 预期性能(在此数据集上): • Accuracy : ~95–98% • F1-Score : ~95–98% • ROC-AUC : ~97–99% API 端点 ───────────── GET http://localhost:5000/ → 健康检查 POST http://localhost:5000/predict → 预测单条消息 Body: {"message": "text here"} POST http://localhost:5000/batch → 批量预测(最多 100 条) Body: {"messages": ["msg1", "msg2"]} GET http://localhost:5000/stats → 模型统计 + 报告 GET http://localhost:5000/model-info → 模型类型 + 关键词 仪表板功能 ────────────────── • 5 个 KPI 卡片(总威胁、高风险、中风险、钓鱼攻击、已拦截) • ML 扫描器:粘贴任何消息 → 即时诈骗概率 • 批量模式:一次分析多条消息 • 3 个图表:风险分布条形图、攻击类型环形图、随时间变化的威胁折线图 • 带分页的高风险警报表 • 高频欺诈关键词条形图 • 模型准确率指标面板 • 侧边栏过滤器:日期、风险等级、攻击类型、来源、置信度 • 每 30 秒自动实时刷新 • API 离线时的备用规则引擎 使用的技术 ────────────────── Python 数据处理与 ML Scikit-learn ML 算法:LR, RF, GBM, SVM, VotingEnsemble Pandas + NumPy 数据操作 Matplotlib 混淆矩阵、ROC 曲线 Flask REST API 后端 TF-IDF 文本特征提取 Chart.js 交互式仪表板图表 HTML/CSS/JS 前端仪表板(无框架) 本项目的优势 ──────────────────────────────── ✓ 真实的 ML 流水线 —— 不仅仅是关键词匹配 ✓ 集成模型 —— 结合 4 个分类器以获得最佳准确率 ✓ 特征工程 —— TF-IDF + 42 个手工特征 ✓ 端到端连接 —— Python 模型 → Flask API → 实时仪表板 ✓ 印度语境 —— 涵盖 SBI、HDFC、IRCTC、Paytm、Aadhaar、TRAI ✓ 优雅降级 —— 即使 API 离线也能工作 ✓ 生产级模式 —— 校准概率、交叉验证 ✓ 研究级质量 —— 混淆矩阵、ROC 曲线、分类报告 # (请您在“================================================================”分隔符之间提供需要翻译的标题,我将按照要求为您翻译。) Made with Python + Scikit-learn + Flask + Chart.js SERD v4 — Social Engineering Risk Detector
标签:Apex, Flask, NLP, Python, REST API, Scikit-learn, TF-IDF, 后端开发, 多模态安全, 安全仪表盘, 安全教育, 恶意消息识别, 数据可视化, 数据科学, 文本分类, 无后门, 机器学习, 欺诈检测, 社会工程学检测, 网络安全, 网络测绘, 网络钓鱼防御, 资源验证, 逆向工具, 隐私保护, 集成学习, 风险评分