Gitlab CI/CD scanners cover a range of different scan types which are necessary to ensure the code doesn't contain known vulnerabilities.
SAST which stands for Static Application Security Testing discovers patterns of known vulnerabilities such as SQL injection, XSS, dangerous functions, etc by statically analysing the code.
Dependency scanner is meant to find dependencies with known vulnerabilities.
Secret Detection aims at discovering confidential values (secrets) that are hardcoded inside thecoe. These include values hardcoded passwords, private keys and private access tokens.
DAST (Dynamic Application Security Testing) performs tests on the running version of software. That is, runtime values such as different user inputs could be used by the scanner to test the behaviour of software. This brings a lot of value to DAST compared to static testing tools such as SAST and Dependency scanning which are not aeare of the run-time behaviour of the software.
Container scanner discovers known vulnerabilities of the docker images that your application's image may use. It is noteble that continer scanner and dependency scanner are deemed as Software Composition Analysis (SCA). SCA aims at finding known vulnerabilities that are introduced by external sources, not the code we have written.
There are other scanners available in Gitlab such as API Fuzzer and IaC (Infra as Code) scanner.
We can use the above scanners to integrate security testing into CI/CD pipelines. This allows continious security testing according to a shift-left strategy rather than testing security late before going to production.
For further information you can see Gitlab's documentation:
https://docs.gitlab.com/ee/user/application_security/
Why CI/CD scanners are important, and what additional values does a tool like Gitlab provide? Well, assume tens of developers working on different projects in a company. You can imagine there might be tens or even hundreds of changes to the codes per day. Many of those changes may change the attack surface or introduce new vulnerabilities to your product. A CI/CD framework like Gitlab helps you automate security tests and simplifies the integration of scan jobs into the pipelines. That means your DevOps/DevSecOps engineers get rid of the maintainance burden of different security tools and can focus on the esults of secuity tests.