kboykov/wazuh-fortigate-json
GitHub: kboykov/wazuh-fortigate-json
专为 FortiGate 防火墙 JSON 日志设计的 Wazuh 检测规则集,提供从流量监控到关联分析的全面安全覆盖。
Stars: 1 | Forks: 0
# 适用于 FortiGate FortiOS 8.0.0 的 Wazuh 规则 (JSON 日志)
一套适用于运行 FortiOS 8.0.0 的 Fortinet FortiGate 防火墙的 Wazuh 检测规则集,用于接收原生 JSON 格式的 syslog 输出。
## 概述
FortiGate 设备可以通过 syslog 以 JSON 格式输出日志。Wazuh 内置的 `json` 解码器会处理这些日志,并将所有 JSON 键提升为顶层解码字段。本规则集锚定 `devid` 字段(在 FortiGate 硬件和虚拟机上总是以 `FG` 开头),以在所有 JSON 来源中精准识别 FortiGate 事件,并由此构建结构化的检测层级。
**规则 ID 范围:** 118100 – 118299
**规则总数:** 149
**目标固件:** FortiOS 8.0.0(日志格式与 6.4 和 7.x 版本基本兼容)
## 文件
```
decoders/
fortigate-json_decoders.xml # Optional custom decoder (not required when using built-in JSON decoder)
rules/
fortigate-json_rules.xml # 149 detection rules
references/
fortios_8_0_log_ids.csv # FortiOS 8.0.0 log ID reference with pre-assigned Wazuh rule IDs
fortiguard_web_filter_categories.csv # FortiGuard URL category number-to-name mapping
```
## 解码器说明
这些规则依赖于 **Wazuh 内置的 `json` 解码器**,而不是本仓库中的自定义解码器。当日志事件是有效的 JSON 时,Wazuh 会自动选择内置解码器。无需安装自定义解码器。
提供的 `fortigate-json_decoders.xml` 主要用于通过特定程序名 (`devname`) 路由 FortiGate syslog 的环境,但本规则集并不依赖它。
## 规则覆盖范围
### 流量 (118101 – 118108)
| 规则 | 描述 |
|------|-------------|
| 118101 | 流量日志父规则 (锚点) |
| 118102 | 允许的流量 (`action: accept/allow`) |
| 118103 | 被策略拒绝/丢弃的流量 |
| 118104 | 被客户端或服务器重置的连接 |
| 118105 | 连接尝试失败 (`logid: 0000000011`) |
| 118106 | 转发流量统计 (`logid: 0000000020`) |
| 118107 | 本地流量 (管理平面) |
| 118108 | ZTNA 流量 (`logid: 0005000024`) |
### UTM — 防病毒 (118110 – 118118)
恶意软件拦截/通过、FortiSandbox 判定、Outbreak Prevention、EMS 威胁源、内容解除与重构 (CDR)、0day 恶意软件流、超大文件。
### UTM — IPS / 异常 (118119 – 118128)
IPS 攻击特征 (alert/warning/notice)、僵尸网络 C&C 拦截与检测、恶意 URL、L2 协议攻击、异常攻击。
### UTM — Web 过滤 (118129 – 118144)
URL 过滤列表拦截、FortiGuard 类别拦截 (包括针对恶意网站、钓鱼、黑客攻击、代理规避的特定规则)、FortiGuard 风险级别拦截、防钓鱼、域名前置、命令拦截、评级错误、配额到期、视频过滤、FortiGuard 不可达。
### UTM — 应用控制 (118145 – 118150)
应用拦截、高/严重/高风险应用、端口强制违规、协议强制违规。
### UTM — DLP (118151 – 118154)
数据丢失拦截、检测到数据丢失 (监控模式)、指纹源错误。
### UTM — WAF (118155 – 118159)
请求被拦截 (特征、自定义特征、地址列表)、WAF 异常拦截。
### UTM — 电子邮件 / 垃圾邮件 (118160)
垃圾邮件 / MIME 垃圾邮件通知。
### UTM — CASB (118161)
SaaS 应用活动被拦截。
### 事件 — 管理员身份验证 (118162 – 118170)
登录成功、登录失败、账户锁定、注销、会话断开、密码过期、进入/离开 VDOM、FortiToken 推送失败。
### 事件 — 配置更改 (118171 – 118182)
CLI 和 GUI 配置更改、全局设置更改、配置备份、配置恢复、系统启动/关闭/重启/恢复出厂设置、固件升级、镜像加载失败、无效/被篡改的固件、应用程序崩溃。
### 事件 — VPN (118183 – 118185)
IPsec 隧道建立、隧道断开、VPN 统计。
### 事件 — 系统健康 (118186 – 118213)
内存保护模式、极低内存、IPS 直通、接口 link/admin 状态更改、内核错误、套接字池耗尽、IP 池耗尽、电源故障/冗余、温度告警、风扇异常、磁盘不可用、日志磁盘故障、SSD 备用块、磁盘日志已满/损坏。
### 事件 — 路由 (118214 – 118218)
BGP/OSPF 邻居状态更改、路由信息更改、路由日志严重。
### 事件 — SD-WAN (118219 – 118222)
链路质量更改、质量下降、故障检测、邻居状态。
### 事件 — 许可 (118223 – 118232)
AV/IPS/webfilter 许可即将到期与已过期、VM 许可过期、许可状态更改、重复许可、证书即将过期、CRL 已过期。
### 事件 — 安全 Fabric / CSF (118233 – 118236)
FortiAnalyzer 连接建立/断开/失败、写入权限违规、硬链接违规、内核/固件加载违规、可执行文件哈希缺失/不匹配。
### 事件 — 杂项 (118237 – 118242)
DHCP 池已满/过高、Security Fabric 循环、上游 SN 更改、指向 IoC 的本地生成流量、FNBAM 身份验证错误、日志上传错误。
### 频率 / 关联 (118250 – 118257)
| 规则 | 触发条件 | 阈值 |
|------|---------|-----------|
| 118250 | 管理员暴力破解 | 5 次失败 / 60 秒 (同一 srcip) |
| 118251 | 管理员暴力破解升级 | 10 次失败 / 120 秒 |
| 118252 | 防火墙拒绝洪泛 (端口扫描 / 攻击) | 10 次拒绝 / 30 秒 (同一 srcip) |
| 118253 | IPS 攻击活动 | 5 个 IPS 告警 / 60 秒 (同一 srcip) |
| 118254 | 受感染主机传播恶意软件 | 3 次检测 / 120 秒 (同一 srcip) |
| 118255 | 连接洪泛 / 扫描 | 15 次连接失败 / 30 秒 (同一 srcip) |
| 118256 | 数据外发尝试 | 5 次 DLP 违规 / 300 秒 (同一 srcip) |
| 118257 | Web 攻击活动 | 10 次 WAF 拦截 / 60 秒 (同一 srcip) |
## 严重级别映射
| FortiGate 级别 | Wazuh 级别 |
|----------------|-------------|
| emergency | 15 |
| alert | 14 |
| critical | 12 |
| error | 8 |
| warning | 6 |
| notice | 5 |
| information | 3 |
| debug | 2 |
## 合规性标签
在适用的情况下,规则已为以下框架打上标签:
- **PCI DSS** (1.3.4, 5.1, 6.5, 6.6, 10.2.x, 10.5.5, 11.4)
- **GDPR** (IV 35.7.d)
- **HIPAA** (164.312.a, 164.312.b)
- **NIST 800-53** (AC, AU, CM, IA, SC, SI)
- **GPG13** (4.13)
## MITRE ATT&CK 覆盖范围
规则中映射的选定技术 ID:
`T1048` `T1059` `T1071` `T1078` `T1098` `T1102` `T1110.001` `T1133` `T1190` `T1204.002` `T1486` `T1499` `T1505` `T1531` `T1543` `T1562` `T1571`
## 安装
### 1. FortiGate syslog 配置
将 FortiGate 配置为向 Wazuh 发送 JSON 格式的 syslog:
```
config log syslogd setting
set status enable
set server
set port 514
set format json
end
```
### 2. 部署解码器 (可选)
仅当您的 FortiGate syslog 使用 `devname` 作为程序名标记,并且您希望进行显式解码器链接时才需要:
```
cp decoders/fortigate-json_decoders.xml /var/ossec/etc/decoders/
```
### 3. 部署规则
```
cp rules/fortigate-json_rules.xml /var/ossec/etc/rules/
```
### 4. 重启 Wazuh 管理器
```
systemctl restart wazuh-manager
```
### 5. 使用 wazuh-logtest 进行验证
```
/var/ossec/bin/wazuh-logtest
```
粘贴一条 FortiGate JSON 日志样本行并确认:
- **Phase 2** 解码器: `name: 'json'`
- **Phase 3** 规则: 触发了一条 118xxx 规则
## 系统要求
- Wazuh Manager 4.3 或更高版本
- 运行 FortiOS 6.4 / 7.x / 8.0 的 FortiGate
- FortiGate 上的 Syslog 格式设置为 `json`
## 参考资料
- [FortiOS 8.0.0 日志消息参考](https://docs.fortinet.com/document/fortigate/8.0.0/fortios-log-message-reference)
- [Wazuh 规则集文档](https://documentation.wazuh.com/current/user-manual/ruleset/index.html)
- [Wazuh 解码器语法](https://documentation.wazuh.com/current/user-manual/ruleset/ruleset-xml-syntax/decoders.html)
标签:AMSI绕过, FortiGate, Fortinet, FortiOS, Homebrew安装, JSON, Log Decoder, PB级数据处理, Syslog, UTM, Wazuh, 威胁检测, 安全信息与事件管理, 安全策略, 安全运维, 提示词设计, 搜索引擎爬取, 红队行动, 网络安全, 防火墙规则, 隐私保护