集成Wazuh的智能SOC系统:AI驱动安全运营中心实战指南

本文详细介绍了一个集成Wazuh SIEM的智能安全运营中心系统,包含完整的系统架构、快速部署指南、攻击模拟环境配置以及AI驱动的威胁检测与响应机制,为网络安全专业人员提供实用的技术实施方案。

Agentic SOC System with Wazuh Integration

一个结合AI驱动调查与真实SIEM集成的全面安全运营中心系统,使用Wazuh实现。该系统提供自动化的威胁检测、调查和响应能力。

🏗️ 架构

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│   前端          │    │   后端API       │    │   Wazuh SIEM    │
│   (React)       │◄──►│   (FastAPI)     │◄──►│   (Manager)     │
└─────────────────┘    └─────────────────┘    └─────────────────┘
                                │                        │
                                ▼                        ▼
                       ┌─────────────────┐    ┌─────────────────┐
                       │   SOC代理       │    │   测试虚拟机    │
                       │   (AI驱动)      │    │   (Ubuntu)      │
                       └─────────────────┘    └─────────────────┘
                       ┌─────────────────┐
                       │   MCP服务器     │
                       │   (SIEM/EDR/NDR)│
                       └─────────────────┘

🚀 快速开始

前置要求

  • macOS (在macOS 14+上测试)
  • Docker Desktop
  • Docker Compose
  • Python 3.8+
  • Node.js 16+
  • Git

安装

选项1:完整设置(包含Wazuh SIEM)

  1. 克隆仓库

    1
    2
    
    git clone 
    cd animus
    
  2. 运行完整设置脚本

    1
    
    ./scripts/setup.sh
    

    注意:Wazuh镜像较大(约3GB),根据网络连接可能需要10-30分钟下载。

  3. 检查下载进度(如果需要)

    1
    
    ./scripts/check-download-progress.sh
    

选项2:轻量设置(不包含Wazuh - 更快)

为了更快的设置和开发,不包含Wazuh SIEM:

  1. 克隆仓库

    1
    2
    
    git clone 
    cd animus
    
  2. 运行轻量设置脚本

    1
    
    ./scripts/setup-light.sh
    
  3. 启动开发环境

    1
    
    ./scripts/start-dev.sh
    
  4. 运行攻击模拟(仅完整设置)

    1
    
    ./scripts/run-attack-sim.sh
    

📋 服务

核心服务

  • SOC代理API (端口8000):带有调查引擎的主要后端API
  • Wazuh管理器 (端口55000):用于安全事件收集的SIEM
  • Wazuh仪表板 (端口5601):Wazuh管理的Web UI
  • PostgreSQL (端口5432):存储警报和调查的数据库

测试环境

  • Ubuntu测试虚拟机 (端口8081-8083):用于攻击模拟的易受攻击系统
  • Wazuh代理:安装在测试虚拟机上用于日志收集

MCP服务器

  • SIEM服务器:与Wazuh集成获取实时安全数据
  • EDR服务器:模拟端点检测和响应
  • NDR服务器:模拟网络检测和响应
  • 威胁情报服务器:模拟威胁情报源
  • 资产服务器:模拟资产管理
  • 漏洞服务器:模拟漏洞扫描

🔧 配置

环境变量

创建.env文件,包含以下变量:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
# 数据库
DATABASE_URL=postgresql+asyncpg://postgres:postgres@localhost:5432/soc_db

# AI配置
AI_PROVIDER=anthropic
ANTHROPIC_API_KEY=your_anthropic_api_key
OPENAI_API_KEY=your_openai_api_key

# Wazuh配置
WAZUH_MANAGER_URL=http://localhost:55000
WAZUH_API_USER=wazuh-wui
WAZUH_API_PASSWORD=wazuh-wui

# 测试环境
WAZUH_AGENT_KEY=your_wazuh_agent_key

Wazuh代理注册

  1. 访问Wazuh仪表板:https://localhost:5601
  2. 转到管理 → 代理
  3. 添加新代理,包含以下详细信息:
    • 名称:ubuntu-test-1
    • IP:172.20.0.10(或你的测试虚拟机IP)
    • 组:ubuntu

🎯 攻击模拟

系统包含全面的攻击模拟能力:

Ubuntu测试虚拟机

