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协议, 代码示例, 数据分析, 无后门, 机器学习, 网络安全, 逆向工具, 钓鱼检测, 隐私保护