Snyk 模块编辑

此功能处于测试阶段,可能会发生变化。设计和代码不如正式的 GA 功能成熟,并按原样提供,不提供任何保证。测试版功能不受官方 GA 功能支持 SLA 的约束。

这是一个用于从不同 Snyk API 端点提取数据的模块。目前支持以下文件集

  • vulnerabilities 文件集:收集相关组织和项目的所有已发现漏洞
  • audit 文件集:收集来自 Snyk 的审计日志记录,这可以是用户、权限、组、API 访问等操作。

当您运行模块时,它会在后台执行一些任务

  • 设置日志文件的默认路径(但不用担心,您可以覆盖默认值)
  • 确保每个多行日志事件都作为单个事件发送
  • 使用 Elasticsearch 提取管道来解析和处理日志行,将数据 shaping 成适合在 Kibana 中可视化的结构

阅读快速入门了解如何配置和运行模块。

配置模块编辑

您可以通过在 modules.d/snyk.yml 文件中指定变量设置,或在命令行中覆盖设置,进一步优化 snyk 模块的行为。

您必须在模块中至少启用一个文件集。默认情况下禁用文件集。

变量设置编辑

每个文件集都有单独的变量设置,用于配置模块的行为。如果您没有指定变量设置,则 snyk 模块将使用默认值。

对于高级用例,您还可以覆盖输入设置。请参阅覆盖输入设置

当您在命令行中指定设置时,请记住在设置前加上模块名称作为前缀,例如,使用 snyk.audit.var.paths 而不是 audit.var.paths

audit 文件集设置编辑

此功能处于测试阶段,可能会发生变化。设计和代码不如正式的 GA 功能成熟,并按原样提供,不提供任何保证。测试版功能不受官方 GA 功能支持 SLA 的约束。

要配置 Filebeat 对 Snyk 审计日志 API 的访问权限,您必须按照Snyk 文档中的说明生成 API 访问令牌

配置示例

- module: snyk
  audit:
    var.input: httpjson
    var.audit_type: organization
    var.audit_id: 1235432-asdfdf-2341234-asdgjhg
    var.interval: 1h
    var.api_token: 53453Sddf8-7fsf-414234gfd-9sdfb7-5asdfh9f8e342

还有多个可选的配置选项可用于筛选掉不需要的内容,如下例所示

- module: snyk
  audit:
    var.input: httpjson
    var.audit_type: organization
    var.audit_id: 1235432-asdfdf-2341234-asdgjhg
    var.interval: 1h
    var.api_token: 53453Sddf8-7fsf-414234gfd-9sdfb7-5asdfh9f8e342
    var.email_address: "[email protected]"
