首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何根据发现的snyk漏洞的严重程度控制管道故障?

如何根据发现的snyk漏洞的严重程度控制管道故障?
EN

Stack Overflow用户
提问于 2019-06-27 23:35:30
回答 2查看 501关注 0票数 0

我正在使用Gitlab开发CI/CD管道,目前正在使用snyk运行依赖安全分析。它工作得很好,但我现在想实现一些逻辑,如果发现的漏洞低于给定的阈值,则允许管道在此步骤中继续运行,而不会失败。例如,如果发现了一些中等严重程度的漏洞,但没有发现其他漏洞,则允许这样做,并且不要使管道失败。但是,如果发现了一些中等严重程度的漏洞,并且还发现了一些高度严重的漏洞,则由于这些高度严重的漏洞而导致管道失败。

我使用的是共享的Gitlab runners,所以我通过在线UI来观察所有的东西。我已经检查了我正在使用的命令的退出代码(snyk test),但我所看到的是,如果发现任何漏洞,进程都会以“非零”退出代码退出。当我运行snyk测试时,它发现了6个漏洞,3个高严重性和3个中等严重性,退出代码返回了echo $?是1(如下所示)。

下面是snyk test命令和退出代码的演示:

代码语言:javascript
复制
$ snyk test

...some vulnerabilities...

Tested 126 dependencies for known vulnerabilities, found 6 vulnerabilities, 32 vulnerable paths.

$ echo $?
1

下面是我的.gitlab-ci.yml中定义的snyk作业,如果有用的话:

代码语言:javascript
复制
# TODO Make stage success/failure based on vulnerability severity
snyk-dependency-analysis:
  image: awesomeaiden/custom_snyk
  stage: static_analysis
  only:
    changes:
      - boot-kotlin-svc/**/*
  before_script:
    - cd boot-kotlin-svc
    - export GRADLE_USER_HOME=`pwd`/.gradle
    - export SNYK_TOKEN=$secret_snyk_token
  after_script:
    - cd ..
  variables:
    SNYK_TOKEN: $secret_snyk_token
  script:
    - snyk test
  cache:
    key: "$CI_COMMIT_REF_NAME"
    policy: pull
    paths:
      - build
      - .gradle
  allow_failure: true

我很希望能够获得最高的检测到的严重级别,并使用它来失败或不失败管道,但我在网上看不到任何这样的例子,甚至不知道这是否可能。

EN

回答 2

Stack Overflow用户

发布于 2019-06-27 23:45:42

答案已解决,snyk支持人员表示,您可以在运行snyk命令时使用严重性阈值选项来忽略低于某个阈值的漏洞。

Snyk支持答案:

我们确实有退出代码,当发现漏洞时,我们使用退出代码1,其他失败时使用退出代码2。您还可以将其与-- severity threshold一起使用,例如,如果您只想在严重程度较高的漏洞上失败。

票数 0
EN

Stack Overflow用户

发布于 2020-04-10 20:21:46

您可以添加标志--severity-threshold=low|medium|high

使用此标志,则仅报告所提供级别或更高级别的漏洞

代码语言:javascript
复制
snyk test --all-sub-projects --severity-threshold=high

另外,在默认情况下,Snyk会扫描所有可能的配置,包括仅用于测试的配置。要排除这些依赖项,可以使用--configuration-matching标志。下面是Gradle项目的示例:

代码语言:javascript
复制
snyk test --all-sub-projects --configuration-matching=^(?!test).*

这将排除以下配置:testCompiletestCompileClasspathtestRuntimeClasspathtestImplementation

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56794473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档