Snyk 模块

编辑

此功能处于测试阶段,可能随时更改。其设计和代码不如正式 GA 功能成熟,按原样提供,不提供任何担保。测试版功能不受正式 GA 功能支持 SLA 的约束。

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

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

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

  • 设置日志文件的默认路径(但不用担心,您可以覆盖默认值)
  • 确保每个多行日志事件都作为单个事件发送
  • 使用 Elasticsearch Ingest Pipeline 解析和处理日志行,将数据塑造成适合在 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
模块首次启动时回溯多远,支持以完整天数为单位的值(24h、48h 等)。
var.audit_type
要收集的审计类型,可以是“group”或“organization”。
var.audit_id
与 audit_type 相关的 ID。如果审计类型是 group,则此值应为组 ID;如果审计类型是 organization,则此值应为要从中收集数据的组织 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
模块首次启动时回溯多远,支持以完整天数为单位的值(24h、48h 等)。
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 | |============================================================|

字段

编辑

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