tsho22/soc-detection-threat-intel-lab

GitHub: tsho22/soc-detection-threat-intel-lab

企业级SOC实验室项目,整合Suricata IDS、ELK Stack和威胁情报自动化富化,实现从网络入侵检测到事件分析响应的完整安全监控工作流。

Stars: 1 | Forks: 0

# 🛡️ SOC 检测与威胁情报实验室 [![Project Status](https://img.shields.io/badge/Status-Complete-success)]() [![Platform](https://img.shields.io/badge/Platform-AWS-orange)]() [![Python](https://img.shields.io/badge/Python-3.12-blue?logo=python)]() [![Suricata](https://img.shields.io/badge/Suricata-8.0.3-orange)]() [![Elasticsearch](https://img.shields.io/badge/Elasticsearch-8.x-green?logo=elasticsearch)]() [![License](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE) ![SOC Lab Architecture](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/0cae482e3d194705.png) ## 📊 项目亮点 - 🎯 已部署 **48,270 条检测规则** (48,253 条 ET Open + 17 条自定义) - 🚨 检测到 **8 个恶意 IP**,置信度为 100%(总计 67,338 份滥用报告) - 🧠 **自动化威胁情报** 富化 (AlienVault OTX + AbuseIPDB) - 📈 在 48 小时内分析了 **683 条安全告警** - 🔍 调查了 **197 个唯一 IP** 并附带完整上下文 - ⚡ 手动威胁分析时间 **减少 90%** ## 🎯 项目目标 本项目展示了端到端的 SOC 分析师能力: - [x] 在 AWS 上部署生产级安全监控基础设施 - [x] 实施带有自定义 Suricata 规则的网络入侵检测 - [x] 集成威胁情报以进行自动化 IOC 富化 - [x] 检测并分析现实世界中的恶意流量模式 - [x] 遵循 NIST Cybersecurity Framework 记录事件响应 - [x] 构建可重复的 SOC Tier 1 分析师工作流 ## 🏗️ 系统架构 ``` ┌─────────────────────────────────────────────────────────────┐ │ AWS EC2 Instance │ │ (Ubuntu 24.04 LTS) │ │ │ │ ┌──────────┐ ┌──────────┐ ┌──────────────────┐ │ │ │ Suricata │───▶│ Logstash │───▶│ Elasticsearch │ │ │ │ IDS │ │ │ │ │ │ │ └──────────┘ └──────────┘ └──────────────────┘ │ │ │ │ │ │ ▼ ▼ │ │ ┌──────────┐ ┌──────────┐ │ │ │ EVE JSON │ │ Kibana │ │ │ │ Logs │ │Dashboard │ │ │ └──────────┘ └──────────┘ │ │ │ │ │ ▼ │ │ ┌──────────┐ Python Scripts ┌──────────────┐ │ │ │ EveBox │◀───────────────────▶│ Threat Intel │ │ │ │ UI │ │ Enrichment │ │ │ └──────────┘ └──────────────┘ │ └─────────────────────────────────────────────────────────────┘ │ ▼ ┌───────────────────────────────┐ │ External Threat Intel APIs │ ├───────────────────────────────┤ │ • AlienVault OTX │ │ • AbuseIPDB │ └───────────────────────────────┘ ``` ### 组件细分 | 组件 | 技术 | 用途 | |-----------|------------|---------| | 🌐 Network IDS | Suricata 8.0.3 | 实时数据包检查与威胁检测 | | 📥 Log Processing | Logstash 8.x | 解析与转换安全事件 | | 💾 Data Storage | Elasticsearch 8.x | 集中式可搜索日志存储库 | | 📊 Visualization | Kibana 8.x | 安全仪表板与分析 | | 🚨 Alert Management | EveBox 0.18.0 | Suricata 专用告警分类界面 | | 🧠 Threat Intel | Python 3.12 | 自动化 IOC 富化流水线 | | ☁️ Infrastructure | AWS EC2 (t3.large) | 可扩展云平台 | ## 🛠️ 技术栈 **基础设施与云** - AWS EC2 (t3.large, Ubuntu 24.04 LTS) - VPC 与 Security Groups - 30GB gp3 SSD 存储 **安全监控** - Suricata 8.0.3 (IDS/IPS) - Elasticsearch 8.19.11 - Logstash 8.x - Kibana 8.x - EveBox 0.18.0 **威胁情报** - AlienVault OTX API - AbuseIPDB API - Python 3.12 (requests, OTXv2, elasticsearch) **开发** - Python 脚本与自动化 - Bash 脚本 - JSON/YAML 配置 - 正则表达式 (检测规则) - Git 版本控制 ## 📁 仓库结构 ``` soc-detection-threat-intel-lab/ ├── README.md # Project overview (you are here) ├── LICENSE # MIT License ├── .gitignore # Git ignore rules │ ├── docs/ │ ├── ARCHITECTURE.md # Detailed system design │ ├── INSTALLATION.md # Step-by-step setup guide │ ├── INCIDENT_REPORT.md # NIST CSF incident documentation │ └── CUSTOM_RULES.md # Detection rule explanations │ ├── configs/ │ ├── suricata/ │ │ └── local.rules # 17 custom Suricata rules │ ├── logstash/ │ │ └── suricata-pipeline.conf # Log processing pipeline │ └── kibana/ │ └── dashboards.ndjson # Security dashboards (optional) │ ├── scripts/ │ ├── threat-intel/ │ │ ├── analyze_alerts.py # Main threat intelligence script │ │ ├── config.py.example # API configuration template │ │ ├── requirements.txt # Python dependencies │ │ └── README.md # Script documentation │ └── attack-simulation/ │ ├── c2_simulation.sh # C2 communication simulation │ ├── web_attacks.sh # Web application attacks │ ├── port_scan_test.sh # Port scanning simulation │ ├── run_all_tests.sh # Master test script │ └── README.md # Testing documentation │ ├── screenshots/ │ ├── architecture-diagram.png │ ├── kibana-dashboard.png │ ├── evebox-alerts.png │ └── threat-intel-report.png │ └── results/ └── enriched_alerts_sample.json # Sample threat intel output ``` ## 🚀 快速开始 ### 前置条件 - AWS 账户(符合 Free Tier 资格) - SSH 客户端(Terminal、PuTTY 等) - 基本的 Linux 命令行知识 - 2-4 小时完成设置 ### 安装 1. **克隆此仓库** ``` git clone https://github.com/tsho22/soc-detection-threat-intel-lab.git cd soc-detection-threat-intel-lab ``` 2. **遵循详细的设置指南** ``` # See complete step-by-step instructions cat docs/INSTALLATION.md ``` 3. **部署 AWS 基础设施** - 启动 EC2 实例 (t3.large, Ubuntu 24.04) - 配置安全组 (SSH, Kibana, EveBox) - 应用自定义安全加固 4. **安装 ELK Stack & Suricata** ``` # Follow installation guide for: # - Elasticsearch setup # - Kibana configuration # - Logstash pipeline # - Suricata IDS deployment ``` 5. **部署自定义检测规则** ``` sudo cp configs/suricata/local.rules /etc/suricata/rules/custom/ sudo systemctl restart suricata ``` 6. **设置威胁情报** ``` cd scripts/threat-intel cp config.py.example config.py # Edit config.py and add your API keys pip install -r requirements.txt python3 analyze_alerts.py ``` ## 🔍 核心功能 ### 1. 自定义检测规则 开发了 **17 条自定义 Suricata 规则**,映射到 MITRE ATT&CK 框架: | 规则名称 | SID | MITRE 技术 | 用途 | |-----------|-----|-----------------|---------| | CUSTOM MALWARE BlackSun User-Agent | 1000001 | T1071.001 | 检测恶意软件 C2 信标 | | CUSTOM MALWARE Metasploit User-Agent | 1000003 | T1203 | 识别漏洞利用工具 | | CUSTOM SCAN Port Scan Detection | 1000004 | T1046 | 检测侦察活动 | | CUSTOM WEB SQL Injection | 1000007-1000008 | T1190 | 捕获 Web 攻击 | | CUSTOM BRUTEFORCE SSH Attempts | 1000014 | T1110 | 识别暴力破解 | | CUSTOM C2 Common Ports | 1000012 | T1071.001 | 监控 C2 流量 | [**📖 查看全部 17 条规则 →**](docs/CUSTOM_RULES.md) ### 2. 自动化威胁情报 基于 Python 的富化流水线: ``` # Workflow Suricata Alert → Extract IPs → Query AlienVault OTX → Query AbuseIPDB → Calculate Threat Score → Assign Verdict → Generate Report ``` **功能特性:** - ✅ 从 Suricata 告警中提取 IP - ✅ 查询 AlienVault OTX 获取威胁脉搏 - ✅ 检查 AbuseIPDB 获取信誉分数 - ✅ 计算综合威胁评分 (0-100) - ✅ 判定结果 (CRITICAL/HIGH/MEDIUM/LOW) - ✅ 生成包含完整上下文的 JSON 报告 - ✅ 将富化数据索引到 Elasticsearch **示例输出:** ``` { "ip": "194.180.48.63", "threat_score": 50, "verdict": "HIGH", "abuseipdb": { "confidence_score": 100, "total_reports": 14659, "country": "PL", "isp": "Neterra Ltd." }, "alert_count": 11 } ``` ### 3. 攻击模拟框架 通过逼真的攻击模拟测试和验证检测能力: ``` # 运行所有攻击模拟 cd scripts/attack-simulation ./run_all_tests.sh ``` **包含的模拟项目:** - 🎯 端口扫描(侦察) - 🎯 SQL 注入攻击 - 🎯 恶意软件 C2 通信 - 🎯 可疑 DNS 查询 - 🎯 SSH 暴力破解 ## 🚨 真实威胁检测 ### 已识别的恶意 IP 在 48 小时的监控期间,检测到 **8 个高置信度恶意 IP**: | IP 地址 | 国家 | 置信度 | 报告数 | 威胁类型 | 操作 | |------------|---------|------------|---------|-------------|--------| | 80.94.92.168 | 🇷🇴 罗马尼亚 | 100% | 55,162 | Spamhaus DROP Listed | 🚫 已拦截 | | 194.180.48.63 | 🇵🇱 波兰 | 100% | 14,659 | 受损主机 | 🚫 已拦截 | | 178.20.210.151 | 🇫🇮 芬兰 | 100% | 12,221 | 活跃威胁情报 | 🚫 已拦截 | | 139.19.117.131 | 🇩🇪 德国 | 100% | 4,909 | SSH 暴力破解 | 🚫 已拦截 | | 18.218.118.203 | 🇺🇸 美国 | 100% | 539 | 协议异常 | 🔍 已调查 | | 206.189.106.27 | 🇳🇱 荷兰 | 100% | 413 | SSH 扫描 | 🚫 已拦截 | | 221.151.84.6 | 🇰🇷 韩国 | 100% | 258 | SSH 暴力破解 | 🚫 已拦截 | | 178.62.243.132 | 🇳🇱 荷兰 | 100% | 108 | SSH 暴力破解 | 🚫 已拦截 | ### 攻击模式分析 **按攻击类型分布:** - 🔴 SSH 暴力破解: 50% (4 个来源) - 🔴 端口扫描: 37.5% (3 个来源) - 🔴 僵尸网络基础设施: 25% (2 个来源) - 🔴 协议异常: 12.5% (1 个来源) **地理位置分布:** - 🌍 欧洲: 75% (6 个 IP) - 🌏 亚洲: 12.5% (1 个 IP) - 🌎 北美: 12.5% (1 个 IP) [**📄 阅读完整事件报告 →**](docs/INCIDENT_REPORT.md) ## 📊 结果与指标 ### 检测性能 | 指标 | 数值 | |--------|-------| | 总检测规则数 | 48,270 (48,253 ET + 17 自定义) | | 已分析告警 | 48 小时内 683 条 | | 已调查唯一 IP 数 | 197 | | 已确认威胁 | 8 (100% 置信度) | | 误报(自定义规则) | 0 | | 平均检测时间 | <2 秒 | | 平均富化时间 | 每个 IP 15-30 秒 | ### 威胁情报 | 指标 | 数值 | |--------|-------| | 已富化 IP | 15 个(含完整上下文) | | 总滥用报告数 | 恶意 IP 相关 67,338 份 | | HIGH 判定 | 8 个 (100% 置信度) | | 准确率 | 已确认威胁 100% | | 节省的手动分析时间 | 减少 90% | ### 系统性能 | 指标 | 数值 | |--------|-------| | 已索引事件 | 2,757+ 条至 Elasticsearch | | 监控期间系统正常运行时间 | 100% | | 平均告警处理时间 | <2 秒 | | 已用存储 | 2,166 个事件占用 8.9MB | ## 💡 关键收获 ### 效果良好的方面 ✅ - **分层防御** - 多种检测机制(签名 + 自定义规则 + 威胁情报)提供了全面的覆盖,并捕获了单层防御可能遗漏的威胁 - **自动化** - Python 脚本将手动威胁富化时间减少了 90%,使重点得以集中在分析而非数据收集上 - **开源** - 利用免费/开源工具(Suricata、ELK、OTX、AbuseIPDB)构建企业级能力,无需许可费用 - **文档** - 详尽的文档促进了知识传递,并使项目可复现,适用于作品集和学习目的 ### 挑战与解决方案 ⚠️ **挑战:** Logstash 对 Suricata 日志文件的权限问题 **解决方案:** 将 logstash 用户添加到 suricata 组,并配置适当的文件权限 **挑战:** OTX API 库与 Python 3.12 的兼容性问题 **解决方案:** 实施直接 REST API 调用作为回退方法 **挑战:** 平衡检测灵敏度与误报率 **解决方案:** 通过阈值调优和验证流量进行迭代测试 **挑战:** t3.large 实例上的资源限制 **解决方案:** 优化 Elasticsearch 堆内存分配并配置适当的 JVM 设置 ### 安全改进 🔒 - ✅ 在 AWS Security Group 层面拦截了 8 个已确认的恶意 IP - ✅ 仅实施基于 SSH 密钥的认证(禁用密码) - ✅ 部署 fail2ban 以进行自动化威胁拦截 - ✅ 限制 Security Group 规则遵循最小权限原则 - ✅ 将日志保留期从 7 天增加到 30 天 - ✅ 启用 unattended-upgrades 进行自动安全补丁更新 ## 🚀 未来增强计划 ### 计划改进项 - [ ] **SOAR 集成** - 使用 TheHive/Cortex 自动化响应剧本 - [ ] **机器学习** - 使用 LSTM 模型实施异常检测以应对零日威胁 - [ ] **蜜罐** - 部署诱饵服务以增强威胁归因和情报收集 - [ ] **红队演练** - 进行对抗性测试以验证和改进防御 - [ ] **合规监控** - 添加 PCI-DSS 和 HIPAA 规则映射以覆盖合规性 ### 待开发技能 - [ ] 恶意软件分析与逆向工程 (x64dbg, IDA Pro) - [ ] 渗透测试与 OSCP 备考 - [ ] 云安全专业化 (AWS Security Specialty 认证) - [ ] 安全自动化与 SOAR 平台开发 - [ ] 高级威胁狩猎技术与假设驱动调查 ## 📸 项目截图 ### Kibana 仪表板 ![Kibana Dashboard](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/2ba3ed2f29194706.png) *显示 48 小时内检测模式的实时告警时间线* ### EveBox 告警界面 ![EveBox Alerts](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/0c1fd7ef33194707.png) *显示优先级安全告警的 SOC 分析师界面* ### 威胁情报报告 ![Threat Intel Report](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/bf6f57b3c2194708.png) *显示恶意 IP 分析的自动化富化结果* ## 🎓 展示的技能 ### 安全运营 - SIEM 部署与管理 - 网络入侵检测 (IDS/IPS) - 日志分析与关联 事件响应工作流 - 威胁狩猎技术 - IOC 提取与分析 ### 威胁情报 - API 集成 (OTX, AbuseIPDB) - 自动化富化流水线 - 威胁行为体归因 - 风险评分方法论 - 情报驱动防御 ### 云与基础设施 - AWS EC2 部署与管理 - Linux 系统管理 - 网络安全架构 - Security Group 配置与加固 - 基础设施即代码 概念 ### 编程与自动化 - Python 自动化与脚本 - 用于部署的 Bash 脚本 - JSON/YAML 配置 - 用于检测的正则表达式 - API 集成与错误处理 - Git 版本控制 ### 安全框架 - NIST Cybersecurity Framework - MITRE ATT&CK 映射 - Cyber Kill Chain 分析 - 事件响应程序 ## 🔐 安全说明 ### API 密钥管理 ⚠️ **切勿将 API 密钥提交到版本控制!** 本仓库使用 `config.py.example` 作为模板。使用方法: 1. 复制示例文件: ``` cp scripts/threat-intel/config.py.example scripts/threat-intel/config.py ``` 2. 将您的 API 密钥添加到 `config.py` 3. 真实的 `config.py` 位于 `.gitignore` 中,不会被提交 ### 获取 API 密钥 **AlienVault OTX:** 1. 在 https://otx.alienvault.com 注册 2. 前往 Settings → API Integration 3. 复制您的 API 密钥 **AbuseIPDB:** 1. 在 https://www.abuseipdb.com/register 注册 2. 前往 Account → API 3. 复制您的 API 密钥(免费层:1000 次查询/天) ## 📄 文档 - **[安装指南](docs/INSTALLATION.md)** - 完整设置说明 - **[架构详情](docs/ARCHITECTURE.md)** - 系统设计与组件 - **[自定义规则](docs/CUSTOM_RULES.md)** - 检测规则文档 - **[事件报告](docs/INCIDENT_REPORT.md)** - NIST CSF 合规文档 ## 📜 许可证 本项目采用 MIT 许可证授权 - 详情请参阅 [LICENSE](LICENSE) 文件。 ## 🤝 贡献 虽然这是一个个人作品集项目,但我欢迎反馈和建议! - 💡 提出问题或改进建议 - 🐛 提交错误报告 - 📖 建议文档改进 - ⭐ 如果您觉得有帮助,请给项目点个 Star! ## 📬 联系方式 ** Hassan Omotosho Folarori ** - 💼 LinkedIn: linkedin.com/in/folatosho258 - 📧 Email: Hassan Omotosho Folarori ## 🙏 致谢 - **Emerging Threats** - Suricata 开放规则集 - **AlienVault OTX** - 社区驱动的威胁情报 - **AbuseIPDB** - IP 信誉数据库 - **Elastic Stack** - 强大的开源 SIEM 平台 - **Suricata** - 高性能网络 IDS/IPS ## ⭐ 表示支持 如果您觉得这个项目有帮助或有趣,请考虑: - ⭐ Star 本仓库 - 🔗 分享给他人 - 💬 提供反馈 *最后更新:2026 年 2 月* **由 Hassan Omotosho Folarori 使用 🛡️ 构建**
标签:AbuseIPDB, AWS, Beacon Object File, DPI, Elasticsearch, ELK Stack, HTTP/HTTPS抓包, IP 地址批量处理, Logstash, Metaprompt, NIST网络安全框架, Python, Suricata, 企业安全, 入侵检测系统, 内容过滤, 威胁情报, 安全实验室, 安全数据湖, 安全运营中心, 密码管理, 开发者工具, 态势感知, 恶意IP检测, 数据丰富, 无后门, 现代安全运营, 网络安全监控, 网络映射, 网络流量分析, 网络资产管理, 自动化威胁分析, 自定义检测规则, 越狱测试, 逆向工具, 驱动开发