kboykov/wazuh-fortigate-v7
GitHub: kboykov/wazuh-fortigate-v7
专门为运行 FortiOS 7.x/8.x 的 FortiGate 防火墙提供完整的 Wazuh 解码器和检测规则集,将原始 syslog 日志精准转化为结构化安全告警。
Stars: 0 | Forks: 0
# wazuh-fortigate-v7
用于 **运行 FortiOS 7.x 和 8.x 的 FortiGate 防火墙** 的 Wazuh 解码器和检测规则。
涵盖所有主要的 FortiGate 日志类别——流量、IPS、AV、应用控制、Web 过滤、DNS、VPN、邮件过滤、DLP、SSH、SSL、WAF、异常检测和系统事件——并将适当的 Wazuh 告警级别映射到 FortiGate 严重性。
## 目录
- [概述](#overview)
- [要求](#requirements)
- [工作原理](#how-it-works)
- [FortiGate 配置](#fortigate-configuration)
- [Wazuh 安装](#wazuh-installation)
- [文件参考](#file-reference)
- [解码器架构](#decoder-architecture)
- [规则架构](#rule-architecture)
- [告警级别映射](#alert-level-mapping)
- [日志类别和组](#log-categories-and-groups)
- [Log ID 结构](#log-id-structure)
- [涵盖的 Log ID](#covered-log-ids)
- [FortiOS 版本兼容性](#fortios-version-compatibility)
- [故障排除](#troubleshooting)
- [已知限制](#known-limitations)
## 概述
FortiGate 防火墙会发出包含数十种事件类型的结构化 key=value 日志。本项目提供:
- **738 个解码器** — 将每个 FortiGate 日志字段提取到命名的 Wazuh 字段中
- **1393 条规则** — 匹配特定的 FortiGate Log ID,并按严重程度分配相应比例的告警级别
基于 **FortiOS 7.0、7.2 和 7.4 日志参考** 构建,并与 FortiOS 7.4.4 和 8.0.0 文档进行了交叉验证。FortiOS 8.0.0 引入了 6 个新的 Log ID,它们由规则 101397–101402 覆盖。
## 要求
| 组件 | 最低版本 |
|---|---|
| FortiOS | 7.0(也支持 8.0.0+) |
| Wazuh Manager | 4.x |
| Wazuh Agent | 不需要 — 使用 syslog 接入 |
## 工作原理
```
FortiGate Firewall
│
│ syslog UDP/TCP (raw key=value format)
▼
Wazuh Manager (syslog listener)
│
│ strips RFC 3164 header, passes message to decoders
▼
fortinet-fortigate-firewall ← prematch decoder
│
│ matches: ^date=YYYY-MM-DD time=HH:MM:SS devname="..." devid="..." ...
▼
fortinet-fortigate-fields-v7 ← 737 child decoders (one per field)
│
│ each extracts one field: action, srcip, dstip, logid, etc.
▼
Wazuh Rules (100010 → 100010–101396)
│
│ match decoded logid field against known FortiGate log IDs
▼
Wazuh Alert (level 3–12 based on severity)
```
原始 syslog 格式的 FortiGate 日志如下所示:
```
date=2024-03-15 time=10:22:41 devname="fw-edge" devid="FG100F0000000001" eventtime=1710498161 tz="+0000" logid="0100032002" type="event" subtype="system" level="alert" vd="root" logdesc="Admin login failed" user="admin" ui="ssh(192.168.1.100)" status="failed" reason="User does not exist"
```
预匹配解码器将其识别为 FortiGate 日志。737 个子解码器各自提取一个命名字段。然后,规则根据解码出的 `logid` 字段值触发。
## FortiGate 配置
### 1. 启用 syslog 输出
在 FortiGate CLI 中:
```
config log syslogd setting
set status enable
set server
set port 514
set facility local7
set format default
set reliable disable
end
```
### 2. 配置日志源过滤(可选但推荐)
```
config log syslogd filter
set severity information
set forward-traffic enable
set local-traffic enable
set multicast-traffic enable
set sniffer-traffic disable
set anomaly enable
set voip enable
end
```
### 3. 验证日志输出
在 FortiGate CLI 中,确认日志正在发送:
```
diagnose log test
```
在 Wazuh Manager 上,确认已接收到日志:
```
tcpdump -i any -n port 514 -A | grep "devname="
```
## Wazuh 安装
### 1. 配置 Wazuh syslog 监听器
在 Wazuh Manager 上的 `/var/ossec/etc/ossec.conf` 中添加 UDP syslog 监听器:
```
syslog
514
udp
0.0.0.0/0
```
### 2. 安装解码器
```
cp 0100-fortigate_decoders.xml /var/ossec/etc/decoders/
chown root:wazuh /var/ossec/etc/decoders/0100-fortigate_decoders.xml
chmod 640 /var/ossec/etc/decoders/0100-fortigate_decoders.xml
```
### 3. 安装规则
```
cp 0391-fortigate_rules.xml /var/ossec/etc/rules/
chown root:wazuh /var/ossec/etc/rules/0391-fortigate_rules.xml
chmod 640 /var/ossec/etc/rules/0391-fortigate_rules.xml
```
### 4. 测试配置
```
/var/ossec/bin/wazuh-logtest
```
粘贴一条示例 FortiGate 日志行,并验证解码器和规则是否正确触发。预期输出:
```
**Phase 1: Completed pre-decoding.
**Phase 2: Completed decoding.
name: 'fortinet-fortigate-fields-v7'
devname: 'fw-edge'
logid: '0100032002'
type: 'event'
...
**Phase 3: Completed filtering (rules).
id: '100365'
level: '10'
description: 'Admin login failed'
groups: ['fortigate', 'fortios.event.event', 'fortios.category.system', 'fortios.severity.alert']
```
### 5. 重启 Wazuh Manager
```
systemctl restart wazuh-manager
```
## 文件参考
| 文件 | 描述 |
|---|---|
| `0100-fortigate_decoders.xml` | 全部 738 个 FortiGate 解码器 |
| `0391-fortigate_rules.xml` | 全部 1393 条 FortiGate 规则(规则 101397–101402 涵盖了 FortiOS 8.0.0 的新增内容) |
文件编号遵循 Wazuh 约定:编号在 `0500` 以下的解码器会在大多数内置解码器之前加载;`100000+` 范围内的规则属于自定义规则空间。
## 解码器架构
### 根解码器
```
^date=\d{4}-\d{2}-\d{2}\s+time=\d{2}:\d{2}:\d{2}\s+devname="[^"]*"\s+devid="[^"]*"\s+eventtime=\d+\s+tz="[^"]*"\s+logid="\d+"
```
根解码器使用 PCRE2 预匹配锚定到行的开头,并按顺序要求六个必需的 FortiOS 7.x 头字段。任何与此模式不匹配的日志将被完全忽略。
此预匹配**专用于 FortiOS 7.x**。FortiOS 6.x 在 syslog 头中省略了 `devname`、`devid`、`eventtime` 和 `tz` —— 这些日志将不会匹配。
### 字段解码器
737 个子解码器中的每一个都只提取一个字段。该模式处理字段可能出现的三种情况:
```
fortinet-fortigate-firewall
\s+action="(\.*)"|\s+action=(\.*)\s|\s+action=(\.*)$
action
```
| 替代项 | 匹配项 | 示例 |
|---|---|---|
| `\s+field="(\.*)"` | 带引号的值 | `action="accept"` |
| `\s+field=(\.*)\s` | 不带引号且后跟空格的值 | `proto=6 ` |
| `\s+field=(\.*)$` | 不带引号且位于行尾的值 | `sentbyte=1024` |
在 Wazuh 的 OSdec 正则表达式引擎中,`\.` 匹配任何单个字符。每个替代项都有一个捕获组;无论哪个替代项被触发,其提供的值都会映射到 `` 字段名称。在实践中,由于 FortiGate 始终对字符串加引号,而对数字不加引号,因此这三种替代项是互斥的。
### 已提取字段(部分列表)
`action`、`app`、`appcat`、`appid`、`attack`、`attackid`、`catdesc`、`countdrop`、`dstcountry`、`dstintf`、`dstip`、`dstport`、`duration`、`eventtype`、`hostname`、`level`、`logdesc`、`logid`、`msg`、`policyid`、`policyname`、`profile`、`proto`、`rcvdbyte`、`sentbyte`、`service`、`sessionid`、`srcintf`、`srcip`、`srcport`、`status`、`subtype`、`trandisp`、`transip`、`transport`、`type`、`url`、`user`、`vd`、`virus` 等 680 多个字段。
## 规则架构
### 父规则
```
fortinet-fortigate-firewall
Fortigate messages grouped
```
所有其他规则都使用 `100010 ` 作为其父规则。这确保了 FortiGate 规则只有在 FortiGate 解码器匹配之后才会触发。
### Log ID 匹配
规则使用尾部 `$` 锚点对解码出的 `logid` 字段进行匹配,以识别 6 位数的消息 ID 组件:
```
100010
032002$
Admin login failed
fortios.event.event,fortios.category.system,fortios.severity.alert
```
**为什么使用尾部 `$` 而不是完全匹配:** FortiOS 7.x 的 Log ID 是 10 位用零填充的字符串(例如 `logid="0100032002"`)。前四位数字编码了日志类别和子类型;后六位数字是唯一的消息 ID。仅匹配六位数字后缀能正确识别事件,而无需考虑 FortiGate 发出的是哪种类别前缀,并且即使 Fortinet 在次要版本之间调整了类别编码,它也依然有效。
## 告警级别映射
Wazuh 告警级别是根据嵌入在规则 `` 标签中的 FortiGate 严重性来分配的:
| FortiGate 严重性 | Wazuh 级别 | 含义 |
|---|---|---|
| `debug` / `information` | 3 | 信息类 — 仅记录日志但不产生告警 |
| `notice` | 4 | 正常操作事件 |
| `warning` | 6 | 值得关注的情况 |
| `error` | 8 | 功能性错误 |
| `critical` / `alert` | 10 | 安全或操作事件 |
| `emergency` | 12 | 严重的系统故障 |
### 高价值告警示例
| 规则 ID | LogID | 描述 | 级别 |
|---|---|---|---|
| 100011 | `018432$` | UDP/TCP 异常检测到的攻击 | 10 |
| 100012 | `018433$` | ICMP 异常检测到的攻击 | 10 |
| 100056 | `020010$` | 内核错误 | 10 |
| 100365 | `032002$` | 管理员登录失败 | 10 |
| 100380 | `032021$` | 管理员登录被禁用 | 10 |
| 100417 | `032102$` | 配置已更改 | 10 |
| 101101 | `016384$` | IPS 特征攻击 (TCP/UDP) | 10 |
| 101102 | `016385$` | IPS 特征攻击 (ICMP) | 10 |
| 100377 | `032018$` | FIPS CC 进入错误模式 | 12 |
| 100391 | `032032$` | DLP 归档已满 | 12 |
| 100392 | `032033$` | 隔离磁盘已满 | 12 |
## 日志类别和组
每条规则都以 `fortios.event.,fortios.category.,fortios.severity.` 的格式分配 Wazuh 组。
| 事件类型 | 组前缀 | 示例 |
|---|---|---|
| Traffic | `fortios.event.traffic` | forward, local, snat, dnat |
| IPS | `fortios.event.ips` | signature, anomaly, botnet |
| Antivirus | `fortios.event.virus` | infected, scanerror, oversize |
| Application control | `fortios.event.app-ctrl` | signature, port-violation |
| Web filter | `fortios.event.webfilter` | ftgd_blk, urlfilter, antiphishing |
| DNS filter | `fortios.event.dns` | dns-query, dns-response |
| Email filter | `fortios.event.emailfilter` | spam, bannedword, webmail |
| DLP | `fortios.event.dlp` | dlp, dlp-docsource |
| VPN | `fortios.event.event` (category: vpn) | tunnel-up, tunnel-down |
| SSH | `fortios.event.ssh` | ssh-command, ssh-channel |
| SSL | `fortios.event.ssl` | ssl-anomaly, ssl-handshake |
| WAF | `fortios.event.waf` | waf-signature, waf-http-constraint |
| System events | `fortios.event.event` (category: system) | login, config-change, ha |
| Anomaly | `fortios.event.anomaly` | tcp/udp, icmp |
| Debug | `fortios.event.debug` | debug-print *(8.0.0+)* |
这些组可以在 Wazuh 中用于构建仪表板、过滤器和集成(例如,将所有 `fortios.event.ips` 事件发送到 SIEM 或工单系统)。
## Log ID 结构
FortiOS 7.x 的 Log ID 是 10 位用零填充的十进制数字,其结构如下:
```
0 1 0 0 0 3 2 0 0 2
│ │ │ │ └──────────────┘
│ │ │ │ Message ID (6 digits)
│ │ └──┘
│ │ Subtype ID (2 digits)
└──┘
Category ID (2 digits)
```
| 类别 ID | 日志类型 | `type=` 字段 |
|---|---|---|
| 00 | Traffic | `traffic` |
| 01 | System events | `event` |
| 02 | Antivirus | `utm` (subtype=virus) |
| 03 | Web filter | `utm` (subtype=webfilter) |
| 04 | IPS | `utm` (subtype=ips) |
| 05 | Email filter | `utm` (subtype=emailfilter) |
| 07 | Anomaly | `utm` (subtype=anomaly) |
| 08 | VoIP | `utm` (subtype=voip) |
| 09 | DLP | `utm` (subtype=dlp) |
| 10 | Application control | `utm` (subtype=app-ctrl) |
| 12 | WAF | `utm` (subtype=waf) |
| 14 | GTP | `gtp` |
| 15 | DNS | `dns` |
| 16 | SSH | `utm` (subtype=ssh) |
| 17 | SSL | `utm` (subtype=ssl) |
| 19 | File filter | `utm` (subtype=file-filter) |
| 20 | ICAP | `utm` (subtype=icap) |
| — | Debug | `debug` *(8.0.0+)* |
## 涵盖的 Log ID
### 异常 (07xx)
| 规则 | Log ID | 描述 |级别 |
|---|---|---|---|
| 100011 | 018432 | TCP/UDP 异常攻击 | 10 |
| 100012 | 018433 | ICMP 异常攻击 | 10 |
| 100013 | 018434 | 其他异常攻击 | 10 |
### Application Control (10xx)
| 规则 | Log ID | 描述 | 级别 |
|---|---|---|---|
| 100014–100020 | 028672–028678 | IM 应用事件 | 3 |
| 100021 | 028704 | IPS/应用控制通过 | 3 |
| 100022 | 028705 | IPS/应用控制阻止 | 6 |
| 100023 | 028706 | IPS/应用控制重置 | 6 |
| 100024 | 028720 | SSH 应用通过 | 3 |
| 100025 | 028721 | SSH 应用阻止 | 6 |
| 100026 | 028736 | 端口强制执行 | 6 |
| 100027 | 028737 | 协议强制执行 | 6 |
| 101397 | 028738 | 检测到二层协议 *(8.0.0+)* | 6 |
### DLP (09xx)
| 规则 | Log ID | 描述 | 级别 |
|---|---|---|---|
| 100028 | 024576 | DLP 传感器规则违规 (警告) | 6 |
| 100029 | 024577 | DLP 传感器规则违规 (通知) | 4 |
| 100030 | 024578 | DLP 指纹文档源 | 4 |
| 100031 | 024579 | DLP 指纹文档错误 | 6 |
| 101398 | 024580 | DLP FortiData 服务错误 (通知) *(8.0.0+)* | 8 |
| 101399 | 024581 | DLP FortiData 服务错误 (警告) *(8.0.0+)* | 6 |
### DNS Filter (15xx)
| 规则 | Log ID | 描述 | 级别 |
|---|---|---|---|
| 100032 | 054000 | DNS 查询 | 3 |
| 100033 | 054200 | DNS 解析错误 | 8 |
| 100034 | 054400 | 域名被阻止 (域名过滤列表) | 6 |
| 100035 | 054401 | 域名被允许 (域名过滤列表) | 3 |
| 100036 | 054600 | 域名被阻止 — 僵尸网络 C&C (IP) | 6 |
| 100037 | 054601 | 域名被阻止 — 僵尸网络 C&C (域名) | 6 |
| 100038–100043 | 054800–054805 | FortiGuard DNS 评级事件 | 3–4 |
| 101400 | 054806 | 查询了 DNS SVCPARAM ECH 记录 *(8.0.0+)* | 3 |
| 101401 | 054807 | DNS NXDOMAIN 响应通过 *(8.0.0+)* | 4 |
### Email Filter (05xx)
| 规则 | Log ID | 描述 | 级别 |
|---|---|---|---|
| 100044 | 020480 | 垃圾邮件通知 | 4 |
| 100045 | 020481 | 电子邮件消息 | 3 |
| 100046 | 020482 | 违禁词通知 | 4 |
| 100047 | 020509 | FortiGuard 错误 | 4 |
| 100048 | 020510 | Webmail 消息 | 3 |
### IPS (04xx)
| 规则 | Log ID | 描述 | 级别 |
|---|---|---|---|
| 101101 | 016384 | 攻击 — TCP/UDP 特征 | 10 |
| 101102 | 016385 | 攻击 — ICMP 特征 | 10 |
| 101103 | 016386 | 攻击 — 其他特征 | 10 |
| 101104 | 016399 | 检测到恶意 URL | 10 |
| 101105 | 016400 | 僵尸网络 C&C 警告 | 10 |
| 101106 | 016401 | 僵尸网络 C&C 通知 | 4 |
### Antivirus (02xx)
规则涵盖了 008192–009240 消息范围内的 87 个 AV 特定的 Log ID,包括:
- 检测到/阻止了受感染的文件
- 超大文件
- 文件名阻止
- 扫描错误(内存、超时、损坏的压缩包)
- FortiNDR/FortiAI 事件
- 分析提交事件
- 内容解除 (CDR)
- 内联沙箱事件
### System Events (01xx)
涵盖 700 多个事件 Log ID,包括:
- 管理员登录成功/失败/锁定
- 配置更改
- HA 故障转移和同步
- 接口 up/down
- 进入/退出内存保守模式
- VPN 隧道 up/down
- DHCP 租约事件
- NTP 同步事件
- 证书管理
- 许可证过期警告
- FIPS/CC 错误模式
### Traffic (00xx)
| 规则 | Log ID | 描述 | 级别 |
|---|---|---|---|
| (各种) | 000002 | 转发流量被允许 | 3 |
| (各种) | 000013 | 转发流量会话关闭 | 3 |
### Debug (FortiOS 8.0.0+)
| 规则 | Log ID | 描述 | 级别 |
|---|---|---|---|
| 101402 | 065290 | FortiGate 调试打印消息 | 3 |
## FortiOS 版本兼容性
### FortiOS 6.x
不支持。FortiOS 6.x 的 syslog 在日志头中省略了 `devname`、`devid`、`eventtime` 和 `tz` 字段。根解码器预匹配要求所有这六个字段,因此不会匹配 6.x 日志。
### FortiOS 7.x(主要目标)
完全支持。解码器和规则是基于 FortiOS 7.0、7.2 和 7.4 的日志参考构建和验证的。日志格式在所有 7.x 次要版本中都是稳定的。
### FortiOS 8.0.0
支持。日志格式与 7.x 相同 —— 保留了相同的 `date= time= devname= devid= eventtime= tz= logid=` 头结构。FortiOS 8.0.0 引入了 6 个 7.x 中不存在的新 Log ID,所有这些都由规则 101397–101402 覆盖。
#### FortiOS 8.0.0 中的新 Log ID
| 规则 | Log ID 后缀 | 常量 | 类别 | 描述 | 级别 |
|---|---|---|---|---|---|
| 101397 | `028738` | `LOGID_APP_CTRL_DETECT_L2` | Application Control | 检测到二层协议 | 6 |
| 101398 | `024580` | `LOG_ID_DLP_FORTIDATA_ERROR_NOTIF` | DLP | FortiData 服务错误 (通知) | 8 |
| 101399 | `024581` | `LOG_ID_DLP_FORTIDATA_ERROR_WARNING` | DLP | FortiData 服务错误 (警告) | 6 |
| 101400 | `054806` | `LOG_ID_DNS_SVCPARAM_ECH` | DNS Filter | 查询了 DNS SVCPARAM ECH 记录 | 3 |
| 101401 | `054807` | `LOG_ID_DNS_NXDOMAIN_PASS` | DNS Filter | DNS NXDOMAIN 响应通过 | 4 |
| 101402 | `065290` | `LOG_ID_DEBUG_PRINT` | Debug *(新类别)* | FortiGate 调试打印消息 | 3 |
#### Log ID 范围:确认在 7.4.4 和 8.0.0 之间未更改
| 类别 | 7.4.4 范围 | 8.0.0 范围 |
|---|---|---|
| Anomaly | 018432–018434 | 018432–018434 |
| CASB | 010000–010002 | 010000–010002 |
| EmailFilter | 020480–020510 | 020480–020510 |
| APP-CTRL | 028672–028737 | 028672–**028738** |
| DLP | 024576–024579 | 024576–**024581** |
| DNS | 054000–054805 | 054000–**054807** |
#### FortiOS 8.0.0 中与日志相关的新功能
| 功能 | 对解码器/规则的影响 |
|---|---|
| **自定义 syslog 格式** (`log custom-format` / `log-template`) | 会破坏这些解码器 —— 它们需要 `set format default`(原始的 key=value)。如果使用此规则集,请勿使用自定义 syslog 模板。 |
| **主机名解析时机** (`resolve-ip` vs `resolve-hosts`) | `hostname` 字段现在可能会在创建日志时被填充 (`resolve-ip`)。无需更改解码器;现有的 `hostname` 字段解码器即可处理。 |
| **增强的 TACACS+ 计费** | 管理员事件日志中的 `reason` 字段现在包含完整的 CLI 命令文本。现有规则仍会触发;附加数据作为已解码字段提供。 |
| **FTP/TFTP/RTSP/PPTP 的 Session helper 统计** | 可能会产生额外的事件子日志。覆盖范围取决于 FortiGate 是否为这些分配新的 Log ID;8.0.0 版本不需要新规则。 |
| **SFTP + LZ4 日志上传** | 仅限日志存储传输 —— 对 syslog 格式或 Wazuh 接入没有影响。 |
## 故障排除
### Wazuh 未接收到日志
1. 验证 FortiGate syslog 服务器 IP 和端口是否与 Wazuh 监听器一致:
diagnose log test
2. 检查 Wazuh 的 syslog 端口是否已开放:
ss -ulnp | grep 514
3. 检查 FortiGate 和 Wazuh Manager 之间的防火墙规则。
### 接收到了日志但解码器未触发
使用 `wazuh-logtest` 交互式地测试日志行:
```
/var/ossec/bin/wazuh-logtest
```
常见原因:
- **FortiOS 版本为 6.x** — 预匹配需要 `devname`、`devid`、`eventtime` 和 `tz` 字段,而这些字段在 6.x 日志中不存在。
- **Syslog 格式不是 `default`** — CEF 格式使用完全不同的结构。在 FortiGate 上使用 `show log syslogd setting` 进行验证。
- **Syslog 中继添加了第二个 RFC 3164 头** — 如果日志通过 syslog 聚合器进行重新封装,消息内容可能会发生偏移。请使用 `tcpdump` 检查原始字节。
### 规则在错误的日志上触发
如果一条规则匹配到了它不应匹配的 FortiGate 日志,请添加 `` 或 `` 过滤器以缩小匹配范围:
```
100010
032002$
^event$
^system$
Admin login failed
fortios.event.event,fortios.category.system,fortios.severity.alert
```
### 高严重性事件未生成告警
默认的 Wazuh 告警阈值为级别 7。级别 3 和 4 的事件会被索引但被抑制。要降低阈值,请编辑 `/var/ossec/etc/ossec.conf`:
```
3
```
或者,仅为 10 级以上的事件添加特定的电子邮件或集成操作。
## 已知限制
**未涵盖的 Log ID:**
- `logid 000001`(允许的本地流量 — 会话启动的替代项)缺失;流量规则从 000002 开始。
- HA(高可用性)故障转移事件的覆盖范围有限。
- IPS 子类型 Log ID 016387–018431 没有单独映射;仅存在最常见的六种 IPS 事件类型。
- 事件 Log ID 缺口:020009、020011–0015 在 FortiOS 日志参考中缺失,属于有意未涵盖范围。
**FortiOS 版本兼容性:**
- 针对并测试了 **FortiOS 7.0、7.2、7.4 和 8.0.0**。
- FortiOS 6.x 日志使用不同的头字段顺序,将不会匹配根解码器预匹配。
- FortiOS 8.0.0 受到完全支持;其 6 个新 Log ID 由规则 101397–101402 覆盖。
**Log ID 后缀匹配:**
规则匹配 10 位 logid 的最后六位数字。在极不可能发生的情况下,如果两种不同的 FortiGate 日志类型共享同一个六位消息 ID 组件,则可能会发生规则误报匹配。如果观察到此情况,请在受影响的规则中添加 `` 和 `` 过滤器。
标签:AMSI绕过, AppImage, CISA项目, DLP, FortiGate, FortiOS, IP 地址批量处理, PE 加载器, Syslog, VPN监控, WAF, Wazuh, Web应用防火墙, 入侵防御系统, 威胁检测, 威胁猎捕, 安全信息与事件管理, 安全运营, 异常检测, 扫描框架, 搜索引擎爬取, 日志解析, 检测规则, 流量监控, 网络安全, 网络资产发现, 解码器, 证书伪造, 防火墙, 隐私保护