每个测试虚拟机运行:

  • DVWA(Damn Vulnerable Web Application)
  • SSH服务器,带有弱凭据
  • Wazuh代理用于日志收集
  • 攻击脚本用于自动化模拟

攻击类型

  1. SSH暴力破解:多次失败的登录尝试
  2. Web攻击:SQL注入、XSS、目录遍历
  3. 端口扫描:网络侦察模拟
  4. 文件活动:可疑文件创建和访问
  5. 权限提升:尝试获取提升权限

运行模拟

1
2
3
4
5
# 启动持续攻击模拟
./scripts/run-attack-sim.sh

# 在测试虚拟机上运行特定攻击
docker exec ubuntu-test-1 /opt/attack-scripts/start_attacks.sh

🔍 监控和调查

前端仪表板

访问React前端 http://localhost:3000 查看:

  • 实时警报:来自Wazuh的实时安全警报
  • 调查状态:AI驱动调查进度
  • 系统指标:性能和健康指标
  • 攻击时间线:安全事件的时间顺序视图

Wazuh仪表板

访问Wazuh https://localhost:5601 查看:

  • 安全事件:原始安全日志和警报
  • 代理状态:监控系统的健康状态
  • 规则管理:检测规则和配置
  • 报告:安全报告和分析

API端点

SOC代理提供RESTful API:

  • GET /api/v1/webhooks/alerts - 列出安全警报
  • GET /api/v1/investigations - 列出调查
  • GET /api/v1/reports - 列出调查报告
  • POST /api/v1/webhooks/alerts - 提交新警报
  • GET /health - 系统健康检查

🛠️ 开发

项目结构

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
animus/
├── api/                    # 后端API端点
├── core/                   # 核心SOC代理逻辑
├── database/               # 数据库模型和连接
├── frontend/               # React前端应用
├── mcp_servers/            # MCP服务器实现
├── simulator/              # 攻击模拟工具
├── test-environments/      # 测试虚拟机配置
├── scripts/                # 部署和实用脚本
└── config/                 # 配置文件

添加新攻击场景

  1. test-environments/ubuntu/attack_scripts/ 中创建攻击脚本
  2. 更新 start_attacks.sh 包含新场景
  3. scripts/run-attack-sim.sh 中添加相应的警报生成

扩展MCP服务器

  1. mcp_servers/ 中创建新服务器
  2. 实现所需的MCP协议方法
  3. 将服务器添加到 docker-compose.yml
  4. 更新SOC代理以使用新服务器

🔧 故障排除

常见问题

  1. Wazuh镜像下载时间过长

    1
    2
    3
    4
    5
    6
    7
    8
    
    # 检查下载进度
    ./scripts/check-download-progress.sh
    
    # 改用轻量设置
    ./scripts/setup-light.sh
    
    # 或手动拉取镜像并显示进度
    docker pull wazuh/wazuh-indexer:4.7.0
    
  2. Wazuh无法启动

    1
    2
    
    docker-compose logs wazuh-manager
    # 检查端口冲突和内存问题
    
  3. 测试虚拟机无法访问

    1
    2
    
    docker-compose ps
    # 确保所有容器都在运行
    
  4. SOC代理API错误

    1
    2
    
    curl http://localhost:8000/health
    # 检查API连接性
    
  5. 前端无法加载

    1
    2
    
    cd frontend && npm run dev
    # 检查Node.js和依赖问题
    
  6. Docker拉取卡住

    1
    2
    3
    4
    5
    6
    
    # 检查Docker守护进程状态
    docker info
    
    # 如果需要,重启Docker Desktop
    # 或尝试使用不同的注册表拉取
    docker pull --platform linux/amd64 wazuh/wazuh-indexer:4.7.0
    

健康检查

运行健康检查脚本验证所有服务:

1
./scripts/health-check.sh

日志

查看特定服务的日志:

1
2
3
4
5
6
# 所有服务
docker-compose logs -f

# 特定服务
docker-compose logs -f soc-agent
docker-compose logs -f wazuh-manager

📚 文档

🤝 贡献

  1. Fork仓库
  2. 创建特性分支
  3. 进行更改
  4. 如果适用,添加测试
  5. 提交拉取请求

📄 许可证

本项目采用MIT许可证 - 详见LICENSE文件。

🙏 致谢

  • Wazuh 提供开源SIEM平台
  • FastAPI 提供后端框架
  • React 提供前端框架
  • MCP 提供服务器通信协议
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计