prattikkk/Phishing-Detection-and-Incident-Response-Lab
GitHub: prattikkk/Phishing-Detection-and-Incident-Response-Lab
面向 SOC 场景的钓鱼检测实验项目,通过规则引擎与可选 ML 评分从邮件和 URL 中识别钓鱼攻击,并自动生成包含 MITRE ATT&CK 映射的事件响应报告。
Stars: 0 | Forks: 0
# 钓鱼检测与事件响应实验
这是一个面向 SOC 的项目,旨在通过邮件和 URL 情报检测钓鱼攻击,生成分析师可直接使用的事件输出,并将发现映射到 MITRE ATT&CK。
## 作品集亮点
- 从数据准备到响应报告的端到端 pipeline。
- 具有可解释性的规则引擎,支持可选的 ML 增强。
- 自动生成告警,包含风险评分、严重程度和响应指南。
- 通过 ATT&CK 映射确保 SOC 文档的质量。
- 在结合了 CEAS-08 和网页情报数据的 70,241 条记录上进行了评估。
## 架构
```
flowchart LR
A[Raw Datasets\nEmails + URLs] --> B[Data Normalization\nsrc/prepare_data.py]
B --> C[Indicator Engine\nsrc/indicators.py]
B --> D[Optional ML Scoring\nsrc/ml_classifier.py]
C --> E[Risk Blending\nsrc/pipeline.py]
D --> E
E --> F[Alert Builder\nsrc/response.py]
F --> G[MITRE Mapping\nsrc/mitre_mapping.py]
G --> H[Outputs\ndetections.csv\nalerts.json\nresponse_report.md]
```
## 实测结果
外部综合数据集摘要:
- 总行数:70,241
- 安全:47,312
- 钓鱼:22,929
在带有标签的外部数据上的性能表现:
| 运行任务 | 阈值 | Precision | Recall | F1 | Accuracy |
|---|---:|---:|---:|---:|---:|
| external | 55 | 0.9655 | 0.0024 | 0.0049 | 0.6743 |
| external_t30 | 30 | 0.9153 | 0.9208 | 0.9181 | 0.9463 |
关键结论:
- 阈值 55 非常严格,优先考虑 Precision 而非 Recall。
- 阈值 30 为该数据集提供了平衡的、生产级的分发评估性能。
## 技术栈
- Python
- pandas
- scikit-learn(可选,自动回退到内部的 Naive Bayes)
## 快速开始 (PowerShell)
1. 创建并激活虚拟环境:
```
python -m venv .venv
.\.venv\Scripts\Activate.ps1
```
2. 安装依赖:
```
pip install -r requirements.txt
```
3. 在入门示例上运行规则 + ML:
```
python -m src.pipeline --input data/sample_emails.csv --output-dir reports --threshold 55 --use-ml
```
## 使用外部数据集
规范化并合并 CEAS + 网页数据集:
```
python -m src.prepare_data --ceas-path "CEAS_08.csv/CEAS_08.csv" --web-path "Webpages_Classification_test_data.csv/Webpages_Classification_test_data.csv" --output data/external_combined.csv --max-web-good 30000
```
以更严格的阈值运行 pipeline:
```
python -m src.pipeline --input data/external_combined.csv --output-dir reports/external --threshold 55 --use-ml
```
以平衡的阈值运行 pipeline:
```
python -m src.pipeline --input data/external_combined.csv --output-dir reports/external_t30 --threshold 30 --use-ml
```
评估检测质量:
```
python -m src.evaluate --detections reports/external_t30/detections.csv --run-name external_t30 --output-markdown reports/external_t30/evaluation.md
```
## 输出结果
- reports/*/detections.csv:行级别的风险和分类
- reports/*/alerts.json:SOC 告警工件
- reports/*/response_report.md:人类可读的事件摘要
- reports/*/evaluation.md:量化检测指标
## 展示的面向 SOC 的技能
- 基于 IOC 的检测工程
- 规则调优与阈值校准
- ML 辅助的安全分发评估
- 分析师交接报告撰写
- ATT&CK 对齐的事件文档化
## 项目结构
- src/pipeline.py:编排完整工作流
- src/prepare_data.py:将外部数据集规范化为实验室 schema
- src/indicators.py:钓鱼启发式引擎
- src/ml_classifier.py:ML 评分(sklearn 或回退机制)
- src/response.py:告警和响应工件生成
- src/mitre_mapping.py:ATT&CK 技术映射
- src/evaluate.py:混淆矩阵和质量指标
- docs/lab_guide.md:引导式学习演练
## 注意事项
- 本项目用于教育和作品集展示。
- 它不能替代企业级的邮件安全管控措施。
- 为了保持代码仓库的整洁,生成的报告和大型原始数据集未包含在 git 中。
标签:Apex, Python, TCP/UDP协议, 代码示例, 数据分析, 无后门, 机器学习, 网络安全, 逆向工具, 钓鱼检测, 隐私保护