Cloud 8 min read

DevSecOps vs. DevOps: Where Security Fits In

What sets DevSecOps apart from traditional DevOps? Shift-left security, SAST, SCA, DAST tooling, and concrete CI/CD pipeline examples.

DevSecOps vs. DevOps: Where Security Fits In

DevOps has fundamentally changed how teams build and ship software. Continuous integration, automated deployments, infrastructure as code. All are standard practice in modern engineering organizations. What many pipelines still lack: security as a first-class citizen in the process, not a gate bolted on at the end. That’s where DevSecOps comes in.

What DevOps Gets Right and Where It Stops

DevOps bridges the gap between development and operations. Automated pipelines ensure code moves to production quickly and reliably. The result: shorter release cycles, fewer manual errors, and better cross-team collaboration.

The problem: in many organizations, security runs as a parallel process that only kicks in shortly before (or even after) release. A penetration test two weeks before go-live, a security review that becomes a sprint bottleneck. This creates friction, delays, and at worst a false sense of security.

Common symptoms:

  • Vulnerabilities discovered only in production
  • Security reviews blocking releases for days or weeks
  • Developers treating security as “someone else’s problem”
  • Dependency updates happening reactively, not proactively

DevSecOps: Security as Part of the Pipeline

DevSecOps isn’t a new framework or an additional tool. It’s the consistent extension of DevOps to include security, integrated into every pipeline step, not appended at the end.

The core idea is simple: Shift Left. Security checks move as early as possible in the development process. Instead of testing whether the application is secure at the end, every stage runs automated checks.

DevOps:     Plan → Code → Build → Test → Deploy → Monitor
DevSecOps:  Plan → Code+SAST → Build+SCA → Test+DAST → Deploy+Compliance → Monitor+Threat Detection

The difference isn’t additional phases; it’s the integration of security checks into existing steps.

Four Pillars of DevSecOps in Practice

The implementation of DevSecOps rests on four core technical capabilities. Each must be integrated into the CI/CD pipeline to achieve a truly secure development process.

Static Application Security Testing (SAST)

SAST tools analyze source code before it’s even compiled or executed. Ideally, this happens in the merge request, before code reaches the main branch.

# GitLab CI – SAST stage with Semgrep
sast:
  stage: test
  image: returntocorp/semgrep
  script:
    - semgrep scan --config auto --json --output semgrep-results.json src/
  artifacts:
    reports:
      sast: semgrep-results.json
  rules:
    - if: $CI_MERGE_REQUEST_ID

Semgrep is a solid starting point: open source, fast, and its rulesets can be customized for your codebase. Alternatives like SonarQube offer broader coverage but require more setup.

Software Composition Analysis (SCA)

Most applications consist of 70 to 90 percent third-party dependencies. SCA tools check these dependencies for known vulnerabilities (CVEs) and license issues.

# GitLab CI – Dependency scanning with Trivy
dependency_scan:
  stage: test
  image: aquasec/trivy:latest
  script:
    - trivy fs --scanners vuln --format json --output trivy-deps.json .
  artifacts:
    reports:
      dependency_scanning: trivy-deps.json
  allow_failure: false

The key detail: allow_failure: false means a critical CVE actually stops the build. It’s uncomfortable at first, but that’s exactly the point. Security findings shouldn’t be ignorable.

Dynamic Application Security Testing (DAST)

DAST tools test the running application from the outside. They work similarly to automated penetration tests. This typically runs against a staging environment after deployment.

# GitLab CI – DAST with OWASP ZAP
dast:
  stage: dast
  image: ghcr.io/zaproxy/zaproxy:stable
  script:
    - zap-baseline.py -t $STAGING_URL -r zap-report.html -J zap-report.json
  artifacts:
    paths:
      - zap-report.html
  rules:
    - if: $CI_COMMIT_BRANCH == "main"

OWASP ZAP in baseline mode is a realistic entry point. The full scan takes significantly longer and is better suited for weekly scheduled pipelines than for every commit.

Container and Infrastructure Security

If you run containers, you need to scan container images. Unpatched base images are one of the most common attack vectors in Kubernetes environments.

# GitLab CI – Container image scanning
container_scan:
  stage: test
  image: aquasec/trivy:latest
  script:
    - trivy image --severity HIGH,CRITICAL --format json
        --output trivy-image.json $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
  artifacts:
    reports:
      container_scanning: trivy-image.json

Trivy covers both OS packages and application dependencies inside the image. Combined with a Kubernetes admission controller (such as Kyverno or OPA Gatekeeper), you can prevent unscanned images from being deployed entirely.

What Changes in the Team

DevSecOps isn’t just a pipeline concern. It changes how teams work and who is responsible for what.

