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应用防火墙, 入侵防御系统, 威胁检测, 威胁猎捕, 安全信息与事件管理, 安全运营, 异常检测, 扫描框架, 搜索引擎爬取, 日志解析, 检测规则, 流量监控, 网络安全, 网络资产发现, 解码器, 证书伪造, 防火墙, 隐私保护