33.1. EVE JSON 模式

Suricata源码发行版中包含针对EVE日志文件的JSON模式。该模式遵循`JSON Schema <https://json-schema.org/>`_规范,存放于``etc/schema.json``路径。若您的发行版中未包含此文件,可通过在线查看:https://github.com/OISF/suricata/blob/master/etc/schema.json,但需注意该文件具有版本特异性,可能随Suricata主版本变更而调整。

此模式尝试记录Suricata **EVE**输出中所有可能出现的字段及其数据类型,同时包含扩展功能以帮助将日志字段映射至相关检测关键字。

33.1.1. Suricata模式扩展

我们在JSON模式中扩展了``suricata``对象,用于添加额外的Suricata上下文信息(例如与日志字段关联的检测关键字),示例如下:

"rrname": {
    "type": "string",
    "suricata": {
        "keywords": [
            "dns.answers.rrname",
            "dns.response.rrname"
        ]
    }
}

上述示例表明名为``rrname``的字段关联2个关键字。具体使用方式及字段关联关系请参阅关键字文档。

33.1.1.1. 扩展参考

``suricata``扩展对象可作用于``properties``对象内的字段。该对象可接受以下字段:

33.1.1.1.1. keywords

类型: arrayboolean

  • 数组形式: 包含与该JSON属性相关的关键字名称。数组中每个关键字代表可匹配对应字段值的检测规则关键字。

  • 值为``false``时: 表示该JSON属性无适用关键字。此情况适用于不涉及实际网络数据的元数据字段。例如DNS对象中的``version``字段仅表示日志格式版本,与DNS消息内容无关,因此不适用任何关键字。

33.1.2. 模式工具链

  • Suricata-Verify: 我们官方提供的工具,用于验证每个Suricata拉取请求,并依据模式校验所有生成的EVE日志。

  • ./scripts/eve-parity.py: 通过``git``检出Suricata源代码后可找到此工具,用于提供日志字段与关键字的映射关系,或关键字与日志条目的关联信息。

  • ./scripts/evedoc.py: 从模式生成文档的工具,例如本文档中的 EVE 索引 章节即由此生成。