tsho22/soc-detection-threat-intel-lab
GitHub: tsho22/soc-detection-threat-intel-lab
企业级SOC实验室项目,整合Suricata IDS、ELK Stack和威胁情报自动化富化,实现从网络入侵检测到事件分析响应的完整安全监控工作流。
Stars: 1 | Forks: 0
# 🛡️ SOC 检测与威胁情报实验室
[]()
[]()
[]()
[]()
[]()
[](LICENSE)

## 📊 项目亮点
- 🎯 已部署 **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 仪表板

*显示 48 小时内检测模式的实时告警时间线*
### EveBox 告警界面

*显示优先级安全告警的 SOC 分析师界面*
### 威胁情报报告

*显示恶意 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检测, 数据丰富, 无后门, 现代安全运营, 网络安全监控, 网络映射, 网络流量分析, 网络资产管理, 自动化威胁分析, 自定义检测规则, 越狱测试, 逆向工具, 驱动开发