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, 安全合规, 网络代理, 请求拦截, 逆向工具