bob-reis/Wazuh-LGPD-Rules
GitHub: bob-reis/Wazuh-LGPD-Rules
将 Wazuh 原生 GDPR 规则自动映射为巴西 LGPD 法规标签,生成可直接部署的合规规则覆盖文件。
Stars: 0 | Forks: 0
# LGPD 合规 — Wazuh
将 Wazuh 原生规则映射到**《通用数据保护法》(Lei 13.709/2018)**,该映射基于标准 ruleset 中已有的 GDPR 映射生成。
## 目录
| 文件 | 描述 |
|---|---|
| `generate_lgpd_rules.py` | 读取原生规则并生成带有 LGPD 标签的 override 的脚本 |
| `local_rules_lgpd.xml` | 生成的规则文件 — 可直接用于部署 |
## GDPR → LGPD 映射
Wazuh 原生使用 4 条 GDPR 法规。每一条都在 LGPD 中有直接的对应关系:
| Wazuh 标签 (GDPR) | GDPR 法规 | LGPD 标签 | LGPD 法规 | 规则数 |
|---|---|---|---|---|
| `gdpr_II_5.1.f` | 第 5(1)(f) 条 — 完整性与机密性 | `lgpd_Art6_VII` | 第 6 条第七款 — 安全原则 | 40 |
| `gdpr_IV_30.1.g` | 第 30(1)(g) 条 — 处理活动记录 | `lgpd_Art37` | 第 37 条 — 处理操作记录 | 49 |
| `gdpr_IV_32.2` | 第 32(2) 条 — 处理安全 | `lgpd_Art46` | 第 46 条 — 技术与管理安全措施 | 541 |
| `gdpr_IV_35.7.d` | 第 35(7)(d) 条 — DPIA | `lgpd_Art38` | 第 38 条 — RIPD(影响评估报告) | 1186 |
**总计:114 个原生 ruleset 文件(Wazuh 4.14.5)中共有 1353 条规则包含 LGPD 映射**。
## 如何在其他环境中实施
### 前置条件
- 已安装 Wazuh Manager(已在 4.x 版本上测试)
- 主机上安装了 Python 3.8+(仅用于重新生成文件)
- 拥有用户规则目录的访问权限:`/var/ossec/etc/rules/`
### 选项 A — 直接部署生成的文件(最快)
适用于已针对您的 Wazuh 版本生成了 `local_rules_lgpd.xml` 的情况。
```
# 1. 将文件复制到自定义规则目录
cp local_rules_lgpd.xml /var/ossec/etc/rules/
# 2. 验证配置(不重启)
/var/ossec/bin/wazuh-analysisd -t
# 3. 如果没有 CRITICAL 错误,重启 manager
systemctl restart wazuh-manager
# 或者,在 Docker 中:
docker restart
# 4. 检查规则是否已加载
grep -i "lgpd\|local_rules_lgpd" /var/ossec/logs/ossec.log
```
### 选项 B — 为其他 Wazuh 版本重新生成
适用于您的 Wazuh 版本与当前生成文件的版本不同的情况。
```
# 1. 安装依赖项(仅 Python 标准库,无 extras)
python3 --version # requer 3.8+
# 2. 为当前安装生成文件
python3 generate_lgpd_rules.py \
--rules-dir /var/ossec/ruleset/rules \
--output /var/ossec/etc/rules/local_rules_lgpd.xml
# 可选参数:
# --min-level 5 → 仅包含级别 >= 5 的规则
# --exclude-files 0215-policy_rules.xml 0outro.xml → 排除额外文件
# 3. 验证并应用(同选项 A,步骤 2-4)
/var/ossec/bin/wazuh-analysisd -t
systemctl restart wazuh-manager
```
### 选项 C — 使用挂载卷在 Docker 中部署
适用于用户规则位于 Docker 卷中的环境。
```
# 假设 Wazuh 的卷位于:
# /opt/wazuh-docker/volumes/wazuh_etc/_data/rules/
cp local_rules_lgpd.xml /opt/wazuh-docker/volumes/wazuh_etc/_data/rules/
# 在 container 中验证
docker exec /var/ossec/bin/wazuh-analysisd -t
# 重启
docker restart
```
## 部署后验证
### 通过 Wazuh REST API
```
# 获取 token
TOKEN=$(curl -s -k -u "wazuh-wui:" \
-X GET "https://localhost:55000/security/user/authenticate?raw=true")
# 检查规则 5710 (SSH brute force) 是否具有 LGPD 标签
curl -s -k -H "Authorization: Bearer $TOKEN" \
"https://localhost:55000/rules?rule_ids=5710" | \
python3 -c "
import json,sys
d=json.load(sys.stdin)
for r in d['data']['affected_items']:
lgpd=[g for g in r.get('groups',[]) if 'lgpd' in g]
print(f'Rule {r[\"id\"]}: LGPD={lgpd}, file={r[\"filename\"]}')
"
# 预期输出:
# Rule 5710: LGPD=['lgpd_Art46', 'lgpd_Art38', 'lgpd'], file=local_rules_lgpd.xml
```
### 通过 OpenSearch/Kibana 面板
要在面板中按 LGPD 合规性筛选告警:
1. 打开 Wazuh Dashboard → **Security Events**
2. 添加过滤器:`rule.groups: lgpd_Art46`(或任何其他法规)
3. 如需统一视图,请使用:`rule.groups: lgpd_*`
### 为 LGPD 合规创建模式索引
在 OpenSearch Dashboards(Dev Tools)中:
```
GET wazuh-alerts-*/_search
{
"query": {
"terms": {
"rule.groups": ["lgpd_Art38", "lgpd_Art46", "lgpd_Art37", "lgpd_Art6_VII"]
}
},
"aggs": {
"por_artigo": {
"terms": { "field": "rule.groups", "include": "lgpd_.*" }
}
}
}
```
## 技术工作原理
Wazuh 允许在 `etc/rules/` 目录下的文件中使用 `overwrite="yes"` 来覆盖原生规则。该脚本会读取每条原始规则,复制其所有的属性和元素,并将对应的 LGPD 标签添加到 `` 元素中:
```
5700
illegal user|invalid user
sshd: Attempt to login using a non-existent user
authentication_failed,pci_dss_10.2.4,gdpr_IV_35.7.d,gdpr_IV_32.2,...
5700
illegal user|invalid user
sshd: Attempt to login using a non-existent user
authentication_failed,pci_dss_10.2.4,gdpr_IV_35.7.d,gdpr_IV_32.2,...,lgpd_Art46,lgpd_Art38,
```
GDPR 标签**不会被移除** — override 会将 LGPD 标签添加到现有集合中。
### 警告与限制
- **Wazuh 更新后需重新生成**:更新 Wazuh Manager 时,原生规则可能会发生变化。请重新运行脚本并替换该文件。
- **`0215-policy_rules.xml`**:此文件位于 Wazuh 默认 `ossec.conf` 的 `rule_exclude` 列表中。脚本会自动将其排除以避免出现警告。
- **`0910-ms-exchange-proxylogon_rules.xml`**:包含格式错误的 XML(无效 token)。脚本会发出警告并将其忽略 — 此文件中的规则不会收到 LGPD 标签。
- **`if_group` 警告**:Wazuh 不允许通过 override 修改 `if_group` 属性。这些警告是预期内的,且不会影响功能 — LGPD 标签会被正确应用。
- **范围**:只有包含至少一个 GDPR 标签的规则才会接收 LGPD override。没有 GDPR 映射的规则不会被修改。
标签:GDPR, LGPD, Wazuh, 安全合规, 网络代理, 请求拦截, 逆向工具