EVE JSON 模式 ############### Suricata源码发行版中包含针对EVE日志文件的JSON模式。该模式遵循`JSON Schema `_规范,存放于``etc/schema.json``路径。若您的发行版中未包含此文件,可通过在线查看:https://github.com/OISF/suricata/blob/master/etc/schema.json,但需注意该文件具有版本特异性,可能随Suricata主版本变更而调整。 此模式尝试记录Suricata **EVE**输出中所有可能出现的字段及其数据类型,同时包含扩展功能以帮助将日志字段映射至相关检测关键字。 Suricata模式扩展 ^^^^^^^^^^^^^^^^^^^^^^^^^^ 我们在JSON模式中扩展了``suricata``对象,用于添加额外的Suricata上下文信息(例如与日志字段关联的检测关键字),示例如下: .. code-block:: json "rrname": { "type": "string", "suricata": { "keywords": [ "dns.answers.rrname", "dns.response.rrname" ] } } 上述示例表明名为``rrname``的字段关联2个关键字。具体使用方式及字段关联关系请参阅关键字文档。 扩展参考 =================== ``suricata``扩展对象可作用于``properties``对象内的字段。该对象可接受以下字段: ``keywords`` ------------ **类型:** ``array`` 或 ``boolean`` * **数组形式:** 包含与该JSON属性相关的关键字名称。数组中每个关键字代表可匹配对应字段值的检测规则关键字。 * **值为``false``时:** 表示该JSON属性无适用关键字。此情况适用于不涉及实际网络数据的元数据字段。例如DNS对象中的``version``字段仅表示日志格式版本,与DNS消息内容无关,因此不适用任何关键字。 .. 注意:: 截至Suricata 8.0版本,日志字段与检测关键字的映射仍在完善中。未定义``suricata.keywords``值的字段仍需进一步评估。 模式工具链 ^^^^^^^^^^^^^^ * `Suricata-Verify `_: 我们官方提供的工具,用于验证每个Suricata拉取请求,并依据模式校验所有生成的EVE日志。 * ``./scripts/eve-parity.py``: 通过``git``检出Suricata源代码后可找到此工具,用于提供日志字段与关键字的映射关系,或关键字与日志条目的关联信息。 * ``./scripts/evedoc.py``: 从模式生成文档的工具,例如本文档中的 :doc:`eve-index` 章节即由此生成。