rafamss/splunk-automation
GitHub: rafamss/splunk-automation
Splunk自动化工具包,提供多格式日志生成器、安装脚本和最佳实践,用于快速搭建安全培训环境并生成真实训练数据。
Stars: 1 | Forks: 0
# Splunk 自动化工具包
用于 Splunk Enterprise 环境的自动化工具:安装、配置、实验室日志生成以及运维最佳实践。
专为安全专业人员、讲师和 SOC 团队打造,用于快速搭建环境、生成真实的训练数据并标准化部署。
## 仓库结构
```
splunk_automation/
├── tools/ # Ferramentas operacionais
│ └── log_generator.py # ✅ Gerador multi-formato de logs
├── scripts/ # Automação de instalação (em desenvolvimento)
│ ├── download.sh
│ ├── install.sh
│ └── configure.sh
├── apps/ # Splunk apps prontas para deploy (em desenvolvimento)
│ └── deployment_client/
├── docs/ # Documentação detalhada (em desenvolvimento)
│ ├── prerequisites.md
│ ├── installation-guide.md
│ └── version-history.md
├── config.example.env # Variáveis de configuração (em desenvolvimento)
└── README.md
```
## 日志生成器
用于 Splunk 实验室、SOC 培训和事件模拟的真实日志生成器。支持六种格式,可注入可配置的可疑事件,并以批量模式或持续流模式运行。
**无外部依赖**——仅使用纯 Python 3.10+ 即可运行。
### 支持的格式
| 格式 | 标志 | 描述 |
|---|---|---|
| Windows Event Log | `windows` | XML 格式,包含真实 EventID(4624、4625、4688、4720、1102 等) |
| Syslog RFC 3164 | `syslog` | 计算的 PRI、设施/严重性、应用程序如 sshd、cron、sudo |
| Fortinet FortiGate | `fortinet` | 原生 key=value 格式,包含 UTM 和 IPS 字段 |
| Cisco ASA | `cisco_asa` | 标准消息 ID 的 syslog 格式(%ASA-x-xxxxxx) |
| Check Point | `checkpoint` | LEA/Log Exporter 格式,包含安全功能模块 |
| Palo Alto Networks | `paloalto` | 原生 CSV 格式(TRAFFIC、THREAT、URL filtering) |
### 快速使用
```
# 生成 500 个 Windows 日志,含 10% 可疑事件
python3 tools/log_generator.py -t windows -c 500 -s 10
# 持续 Syslog,每秒 20 个事件,每 30 秒爆发一次
python3 tools/log_generator.py -t syslog -m continuous -r 20 --burst --burst-size 100
# 混合防火墙记录到文件
python3 tools/log_generator.py -t fortinet,cisco_asa,checkpoint,paloalto -c 1000 -o logs.txt
# 攻击场景:25% 可疑事件,持续流式传输
python3 tools/log_generator.py -t windows,syslog -m continuous -r 15 -s 25
```
### 参数
| 参数 | 默认值 | 描述 |
|---|---|---|
| `-t, --type` | — | 日志类型,逗号分隔 |
| `-c, --count` | `100` | 单次模式的事件数量 |
| `-m, --mode` | `single` | `single`(批量)或 `continuous`(流式) |
| `-r, --rate` | `5` | 持续模式下每秒事件数 |
| `--burst` | off | 启用周期性事件峰值 |
| `--burst-size` | `50` | 每个 burst 的事件数 |
| `--burst-interval` | `30` | burst 之间的间隔(秒) |
| `-s, --suspicious-rate` | `5` | 注入的可疑事件百分比 |
| `-o, --output` | stdout | 输出文件路径 |
### 注入的可疑事件
恶意事件会注入到正常流中,并标记 `` 或 `[SUSPICIOUS]`,便于在课程中定位。类型包括:
**Windows:** 暴力破解尝试(4625)、可疑账户创建(4720)、权限提升(4672)、审计日志清空(1102)、执行攻击性工具如 mimikatz、certutil、powershell encoded、psexec、安装恶意服务(4697)、添加到 Administrators 组(4732)。
**Linux:** 来自恶意 IP 的 SSH 登录失败、未经授权的用户执行 sudo、反弹 shell、侦察命令(nmap, cat /etc/shadow)、通过 crontab 持久化、通过 scp 数据外泄。
**防火墙:** 来自/到威胁情报 IP 的连接、端口扫描、IPS/IDS 签名、C2 通信、数据外泄(高字节量)、访问恶意 URL、检测到恶意软件(Cobalt Strike, Emotet, TrickBot)、URL 过滤策略违规。
## 路线图
### 自动化安装(`scripts/`)
重写下载和安装脚本,支持 Splunk 9.x、SHA-512 校验、自动检测发行版和架构(x86_64/ARM64),无硬编码凭据。
- [ ] `download.sh` — 带完整性校验的参数化下载
- [ ] `install.sh` — 安装(创建用户、systemd unit、基础加固)
- [ ] `configure.sh` — 安装后配置(SSL、限制、indexes、outputs.conf)
### Splunk 应用(`apps/`)
可直接通过 Deployment Server 部署的应用。
- [ ] `deployment_client` — 参数化的 deploymentclient.conf
- [ ] `base_inputs` — Linux 和 Windows 的默认 inputs.conf
- [ ] `base_outputs` — 带负载均衡的 outputs.conf
### 文档(`docs/`)
- [ ] 前置条件和兼容性矩阵
- [ ] 安装分步指南
- [ ] 版本历史和下载 URL
### CI/CD(`.github/workflows/`)
- [ ] ShellCheck 用于脚本验证
- [ ] Python 代码检查(ruff/flake8)
- [ ] 日志生成器的自动化测试
## 要求
- **Python** 3.10+(日志生成器)
- **Bash** 4+(安装脚本)
- **支持的系统:** RHEL/CentOS 7+、Ubuntu 18.04+、Debian 10+
## 许可证
GPL-3.0 — 详见 [LICENSE](LICENSE)。
标签:Check Point, Cisco ASA, Fortinet, PB级数据处理, Python, Syslog, Windows事件日志, 事件模拟, 元数据收集, 培训工具, 安全实验室, 安全检查, 安全运维, 安装脚本, 应用安全, 无后门, 日志格式, 日志生成, 最佳实践, 特权提升, 网络调试, 自动化, 自动化部署, 逆向工具, 配置脚本