dr4gon123/palos

GitHub: dr4gon123/palos

自动从 PAN-OS 官方文档中提取并结构化 syslog 字段定义,输出机器可读的 CSV 文件和 ECS/OCSF 字段映射,用于加速防火墙日志解析器和标准化流水线的开发。

Stars: 1 | Forks: 0

# PALOS — PAN-OS 日志抓取器 PALOS 从官方文档站点提取 Palo Alto Networks PAN-OS syslog 字段文档,并将其转换为整洁、结构化的 CSV 数据集。它专为需要机器可读的 syslog 模式用于解析器开发、日志规范化或字段参考的安全工程师和数据团队而设计。 模式规范化使防火墙日志能够在现代安全体系中变得可查询、可关联且可操作。基于 ECS、OCSF 或自定义模式规范化 PAN-OS 日志,需要所有日志类型中确切的字段名称和位置——而 PAN-OS 将这些信息分散在每个版本的不同文档页面中。 PALOS 提供了完整的流水线:从官方 PAN-OS 文档中提取并纠正模式,并将它们转换为 ECS 和 OCSF 字段映射,随时可用于您的规范化工作流。 ## 快速开始 ``` pip install requests beautifulsoup4 pandas lxml pyyaml python3 paloalto_scraper.py ``` 输出结果将保存在当前工作目录下以版本号命名的子目录中(例如 `11.1+/`)。 ## 输出 ``` {version}/ {LogType}_format.csv # e.g. Traffic_format.csv (not Traffic_Log_format.csv) {LogType}_fields.csv # e.g. Traffic_fields.csv consolidated/ panos_syslog_fields.csv # Consolidated matrix: rows = positions, columns = log types panos_consolidated_fields.csv # All variables: field name, log type coverage, description ``` **`{LogType}_format.csv`** — 第一行是 PAN-OS 文档中记录的原始逗号分隔格式字符串(例如 `FUTURE_USE, Receive Time, Serial Number, ...`)。第二行是转换后的版本,其中长名称被替换为它们的 snake_case 变量名(`FUTURE_USE, receive_time, serial, ...`)。这两行都是带引号的 CSV,因此可以干净地解析为数组。 **`{LogType}_fields.csv`** — 从 PAN-OS 文档抓取的字段参考表,在 `Field Name` 后插入了 `Field Name lookup` 和 `Variable Name` 列。变量名从每个字段名称的括号中提取(例如 `Serial Number (serial)` → `serial`),并经过后处理以修复 PAN-OS 文档的不一致性。有关完整的更正列表,请参阅 [EDGE_CASES.md](EDGE_CASES.md)。 ## 字段命名规范化 抓取的变量名会与标准安全模式进行交叉引用,以便进行 SIEM 接收和字段规范化。有关完整文档,请参阅 [FIELD_NAMING_NORMALIZATION.md](FIELD_NAMING_NORMALIZATION.md)。 | 模式 | 状态 | 输出 | |--------|--------|--------| | ECS (Elastic Common Schema) | 已映射 71/297 个字段 | `11.1+/ecs/panos_ecs_mapping.csv` | | OCSF | 计划中 | `11.1+/ocsf/` | ## 配置 编辑 `paloalto_scraper_config.yaml` 以自定义行为: | 设置 | 默认值 | 效果 | |---------|---------|--------| | `base_delay` | `1.0` | HTTP 请求之间的秒数(限速) | | `force_rescrape` | `false` | 重新抓取本地已存在的版本 | | `dry_run` | `false` | 打印抓取计划但不获取任何页面 | | `output_dir` | `"."` | 所有输出的根目录 | ## 添加新的 PAN-OS 版本 在 `paloalto_scraper_config.yaml` 的 `versions` 下添加新条目: ``` versions: - name: "11.2" log_types: - name: "Traffic_Log" url: "https://docs.paloaltonetworks.com/ngfw/11-2/.../traffic-log-fields" - name: "Threat_Log" url: "https://docs.paloaltonetworks.com/ngfw/11-2/.../threat-log-fields" # ... one entry per log type ``` 除非设置 `force_rescrape: true`,PALOS 将跳过本地已存在的版本。 ## 抓取的日志类型 (PAN-OS 11.1+) 1. Traffic Log 2. Threat Log 3. URL Filtering Log 4. Data Filtering Log 5. HIP Match Log 6. GlobalProtect Log 7. IP-Tag Log 8. User-ID Log 9. Decryption Log 10. Tunnel Inspection Log 11. SCTP Log 12. Authentication Log 13. Config Log 14. System Log 15. Correlated Events Log 16. GTP Log 17. Audit Log ## PAN-OS 文档说明 PAN-OS 文档在各种日志类型中存在许多不一致之处:字段表中的变量名被截断、括号内存在拼写错误、字段完全没有括号、与格式字符串不同的长名称,以及至少一个 PAN-OS 文档的实质性 Bug(使用句点而不是逗号作为字段分隔符)。PALOS 通过其异常系统(`paloalto_scraper_exceptions.yaml`)自动纠正了所有这些问题,因此即使在源文档不正确的情况下,输出的变量名也能保持一致且正确。 每一项已知的更正都记录在 [EDGE_CASES.md](EDGE_CASES.md) 中,按更正层组织,并注明了每个条目的根本原因和受影响的日志类型。 这些发现也已通过 Live Community 报告给 Palo Alto Networks: ["Bugs" on syslog field descriptions documentation (PAN-OS)](https://live.paloaltonetworks.com/t5/general-topics/quot-bugs-quot-on-syslog-field-descriptions-documentation-pan-os/m-p/1249086#M126065) ## 面向开发者和维护者 请参阅 [DEVELOPERS_GUIDE.md](DEVELOPERS_GUIDE.md) 了解: - 更正流水线演练(从原始 HTML 到最终 CSV) - 如何添加新的异常(字段名查找更正、变量名更正、原始格式 token 修复) - 关键方法参考 - 架构概览 *对 Palo Alto 不感兴趣?查看 [Flores - FortiGate 日志消息参考抓取器](https://github.com/dr4gon123/flores)*
标签:AMSI绕过, BeautifulSoup, BlueTeam, CSV, ECS, OCSF, OISF, Palo Alto, PAN-OS, Python, Schema映射, Syslog, Terraform, 威胁检测, 字段参考, 安全工程, 安全数据分析, 开源安全工具, 数据工程, 数据提取, 数据管道, 数据规范化, 文档抓取, 无后门, 日志归一化, 日志管理, 日志解析, 机器可读, 网络安全, 证书伪造, 软件工程, 逆向工具, 逆向工程平台, 防火墙日志, 隐私保护