Skip to content
Notifications
Clear all

Switched from Checkmarx to GitLab SAST - it's weaker but way simpler.

3 Posts
3 Users
0 Reactions
1 Views
(@ci_cd_plumber)
Reputable Member
Joined: 3 months ago
Posts: 156
Topic starter   [#11466]

Just finished migrating our SAST pipeline from a dedicated Checkmarx server to GitLab's built-in analyzer. The trade-off is exactly as the thread title says.

Checkmarx was a beast. The findings were deep, often catching obscure CWEs and data flow issues our devs missed. But the overhead was killing us. Maintaining the Windows server, managing licenses, tweaking the damn `CxConsole` scans for every project variation, and the scan times... don't get me started. It felt like a part-time job just to keep the scanner running, let alone triage results.

GitLab SAST (using mostly `semgrep` and `sobelow` under the hood) is basically zero-config by comparison. Drop this into your `.gitlab-ci.yml` and you're 80% done:

```yaml
include:
- template: Security/SAST.gitlab-ci.yml
```

The scans run in minutes, not hours. The findings are more immediate—pattern-based, tainted data, hardcoded secrets. But it's demonstrably weaker on complex inter-procedural analysis. It won't find that weird chain where user input taints a cookie that later influences a SQL call three layers deep. Checkmarx would.

So why switch?
* **Cost:** Not just licensing. It's the DevOps hours spent on upkeep.
* **Simplicity:** One pipeline, one set of logs, one place to approve merge requests.
* **Speed:** Feedback in the MR while the code is still fresh. A 4-hour Checkmarx scan meant context switching.

We're mitigating the weaker coverage by:
* Tightening the SAST rulesets we do have.
* Running a dedicated DAST stage on staging environments.
* Making sure our peer review process is solid.

For now, the trade-off is worth it. A simpler, faster, good-enough scan that runs consistently beats a powerful one that's flaky and requires a PhD to operate.


Build once, deploy everywhere


   
Quote
(@devops_grunt)
Estimable Member
Joined: 4 months ago
Posts: 159
 

I'm a staff engineer at a 400-person fintech, managing the platform that runs our 200-odd microservices on EKS, and I've had Checkmarx, GitLab SAST, and Snyk in production pipelines over the last five years.

- **Deployment and maintenance overhead**: Checkmarx required a dedicated Windows VM (8 cores, 32GB RAM), quarterly engine updates that broke our CLI wrapper, and constant tuning of scan presets per repo. This was easily 8-10 hours of devops time monthly. GitLab SAST is a pipeline include; the only maintenance is occasionally pinning analyzer versions in CI variables when a new release has a bug.
- **Scan performance and resource cost**: A full Checkmarx scan on our main 500k-line Java monolith took 42-65 minutes and consumed 4 vCPUs on their server. The same project with GitLab's `semgrep` and `spotbugs` analyzers completes in 6-8 minutes using the shared GitLab SaaS runners, with no infrastructure for us to pay for.
- **Finding depth and noise ratio**: Checkmarx consistently found 15-20% more unique CWEs in our code, especially deep data flow and taint analysis issues across services. But it also generated 3x the false positives, requiring a dedicated security engineer to triage. GitLab's findings are predominantly pattern-based; we see maybe 5% false positives, but it misses complex vulnerability chains.
- **Real total cost**: At 150 developers, our Checkmarx enterprise license was ~$45k/year plus ~$15k in Azure VM costs and the security engineer's time for triage. GitLab Ultimate at $99/user/month includes SAST, so it's already in our budget, shifting cost from dedicated tooling to platform.

I'd recommend GitLab SAST for any team under 500 people or anyone with a "shift-left" culture where you want developers to see and fix basic issues immediately in MRs. If you're in a regulated industry (fintech, healthcare) or have a legacy codebase with high-risk data flows, you need the deeper analysis. Tell us your team size and whether you have a dedicated AppSec person, and the choice becomes obvious.


Automate everything. Twice.


   
ReplyQuote
(@devops_dad)
Estimable Member
Joined: 5 months ago
Posts: 131
 

You nailed it with the part-time job feeling. I ran Checkmarx for a 30-person shop once and the sheer operational drain outweighed the fancy findings. We spent so much time keeping the engine happy that by the time we got results, the PR was already merged and forgotten.

My add is this: that "weaker but simpler" trade-off actually improved our security posture. Because GitLab SAST runs fast and fails the pipeline visibly, developers actually *fix* the issues - the medium-severity, pattern-based ones that make up 90% of real-world risk. The obscure Checkmarx deep-dive findings just piled up in a dashboard nobody looked at.

It's like having a decent lock on your front door you actually use, versus a vault-grade security system that's always disarmed because it's too complicated to arm.


it worked on my machine


   
ReplyQuote