arihantdalai/soc-lab-suricata-elk
GitHub: arihantdalai/soc-lab-suricata-elk
基于Suricata IDS与Elastic Stack构建的虚拟SOC实验环境,实现网络入侵检测、日志集中采集与安全事件可视化分析的完整工作流。
Stars: 2 | Forks: 0
# 虚拟 SOC 实验环境
## Suricata IDS 集成 Elastic SIEM Stack
## 项目摘要
本项目展示了使用开源安全工具设计、部署和验证虚拟安全运营中心 (SOC) 实验环境的过程。
该实验室的目标是:
- 部署网络入侵检测系统 (Suricata)
- 将其与 SIEM 平台 (Elastic Stack) 集成
- 模拟侦察攻击
- 检测、转发和可视化安全警报
- 验证端到端威胁检测工作流
该实验室成功检测到侦察扫描(例如 Nmap SYN 扫描)并在 Kibana 中可视化警报。
## 目标
- 配置安全的虚拟网络环境
- 将 Suricata 部署为网络 IDS
- 启用和管理威胁检测规则
- 从攻击者 VM 模拟攻击流量
- 使用 Filebeat 将 IDS 日志转发到 Elasticsearch
- 在 Kibana 中可视化和分析警报
- 验证实时检测能力
## 实验架构
### 架构概述
1. 攻击者 VM 生成恶意或测试网络流量。
2. Suricata IDS 服务器监控流量并写入警报/日志。
3. Filebeat 收集 Suricata 日志并将其传送到 Elasticsearch。
4. Elasticsearch 索引并存储安全事件。
5. Kibana 可视化事件以供调查和监控。

## 组件
### 攻击机
- OS: Ubuntu 24.04
- 工具: Nmap
- 角色: 模拟侦察攻击
### IDS 服务器
- OS: Ubuntu 24.04
- Suricata
- Elasticsearch 8.x
- Kibana 8.x
- Filebeat
## 环境设置
### 虚拟化平台
- Oracle VirtualBox
- Host-Only Networking 模式
- 网络范围: `192.168.56.0/24`
### 机器配置
#### IDS 服务器
- RAM: 15 GB
- OS: Ubuntu 24.04 LTS
- 监控接口: `enp0s8`

#### 攻击者 VM
- RAM: 10 GB
- OS: Ubuntu 24.04 LTS

## 网络配置
### 适配器配置
- 适配器 1: Host-Only Adapter (启用混杂模式)
- 适配器 2: NAT (用于软件包下载的互联网访问)
### 分配的 IP 地址
- IDS 服务器: `192.168.56.103`
- 攻击者 VM: `192.168.56.102`
### 连接验证
```
ping 192.168.56.103
tcpdump -i enp0s8
```
## Suricata 部署
### 安装
```
sudo apt update
sudo apt install suricata -y
```
### 规则管理
启用了 Emerging Threats Open 规则集:
```
sudo suricata-update enable-source et/open
sudo suricata-update update-sources
sudo suricata-update
```
加载的规则:~48,000+ 条检测规则。
### 接口配置
配置 Suricata 以监控 `enp0s8`。
验证:
```
sudo suricata -T -c /etc/suricata/suricata.yaml -i enp0s8
```

### 服务验证
```
sudo systemctl status suricata
```

确认处于活动并运行状态。
## 攻击模拟
从攻击者 VM 生成的攻击流量:
```
nmap -sS 192.168.56.103
nmap -A 192.168.56.103
```

### 观察到的检测
- ET SCAN NMAP OS Detection Probe
- TCP SYN 扫描模式
- 侦察警报
验证警报位于:
- `/var/log/suricata/fast.log`
- `/var/log/suricata/eve.json`

## Elastic Stack 部署
### Elasticsearch
配置为单节点集群:
```
discovery.type: single-node
```
验证集群状态:
```
curl -k -u elastic: https://localhost:9200
```

集群返回了健康响应。
### Kibana
使用注册令牌连接到 Elasticsearch。

通过以下地址验证访问:
`http://192.168.56.103:5601`
创建数据视图:
`filebeat-*`


## Filebeat 配置
### 模块激活
```
sudo filebeat modules enable suricata
```
启用 eve 文件集:
```
enabled: true
var.paths: ["/var/log/suricata/eve.json"]
```
### 设置
```
sudo filebeat setup
```
### 启动服务
```
sudo systemctl enable filebeat
sudo systemctl start filebeat
```

验证摄取:
```
sudo filebeat test output
```

## 日志流验证
确认完整管道:
1. 执行 Nmap 扫描
2. Suricata 生成警报
3. `eve.json` 更新
4. Filebeat 转发日志
5. Elasticsearch 索引事件
6. Kibana 显示检测



## 检测分析
示例警报:
- ET SCAN NMAP OS Detection Probe
映射到 MITRE ATT&CK:
- T1595 - Active Scanning
- T1046 - Network Service Scanning
- 严重性: Medium
- 分类: Attempted Information Leak


## 故障排除
设置过程中解决的问题:
- Suricata 接口不匹配
- 缺少规则集加载
- Elasticsearch 引导错误
- Kibana 认证问题
- Filebeat 模块配置错误 (eve 文件集已禁用)
使用的诊断命令:
```
systemctl status
journalctl -u
```
## 展示的技能
- 网络配置
- IDS 部署和规则管理
- SIEM 集成
- 日志管道故障排除
- 威胁检测验证
- Elastic 安全架构
## 成果
成功实现了一个可工作的 SOC 实验室,能够:
- 检测侦察攻击
- 集中 IDS 日志
- 可视化安全事件
- 执行初步威胁调查
该实验室模拟了企业环境中使用的真实 SOC 基础设施。
## 未来增强
- 添加 Zeek 用于网络分析
- 添加 Wazuh 用于基于主机的检测
- 在 Kibana 中创建自动检测规则
- 构建自定义仪表板
- 实施警报邮件通知
- 使用 Docker 部署
标签:AMSI绕过, CTI, Elasticsearch, Elastic Stack, ELK, Filebeat, Metaprompt, MIT许可证, Nmap, Suricata, Ubuntu 24.04, VirtualBox, 仿真环境, 入侵检测系统, 威胁检测, 安全告警, 安全数据湖, 安全运营中心, 实验室环境, 密码管理, 对抗机器学习, 扫描检测, 插件系统, 日志可视化, 流量重放, 现代安全运营, 端到端工作流, 网络安全, 网络映射, 虚拟SOC实验室, 虚拟驱动器, 越狱测试, 隐私保护