fir3storm/wazuh-rule-master
GitHub: fir3storm/wazuh-rule-master
Wazuh 规则生成器,自动生成 Wazuh 安全监控规则。
Stars: 0 | Forks: 0
# Wazuh 规则生成器
## 概述
**Wazuh 规则生成器** 是一个 Python 工具,可以自动生成 Wazuh 安全监控规则,用于检测常见的安全事件、认证失败、文件完整性更改、提权尝试等。
它允许您快速从预定义的模式、命令行参数或配置文件中创建检测规则,无需手动编写 XML。
## 功能
- **快速规则生成** - 预建规则模板,适用于常见场景
- **基于模式的生成** - 将日志模式转换为 Wazuh 规则
- **分类规则** - 按类别(syslog、audit、file_integrity 等)组织规则
- **配置文件支持** - 从 JSON 配置文件加载设置
- **批量模式** - 从列表中生成多个规则
- **输出选项** - 保存到文件或打印到 stdout
- **级别自定义** - 为每个规则设置检测严重级别
## 安装
除了 Python 3.x 以外,无需任何外部依赖:
```
# 确保 yaml 可用(可选)
pip install pyyaml
# 可选丰富输出
pip install pygments
```
## 快速入门
### 生成所有 28 个类别
```
# 生成所有类别的快速规则
python wazuh_rule_generator.py -q -o quick_rules.txt
# 或使用扩展规则文件
python wazuh_rule_generator.py -q -o quick_rules.txt
# 共28个类别
python wazuh_rule_generator.py -q -o all_rules_28.txt
```
- 网络入侵(级别 1)
- SQL 注入(级别 1)
- 钓鱼尝试(级别 1)
- DNS 隧道(级别 1)
- 代理滥用(级别 1)
- 恶意软件检测(级别 1)
- 进程注入(级别 1)
- 认证失败(级别 1)
- 端口扫描(级别 1)
- VPN 突破(级别 1)
- 零日攻击(级别 1)
- 恶意文件(级别 1)
- 合规违规(级别 2)
- SIEM 警报(级别 3)
- 威胁情报(级别 1)
- 可疑用户(级别 2)
### 从模式生成
```
# 从模式文件生成规则
python wazuh_rule_generator.py -p -o rules.txt
# 或编程生成
python -c "
import wazuh_rule_generator
generator = wazuh_rule_generator.WazuhRuleGenerator()
rule = generator.generate_from_pattern('syslog:authentication failure; hostname=any', 'output.txt')
print(rule)
"
```
### 生成自定义规则
```
import wazuh_rule_generator
generator = wazuh_rule_generator.WazuhRuleGenerator()
# 生成自定义规则
rule = generator.generate_rule(
category='syslog',
title='Authentication Failure',
username='* authentication',
level='1',
description='Detect failed authentication attempts'
)
print(rule)
```
### 命令行选项
```
python wazuh_rule_generator.py -h
```
**可用选项:**
| 选项 | 描述 |
|--------|-----------|
| `-c CATEGORY` | 规则类别(默认:syslog) |
| `-r RULE` | 规则规范 |
| `-o OUTPUT` | 输出文件(默认:rules.txt) |
| `-w` | 写入输出文件 |
| `-p` | 从模式文件生成 |
| `-q` | 生成快速规则 |
| `-C CATEGORY` | 规则类别(替代语法) |
## 使用示例
### 示例 1:生成多个快速规则
```
import wazuh_rule_generator
generator = wazuh_rule_generator.WazuhRuleGenerator()
configs = [
{'category': 'syslog', 'title': 'Auth failure', 'username': '* authentication', 'level': '1'},
{'category': 'file_integrity', 'title': 'File modification', 'path': '* mod', 'level': '1'},
{'category': 'syslog', 'title': 'Brute force', 'username': '* failed password', 'level': '1'},
]
rules = [generator.generate_rule(**c) for c in configs]
with open('wazuh_quick_rules.txt', 'w') as f:
for rule in rules:
f.write(rule + '\n')
print(f'Generated {len(rules)} rules')
```
### 示例 2:从模式字符串生成
```
generator = wazuh_rule_generator.WazuhRuleGenerator()
pattern = 'syslog:authentication failure; hostname=any; level=1'
rule = generator.generate_from_pattern(pattern, 'output.txt')
print(rule)
```
### 示例 3:加载配置
```
// config.json
{
"rule_id_start": 10050,
"level": "2",
"categories": ["syslog", "audit", "file_integrity"]
}
```
```
generator = wazuh_rule_generator.WazuhRuleGenerator(config_file='config.json')
```
### 示例 4:批量规则生成
```
configs = [
{'category': 'syslog', 'title': 'Rule 1', 'username': 'user1', 'level': '3'},
{'category': 'syslog', 'title': 'Rule 2', 'username': 'user2', 'level': '2'},
]
generator.batch_mode = True
for config in configs:
generator.add_batch_rule(config)
generator.generate_batch(configs, 'batch_rules.txt')
```
## 完整类别列表(28 个类别)
| # | 类别 | 字段 |
|---|---|---|
| 1 | syslog | hostname, username, remote_addr, path, user, category |
| 2 | audit | user, user_sid, target_sid, path, category |
| 3 | file_integrity | path, user |
| 4 | command/windows | hostname, user |
| 5 | command/bash | hostname, user |
| 6 | registry | path, user |
| 7 | network | remote_addr, destination, protocol, category |
| 8 | database | connection, user, db_name, operation |
| 9 | email | sender, receiver, subject, status |
| 10 | dns | query, response, status |
| 11 | proxy | url, method, status, user |
| 12 | antivirus | file, status, detection |
| 13 | endpoint | process, path, command, user |
| 14 | authentication | username, method, status, timestamp |
| 15 | firewall | source, destination, port, action |
| 16 | vpn | client, server, protocol, status |
| 17 | ids | signature, severity, category, source |
| 18 | iocs | malware, hash, behavior, threat |
| 19 | compliance | control, standard, status, result |
| 20 | siem_events | event_type, severity, category, source |
| 21 | threat_intel | indicator, source, confidence, action |
| 22 | user_activity | user, action, resource, time |
| 23 | process_monitoring | pid, name, parent, user |
| 24 | logon | type, status, method, location |
| 25 | file_ops | action, path, user, time |
| 26 | registry_ops | action, key, user, time |
| 27 | scheduled_tasks | task_name, status, schedule, user |
| 28 | service_monitoring | service, status, start_time, user |
## 默认规则模板
```
{title}
{level}
{fields}
{description}
{generation_date}
{title}
```
## 配置文件格式
### JSON 配置示例
```
{
"rule_id_start": 10050,
"level": "2",
"categories": [
"syslog",
"audit",
"file_integrity"
]
}
```
### 支持的格式
- .json 文件(JSON 加载)
- .yaml / .yml 文件(简单的 key=value 解析)
## 模式语法
模式支持以下前缀:
| 前缀 | 类别 | 示例 |
|--------|----------|---------|
| syslog: | syslog | syslog:authentication failure |
| file: | file_integrity | file:path=/etc/passwd |
| malware: | malware | malware:root access |
| command/windows: | command/windows | command/windows:execution |
| command/bash: | command/bash | command/bash:command execution |
### 模式参数
pattern: [CATEGORY[:]]TITLE; [PARAMETER=value;][PARAMETER2=value;...]
示例:
- syslog:authentication failure; hostname=any; level=1
- file_integrity:modification; path=* mod
- malware:root access; category=malware; level=1
## 高级功能
### 批量模式
```
generator = wazuh_rule_generator.WazuhRuleGenerator()
generator.batch_mode = True
for config in configs:
generator.add_batch_rule(config)
generator.generate_batch(configs, 'output.txt')
```
### 将规则保存到文件
```
with open('rules.txt', 'w') as f:
for rule in rules:
f.write(rule + '\n')
```
### 统计跟踪
```
print(f'Rules generated: {generator.stats["rules_generated"]}')
print(f'Errors: {generator.stats["errors"]}')
```
## 故障排除
### 常见问题
1. **未找到模块**:确保 Python 在 PATH 中,并且模块文件是正确的
2. **找不到模块**:检查 Python 安装并添加到 PATH
3. **AttributeError**:检查导入和模块版本
### 调试模式
```
python wazuh_rule_generator.py
```
运行不带参数以查看帮助和默认用法。
## 输出示例
### 快速规则输出
```
Auth failure
1
username=* authentication category=syslog
# Auth failure
2026-05-31
Auth failure
```
### 模式规则输出
```
Authentication failure
1
username='* authentication' category='file_integrity'
# Authentication failure
2026-05-31
Authentication failure
```
## 贡献
1. 修复错误:报告问题或提交拉取请求
2. 改进模式:添加新的模式检测规则
3. 添加类别:扩展支持的 Wazuh 类别
## 许可证
MIT 许可证 - 随意用于和修改您的安全操作需求。
## 示例文件夹
示例和示例规则位于 examples/ 目录中。
## 支持
对于问题或疑问:
- 提交问题
- 检查此存储库中的示例
- 查阅代码文档
## 更新日志
### 版本 1.0
- 初次发布
- 快速规则生成
- 基于模式的生成
- 命令行界面
- 配置文件支持
- 批量模式
用爱为安全操作构建
由 Dr. Abhirup Guha 创建
标签:DNS隧道, Python, SIEM警报, VPN违规, Wazuh, 人工智能安全, 代理滥用, 协议分析, 可疑用户, 合规性, 失败认证, 威胁情报, 安全事件检测, 安全漏洞, 开发者工具, 快速生成, 恶意代码分析, 恶意文件, 恶意软件, 批量处理, 数据统计, 文件完整性, 无后门, 日志模式, 权限提升, 端口扫描, 网络入侵, 自定义级别, 规则生成, 输出选项, 逆向工具, 配置文件, 零日攻击, 默认DNS解析器