Security is no longer solely the job of a dedicated security team. Every developer shares responsibility for the security of their code. This doesn’t mean everyone needs to become a security expert. But a basic understanding of the OWASP Top 10, secure defaults, and dependency management is expected. A proven model is introducing security champions: developers with a particular interest in security who serve as go-to contacts within their team. This isn’t a new title or role, but an additional perspective.

Instead of using security reviews as blockers, mature DevSecOps teams rely on automated guardrails. The pipeline stops automatically on critical findings. Everything else gets logged as a warning and addressed in the next sprint.

When Is the Right Time to Start?

Not every team needs a fully built-out DevSecOps pipeline from day one. But the entry point comes earlier than many expect. The path forward typically unfolds in stages.

Dependency scanning (SCA) and secret detection should start immediately. Both can be integrated into any CI/CD pipeline in under an hour and cover the most common vulnerabilities. The next step involves SAST in the merge request using Semgrep or SonarQube as a quality gate where findings must be fixed before code is merged.

In the medium term, add DAST in the staging environment, container image scanning, and a Kubernetes admission controller. For the longer term, consider threat modeling as part of feature planning, security scorecards per service, and automated compliance checks against standards like ISO 27001 or SOC 2. For organizations operating in the DACH region (Germany, Austria, Switzerland), BSI Grundschutz is often the relevant baseline (the German federal cybersecurity framework).

Secret Detection: the Quick Win

One check that should be in every pipeline: automatic detection of secrets in code. API keys, passwords, private keys. They end up in repositories more often than anyone likes to admit.

# GitLab CI – Secret detection with gitleaks
secret_detection:
  stage: test
  image: zricethezav/gitleaks:latest
  script:
    - gitleaks detect --source . --report-format json
        --report-path gitleaks-report.json
  artifacts:
    reports:
      secret_detection: gitleaks-report.json
  rules:
    - if: $CI_MERGE_REQUEST_ID

Gitleaks checks not just the current state. It can also scan the full git history. In our experience, this is the single check with the best effort-to-value ratio. Teams who take supply-chain risks seriously should also keep an eye on incidents like the Trivy npm supply-chain attack — and weigh whether their architecture (monolith or microservices) fits their security and deployment strategy.

Conclusion

DevSecOps doesn’t replace DevOps. It extends it with the dimension many pipelines are missing. Getting started doesn’t have to be complex: integrate dependency scanning and secret detection into your existing CI/CD pipeline, get the team familiar with the OWASP Top 10, and treat security findings as real blockers. The rest grows organically. Teams that start shifting left today save themselves the pre-release penetration test marathon tomorrow. And the team learns to see security not as a brake, but as part of engineering culture. For teams already thinking about cloud migration, integrating security from the start avoids costly retrofits later.

We help teams build secure CI/CD pipelines and DevSecOps processes. Schedule a consultation →

Frequently Asked Questions

What is shift-left security?

Shift-left security moves security checks as early as possible in development. Instead of testing for vulnerabilities before release, security scans run at every pipeline stage: SAST in the merge request, SCA for dependencies, DAST in staging. Early detection prevents vulnerable code from reaching production and is far cheaper than finding and fixing issues after deployment.

What tools do I need for DevSecOps?

Essential tools include Semgrep (SAST), Trivy (SCA and container scanning), OWASP ZAP (DAST), and Gitleaks (secret detection). These are open source and integrate into GitLab CI or GitHub Actions in under an hour. Start with dependency scanning and secret detection, add SAST in the merge request, then layer in DAST and container scanning as your team matures.

How long does DevSecOps setup take?

Dependency scanning and secret detection integrate in one hour. SAST setup takes another hour to two hours. Full DevSecOps with DAST, container scanning, and Kubernetes admission controllers is an iterative process spanning several sprints. Start with the quick wins and expand gradually rather than attempting full implementation immediately.

Why treat security findings as blockers?

Security findings should stop the build because they represent real risks. When vulnerabilities are ignorable warnings, teams learn to ignore them. Making critical findings actual blockers creates accountability and prevents vulnerable code from merging. Lesser findings can be warnings logged for next sprint, but critical ones must be mandatory.

What is the OWASP Top 10?

The OWASP Top 10 is a consensus list of the ten most critical web application security risks including injection attacks, broken authentication, sensitive data exposure, and XML external entities (XXE). Understanding these ten categories helps developers write secure code and provides a common language for security discussions. It is a foundation every team should know.

#devsecops #devops #security #ci-cd #shift-left
Share:
Martin-Jan Sklorz

Martin-Jan Sklorz

CTO – Software Architecture, Cloud & AI Engineering

Designs scalable software architectures and integrates AI into modern cloud environments. Focus on maintainable systems that hold up in daily operations.

Software ArchitectureAPI DesignBackend DevelopmentMicroservicesCloud-nativeKubernetesLLM IntegrationAgent Engineering