如何在 CI 上缓存 OWASP 依赖检查 NVD 数据库

问题描述 投票:0回答:2

OWASP 依赖项检查是在我们的项目中自动发现漏洞的好方法,尽管将其作为每个项目 CI 管道的一部分运行时,仅下载 NVD 数据库就会增加 3-4 分钟的时间。

在 CI 管道上使用 maven / gradle 运行该数据库时,我们如何缓存该数据库?

caching continuous-integration owasp devsecops
2个回答
6
投票

经过一番研究,我找到了方法!

基本上,包含 NVM 数据库的文件称为:

nvdcve-1.1-[YYYY].json.gz
,即
nvdcve-1.1-2022.json.gz
,稍后将其添加到 Lucene 索引中。

使用 Gradle 插件运行依赖项检查时,将在以下位置创建文件:

$GRADLE_USER_HOME/.gradle/dependency-check-data/7.0/nvdcache/

当使用 Maven 运行时,它们创建于:

$MAVEN_HOME/.m2/repository/org/owasp/dependency-check-data/7.0/nvdcache/

因此,要将数据库缓存到 Gitlab CI 上,您只需将以下内容添加到您的

.gitlab-ci.yaml
(Gradle):

before_script:
  - export GRADLE_USER_HOME=`pwd`/.gradle

cache:
  key: "$CI_PROJECT_NAME"
  paths:
    - .gradle/dependency-check-data

第一个 CI 作业运行将创建缓存,连续的作业(来自相同或不同的管道)将获取它!


0
投票

如果我在 gitlab 中使用 docker:dind 服务,那么每个作业都将作为单独的 docker 容器运行,并且在运行该作业后它将销毁..

对于这种情况我们可以做什么?

© www.soinside.com 2019 - 2024. All rights reserved.