Agentic SOC System with Wazuh Integration
一个结合AI驱动调查与真实SIEM集成的全面安全运营中心系统,使用Wazuh实现。该系统提供自动化的威胁检测、调查和响应能力。
🏗️ 架构
|
|
🚀 快速开始
前置要求
- macOS (在macOS 14+上测试)
- Docker Desktop
- Docker Compose
- Python 3.8+
- Node.js 16+
- Git
安装
选项1:完整设置(包含Wazuh SIEM)
-
克隆仓库
1 2git clone cd animus -
运行完整设置脚本
1./scripts/setup.sh注意:Wazuh镜像较大(约3GB),根据网络连接可能需要10-30分钟下载。
-
检查下载进度(如果需要)
1./scripts/check-download-progress.sh
选项2:轻量设置(不包含Wazuh - 更快)
为了更快的设置和开发,不包含Wazuh SIEM:
-
克隆仓库
1 2git clone cd animus -
运行轻量设置脚本
1./scripts/setup-light.sh -
启动开发环境
1./scripts/start-dev.sh -
运行攻击模拟(仅完整设置)
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文件,包含以下变量:
|
|
Wazuh代理注册
- 访问Wazuh仪表板:https://localhost:5601
- 转到管理 → 代理
- 添加新代理,包含以下详细信息:
- 名称:
ubuntu-test-1 - IP:
172.20.0.10(或你的测试虚拟机IP) - 组:
ubuntu
- 名称:
🎯 攻击模拟
系统包含全面的攻击模拟能力:
Ubuntu测试虚拟机
每个测试虚拟机运行:
- DVWA(Damn Vulnerable Web Application)
- SSH服务器,带有弱凭据
- Wazuh代理用于日志收集
- 攻击脚本用于自动化模拟
攻击类型
- SSH暴力破解:多次失败的登录尝试
- Web攻击:SQL注入、XSS、目录遍历
- 端口扫描:网络侦察模拟
- 文件活动:可疑文件创建和访问
- 权限提升:尝试获取提升权限
运行模拟
|
|
🔍 监控和调查
前端仪表板
访问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- 系统健康检查
🛠️ 开发
项目结构
|
|
添加新攻击场景
- 在
test-environments/ubuntu/attack_scripts/中创建攻击脚本 - 更新
start_attacks.sh包含新场景 - 在
scripts/run-attack-sim.sh中添加相应的警报生成
扩展MCP服务器
- 在
mcp_servers/中创建新服务器 - 实现所需的MCP协议方法
- 将服务器添加到
docker-compose.yml - 更新SOC代理以使用新服务器
🔧 故障排除
常见问题
-
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 -
Wazuh无法启动
1 2docker-compose logs wazuh-manager # 检查端口冲突和内存问题 -
测试虚拟机无法访问
1 2docker-compose ps # 确保所有容器都在运行 -
SOC代理API错误
1 2curl http://localhost:8000/health # 检查API连接性 -
前端无法加载
1 2cd frontend && npm run dev # 检查Node.js和依赖问题 -
Docker拉取卡住
1 2 3 4 5 6# 检查Docker守护进程状态 docker info # 如果需要,重启Docker Desktop # 或尝试使用不同的注册表拉取 docker pull --platform linux/amd64 wazuh/wazuh-indexer:4.7.0
健康检查
运行健康检查脚本验证所有服务:
|
|
日志
查看特定服务的日志:
|
|
📚 文档
🤝 贡献
- Fork仓库
- 创建特性分支
- 进行更改
- 如果适用,添加测试
- 提交拉取请求
📄 许可证
本项目采用MIT许可证 - 详见LICENSE文件。