var.paths
一个基于 glob 的路径数组,用于指定在何处查找日志文件。Go Glob支持的所有模式在这里也受支持。例如,您可以使用通配符从预定义级别的子目录中获取所有文件:/path/to/log/*/*.log。这将从 /path/to/log 的子文件夹中获取所有 .log 文件。它不会从 /path/to/log 文件夹本身获取日志文件。如果此设置保留为空,则 Filebeat 将根据您的操作系统选择日志路径。
var.first_interval
模块第一次启动时要回溯多长时间,这支持以整天为单位的值(24 小时、48 小时等)。
var.audit_type
要收集的审计类型,可以是“组”或“组织”。
var.audit_id
与 audit_type 相关的 ID。如果审计类型是组,则此值应为组 ID,如果审计类型是组织,则此值应为要从中收集数据的组织 ID。
var.api_token
为特定用户创建的 API 令牌,可在 Snyk 管理控制台中找到。
var.project_id
用于过滤的可选字段,将仅返回此特定项目的日志。
var.user_id
用于过滤的可选字段,用户公共 ID。将仅获取源自此用户操作的审计日志。
var.event
用于过滤的可选字段,将仅返回此特定事件的日志。
var.email_address
用于过滤的可选字段,用户电子邮件地址。将仅获取源自此用户操作的审计日志。

Snyk 审计日志 ECS 字段编辑

这是映射到 ECS 的 Snyk 审计日志字段列表。

Snyk 审计日志字段 ECS 字段

groupId

user.group.id

userId

user.id

event

event.action

created

@timestamp

vulnerabilities 文件集设置编辑

此功能处于测试阶段,可能会发生变化。设计和代码不如正式的 GA 功能成熟,并按原样提供,不提供任何保证。测试版功能不受官方 GA 功能支持 SLA 的约束。

要配置 Filebeat 对 Snyk 漏洞 API 的访问权限,您必须按照Snyk 文档中的说明生成 API 访问令牌

配置示例

- module: snyk
  vulnerabilities:
    var.input: httpjson
    var.interval: 24h
    var.api_token: 53453Sddf8-7fsf-414234gfd-9sdfb7-5asdfh9f8e342
    var.orgs:
      - 12354-asdfdf-123543-asdsdfg
      - 76554-jhggfd-654342-hgrfasd

还有多个可选的配置选项可用于筛选掉不需要的内容,如下例所示

- module: snyk
  vulnerabilities:
    var.input: httpjson
    var.interval: 24h
    var.api_token: 53453Sddf8-7fsf-414234gfd-9sdfb7-5asdfh9f8e342
    var.orgs:
      - 12354-asdfdf-123543-asdsdfg
      - 76554-jhggfd-654342-hgrfasd
    var.included_severity:
      - medium
      - high
    var.types:
      - vuln
var.paths
一个基于 glob 的路径数组,用于指定在何处查找日志文件。Go Glob支持的所有模式在这里也受支持。例如,您可以使用通配符从预定义级别的子目录中获取所有文件:/path/to/log/*/*.log。这将从 /path/to/log 的子文件夹中获取所有 .log 文件。它不会从 /path/to/log 文件夹本身获取日志文件。如果此设置保留为空,则 Filebeat 将根据您的操作系统选择日志路径。
var.first_interval
模块第一次启动时要回溯多长时间,这支持以整天为单位的值(24 小时、48 小时等)。
var.api_token
为特定用户创建的 API 令牌,可在 Snyk 管理控制台中找到。
var.orgs
用于过滤结果的组织 ID 列表。每行一个组织 ID,以 - 符号开头
var.included_severity
用于过滤的可选字段列表,用于过滤结果的问题严重性级别。
var.exploit_maturit
用于过滤的可选字段列表,用于过滤结果的问题利用成熟度级别。
var.types
用于过滤的可选字段列表,用于过滤结果的问题类型。
var.languages
用于过滤的可选字段列表,用于过滤结果的语言类型。
var.identifier
用于过滤的可选字段,用于按问题名称过滤的搜索词,或确切的 CVE 或 CWE。
var.ignored
用于过滤的可选字段,如果设置为 true,则仅包含被忽略的问题,如果设置为 false,则仅包含未被忽略的问题。
var.patched
用于过滤的可选字段,如果设置为 true,则仅包含被忽略的问题,如果设置为 false,则仅包含未被忽略的问题。
var.fixable
用于过滤的可选字段,如果设置为 true,则仅包含被忽略的问题,如果设置为 false,则仅包含未被忽略的问题。
var.is_fixed
用于过滤的可选字段,如果设置为 true,则仅包含被忽略的问题,如果设置为 false,则仅包含未被忽略的问题。
var.is_patchable
用于过滤的可选字段,如果设置为 true,则仅包含被忽略的问题,如果设置为 false,则仅包含未被忽略的问题。
var.is_pinnable
用于过滤的可选字段,如果设置为 true,则仅包含被忽略的问题,如果设置为 false,则仅包含未被忽略的问题。
var.min_priority_score
用于过滤的可选字段,最小优先级分数,范围为 0-1000
var.max_priority_score
用于过滤的可选字段,最大优先级分数,范围为 0-1000

Snyk 审计日志 ECS 字段编辑

这是映射到 ECS 的 Snyk 漏洞字段列表。

|============================================================| | Snyk 字段 | ECS 字段 | | issue.description | vulnerability.description | | issue.identifiers.CVE | vulnerability.id | | issue.identifiers.ALTERNATIVE | vulnerability.id | | issue.cvssScore | vulnerability.score.base | | issue.severity | vulnerability.severity | | issue.url | vulnerability.reference | |============================================================|

字段编辑

有关模块中每个字段的说明,请参阅导出字段部分。