Skip to content

Remove requirement for Docker-In-Docker for SAST scanners

Problem to solve

Requiring Docker-in-Docker (DinD) for security scanners causes security, performance and setup concerns for many users. DinD is only required to be able to orchestrate the analyzers. One solution would be to port the code of the sast orchestrator directly into the runner.

NB: SAST and Dependency scanning share a common library and the same orchestration model, see Dependency Scanning issue

See &971 (closed) for previous comments.

Intended users

Proposal

As describe here:

Ideally, https://gitlab.com/gitlab-org/gitlab-ee/blob/master/lib/gitlab/ci/templates/Security/SAST.gitlab-ci.yml would just contain:

include:
  template: SAST-bandit.gitlab-ci.yml
  template: SAST-brakeman.gitlab-ci.yml
  template: SAST-gosec.gitlab-ci.yml
  [...]

So that we have only one SSOT and one single location to update for analyzers. Users who want to use specific analyzers can use the one-liner include directly.

Tasks

Documentation

Testing

What does success look like, and how can we measure that?

There is no more orchestration layer for SAST, instead each analyzer has its own job configured by the corresponding vendored template.

What is the type of buyer?

GitLab Ultimate

Links / references

Edited by rossfuhrman