DevSecOps in 2025: Shift-Left That Actually Works
SBOM, secrets scanning, SAST/DAST in CI: a pragmatic blueprint for embedding security into pipelines without slowing engineers down.
Security teams have spent the last five years repeating "shift left" like a mantra. Yet most pipelines still run a single SAST job at the end of the build, secrets keep landing in Git, and SBOMs are generated to satisfy auditors rather than to drive decisions. The Log4Shell, SolarWinds and XZ Utils incidents made one thing clear: supply chain attacks are now the dominant threat model, and CI is where the battle is won or lost.
Here is what a credible DevSecOps setup looks like in 2025, based on what we deploy for clients running Kubernetes, multi-cloud and regulated workloads (DORA, NIS2, EU CRA).
Shift-left, but with guardrails, not gates
Shifting left fails when every finding blocks the pipeline. Developers learn to bypass it, and signal drowns in noise. The pattern that works:
- Pre-commit: fast, local checks (secrets, lint, IaC misconfig). Use
pre-commithooks withgitleaksandtrivy config. - Pull request: SAST + dependency scan, results posted as PR comments, only new high/critical findings fail the check.
- Main branch: full scan, SBOM generation, signing, attestations.
- Pre-prod: DAST, runtime policy validation.
The principle: fail fast on what the developer can fix now, defer the rest to dashboards. Tools like Semgrep and SonarQube support diff-aware scanning natively — use it.
SBOM is not paperwork
A Software Bill of Materials only matters if you can query it when a CVE drops. Generate SPDX or CycloneDX on every build, store it next to the artifact, and feed it into a vulnerability database like Dependency-Track or Grype + a central registry.
With Syft and Cosign, the workflow is straightforward:
# .github/workflows/build.yml (excerpt)
- name: Generate SBOM
run: syft packages dir:. -o cyclonedx-json > sbom.json
- name: Scan SBOM
run: grype sbom:sbom.json --fail-on high
- name: Sign image + attest SBOM
run: |
cosign sign --yes $IMAGE
cosign attest --yes --predicate sbom.json \
--type cyclonedx $IMAGE
When the next Log4Shell hits, you answer "are we affected?" with a single SQL query, not a three-day audit.
Supply chain: SLSA, provenance, and admission control
The SLSA framework (Supply-chain Levels for Software Artifacts) gives you a maturity ladder. Realistic targets:
| Level | What it means | Effort | |-------|---------------|--------| | SLSA 1 | Build process documented, provenance generated | Low | | SLSA 2 | Signed provenance, hosted build service | Medium | | SLSA 3 | Hardened builds, non-falsifiable provenance | High | | SLSA 4 | Two-party review, hermetic builds | Very high |
Most teams should target SLSA 3 for production artifacts. GitHub Actions with the official slsa-github-generator, or Tekton Chains on self-hosted, gets you there.
Close the loop at deployment time: Kyverno or Sigstore Policy Controller in your Kubernetes admission layer rejects any image without a valid Cosign signature and SLSA provenance. No signature, no pod.
Secrets: stop scanning, start preventing
Secret scanning catches mistakes after the fact. The actual fix is removing the need to commit secrets in the first place:
- Short-lived credentials via OIDC: GitHub Actions, GitLab CI and Buildkite all federate with AWS, GCP and Azure. No more static
AWS_ACCESS_KEY_IDin CI variables. - Vault or cloud-native KMS for runtime secrets, injected via sidecar (Vault Agent, External Secrets Operator).
- Push protection on Git providers (GitHub Advanced Security, GitLab Ultimate) blocks secrets before they hit the remote.
- gitleaks as a backstop in pre-commit and CI.
If you still have long-lived cloud keys in 2025, that is the single highest-ROI fix on your backlog.
SAST and DAST in CI: pick the right tool for the stage
SAST and DAST solve different problems and should not compete for the same pipeline slot.
- SAST (Semgrep, CodeQL, SonarQube): runs on every PR, finds injection patterns, insecure crypto, taint flows. Tune the ruleset — default configs produce too much noise. Write custom Semgrep rules for your internal anti-patterns; it pays off within weeks.
- DAST (OWASP ZAP, StackHawk, Burp Suite Enterprise): runs against a deployed environment, ideally an ephemeral preview. Authenticated scans are non-negotiable — unauthenticated DAST misses 80% of the application surface.
- IAST (Contrast, Seeker): instruments running apps during integration tests. Lower false positive rate than DAST, but adds runtime overhead.
A pragmatic CI stage budget:
PR pipeline (< 8 min):
- Semgrep diff scan
- Grype on changed manifests
- gitleaks
Main pipeline (< 20 min):
- Full SAST
- SBOM + sign + attest
- Container scan
Nightly / pre-prod:
- DAST (authenticated)
- Infrastructure drift scan
- License compliance
DevSecOps maturity checklist
Use this to benchmark where you stand:
- [ ] SBOMs generated and queryable for every production artifact
- [ ] All container images signed with Cosign, verified at admission
- [ ] SLSA provenance attached to release artifacts (level 2 minimum)
- [ ] No static cloud credentials in CI — OIDC federation everywhere
- [ ] Diff-aware SAST on every PR, full scan on main
- [ ] Authenticated DAST against ephemeral preview environments
- [ ] Secret push protection enabled on all repos
- [ ] Vulnerability SLA defined per severity, tracked in Dependency-Track or equivalent
- [ ] Incident playbook for "new critical CVE in a dependency" tested in the last 6 months
Key takeaways
- Guardrails beat gates: diff-aware scanning and PR-level feedback keep developers productive while still raising the security bar.
- SBOMs are an asset, not a deliverable: store, query and act on them — otherwise you are generating JSON for nothing.
- The supply chain ends at admission control: sign artifacts, verify them in Kubernetes, reject everything else.
- Kill long-lived secrets: OIDC federation and Vault remove an entire category of incidents.
- Combine SAST, DAST and IAST deliberately — each catches what the others miss, but only when tuned and placed at the right pipeline stage.
Read also
- DevSecOpsMay 14, 2026
DevSecOps in 2025: A Practical Pipeline Blueprint
Shift-left security is a discipline, not a slogan. Here's how to wire SBOMs, SAST/DAST and secret scanning into CI without slowing your teams down.
Read article - Menu QR — gain de temps en cuisineJune 13, 2026
QR Code Menus: How Restaurants Save 45 Minutes a Day
Thomas runs a bistro in Nantes. Switching from paper menus to QR menus saved his team 50 minutes a day. Here's exactly how he did it.
Read article - Click & CollectJune 12, 2026
Click & Collect: How to Let Customers Order Online and Pick Up in Store
Hélène runs a cheese shop in Annecy. Last winter she added online ordering with in-store pickup. Here's exactly how she did it — and what it cost.
Read article