Dyddxd/Diploma_Configs
GitHub: Dyddxd/Diploma_Configs
这是一个基于Wazuh SIEM基础设施的学士论文项目,通过集成定制的ProcessTreeViewer插件到OpenSearch Dashboards,实现了对安全事件和进程树的深度可视化分析与监控。
Stars: 0 | Forks: 0
# 集成 ProcessTreeViewer 插件的 Wazuh SIEM 基础设施
## 概述
本仓库包含部署在 **Yandex Cloud** 上基于 Wazuh 的 SIEM 系统的基础设施配置、部署脚本和测试套件。该设置由一个中央 Wazuh 服务器和两个受监控的代理组成,集成了 OpenSearch 用于日志存储,以及一个用于安全事件分析的定制 **ProcessTreeViewer** 插件。
### 核心组件
- **Wazuh Server** — 在单节点上运行的 Manager、Indexer 和 OpenSearch Dashboards
- **Wazuh Agents (x2)** — 基于 `auditd` 的进程事件收集的端点监控
- **OpenSearch + OpenSearch Dashboards** — 日志索引和可视化
- **Filebeat** — 将事件从代理传输到 OpenSearch
- **ProcessTreeViewer Plugin** — 用于交互式进程树可视化的定制 OpenSearch Dashboards 插件
## 架构
```
┌──────────────────────────────────────────────────────────┐
│ Yandex Cloud │
│ │
│ ┌───────────────┐ ┌───────────────┐ │
│ │ Wazuh Agent1 │ │ Wazuh Agent2 │ │
│ │ 10.129.0.30 │ │ 10.129.0.23 │ │
│ │ │ │ │ │
│ │ - auditd │ │ - auditd │ │
│ │ - wazuh-agent│ │ - wazuh-agent│ │
│ └──────┬────────┘ └──────┬────────┘ │
│ │ port 1514 (TCP) │ │
│ └────────┬───────────┘ │
│ ▼ │
│ ┌───────────────────────────┐ │
│ │ Wazuh Server │ │
│ │ 10.129.0.13 │ │
│ │ │ │
│ │ - Wazuh Manager │ │
│ │ - OpenSearch (:9200) │ │
│ │ - Filebeat │ │
│ │ - OpenSearch Dashboards │ │
│ │ (:5601) │ │
│ │ └─ ProcessTreeViewer │ │
│ └───────────────────────────┘ │
└──────────────────────────────────────────────────────────┘
```
## 系统要求
| Component | OS | CPU | RAM | Disk |
|-----------------|---------------|------|------|------|
| Wazuh Server | Ubuntu 24.04 | 8 | 8 GB | 50 GB|
| Wazuh Agent 1 | Ubuntu 24.04 | 2 | 4 GB | 40 GB|
| Wazuh Agent 2 | Ubuntu 24.04 | 2 | 4 GB | 40 GB|
## 仓库结构
```
.
├── wazuh-server/ # Server-side configurations
│ ├── var-ossec-etc-ossec.conf # Wazuh Manager main config
│ ├── wazuh-server-opensearch.yml # OpenSearch configuration
│ ├── wazuh-server-opensearch.service # OpenSearch systemd service
│ ├── wazuh-server-opensearch-dashboards.service # Dashboards systemd service
│ ├── wazuh-server-filebeat.yml # Filebeat pipeline config
│ ├── wazuh-server-filebeat.service # Filebeat systemd service
│ ├── wazuh-server-local-rules.xml # Custom Wazuh detection rules
│ ├── wazuh-server-preexec-opensearch.txt # OpenSearch pre-setup script
│ ├── wazuh-server-install-plugin.sh # Plugin installation script
│ └── wazuh-server-uninstall-plugin.sh # Plugin uninstallation script
│
├── wazuh-agent1/ # Agent 1 configurations
│ ├── var-ossec-etc-ossec.conf # Wazuh Agent config
│ └── wazuh-agent1-auditd-rules.txt # Auditd monitoring rules
│
├── wazuh-agent2/ # Agent 2 configurations
│ ├── var-ossec-etc-ossec.conf # Wazuh Agent config
│ └── wazuh-agent2-auditd-rules.txt # Auditd monitoring rules
│
├── test-scripts/ # Security event test scripts
│ ├── green-test-script.sh # Safe system info collection
│ ├── yellow-test-script.sh # Reconnaissance simulation
│ ├── red-test-script.sh # Privilege escalation simulation
│ ├── process-tree-hierarchy-test.sh # Deep process tree test
│ ├── process-branching-test.sh # Wide branching test
│ ├── process-chain-test.sh # Sequential chain test
│ ├── process-time-filter-test.sh # Time-based filtering test
│ └── process-user-color-test.sh # User color coding test
│
├── GENERAL_INFRASTRUCTURE_RUS.md # Infrastructure documentation (RU)
├── GENERAL_INFRASTRUCTURE_ENG.md # Infrastructure documentation (EN)
└── plugin-frontend.png # Plugin UI screenshot
```
## 数据流
1. **Collection** — 每个代理上的 `auditd` 捕获进程执行事件(`execve` 系统调用、文件访问等)
2. **Transport** — Wazuh Agent 将事件发送到 Wazuh Manager(端口 1514,TCP,AES 加密)
3. **Processing** — Wazuh Manager 应用检测规则并转发告警
4. **Indexing** — Filebeat 将处理后的告警传输到 OpenSearch(端口 9200,HTTPS)
5. **Visualization** — 带有 ProcessTreeViewer 插件的 OpenSearch Dashboards 渲染交互式进程树
## 测试脚本
`test-scripts/` 目录包含用于验证监控管道的脚本:
| Script | Severity | Purpose |
|---------------------|----------|--------------------------------------------|
| `green-test-script.sh` | Low | 系统信息收集(运行时间、磁盘、用户) |
| `yellow-test-script.sh` | Medium | 侦察模拟(读取 passwd、netstat) |
| `red-test-script.sh` | High | 攻击模拟(读取 shadow、/tmp 执行、sudo) |
| `process-tree-*.sh` | Info | ProcessTreeViewer 插件功能测试 |
可以通过 `cron` 安排脚本以进行持续测试:
```
# /etc/crontab 示例
*/5 * * * * root /path/to/test-scripts/green-test-script.sh
```
## 插件访问
部署后,可以通过以下地址访问 ProcessTreeViewer:
```
http://:5601/app/processTreeViewer
```
## 自定义检测规则
位于 `wazuh-server/wazuh-server-local-rules.xml`:
- **Rule 100001** — SSH 认证失败告警(来自特定 IP)
- **Rule 100002** — Auditd 进程创建检测(`execve` 系统调用跟踪)
- 合规性映射:PCI DSS,GDPR
## 参考资料
- [Wazuh 文档](https://documentation.wazuh.com/current/)
- [OpenSearch 文档](https://docs.opensearch.org/latest/)
- [Yandex Cloud](https://cloud.yandex.com/)
## 许可证
本项目是学士学位论文的一部分。配置文件仅供教育和参考用途。
标签:auditd, Cutter, EDR, Filebeat, OpenSearch Dashboards, ProcessTreeViewer, Wazuh, Wazuh Agent, Wazuh Server, Yandex Cloud, 审计日志, 对抗机器学习, 特权提升, 端点检测与响应, 网络安全, 脆弱性评估, 脱壳工具, 自动化部署, 进程树可视化, 隐私保护