11.1 Secure Software Development Lifecycle (SSDLC) & DevSecOps Pipelines

Key Takeaways

  • The Shift-Left philosophy systematically relocates security controls, threat modeling, and policy validations from late-stage deployment gates into early requirements, architectural design, and developer IDEs, driving down defect remediation costs by up to two orders of magnitude.
  • Cloud-native threat modeling adapts structured frameworks like STRIDE and risk-centric methodologies like PASTA to evaluate distributed microservices, event-driven message brokers, serverless function event triggers, and cloud control plane IAM boundaries.
  • CI/CD pipelines represent mission-critical production environments that require dedicated defense-in-depth, including isolated ephemeral build runners, strictly scoped least-privilege service principals, and the eradication of static credentials via OpenID Connect (OIDC) Workload Identity Federation.
  • Branch protection rules, mandatory multi-party peer reviews, and cryptographically signed commits prevent malicious pull request injection, unauthorized pipeline modifications, and Poisoned Pipeline Execution (PPE) attacks.
  • Cryptographic artifact signing frameworks—notably Sigstore, Cosign, and in-toto—coupled with Supply-chain Levels for Software Artifacts (SLSA) establish non-falsifiable build provenance, verifying that production binaries originate strictly from authorized pipelines and audited source repositories.
Last updated: September 2026

11.1 Secure Software Development Lifecycle (SSDLC) & DevSecOps Pipelines

Quick Answer: Under the Cloud Security Alliance (CSA) Security Guidance v5 (Domain 10: Application Security), securing cloud-native applications requires transitioning from legacy, end-of-lifecycle penetration testing to a continuous Secure Software Development Lifecycle (SSDLC) grounded in the Shift-Left philosophy. Security requirements, automated policy gates, and architectural threat modeling—utilizing frameworks such as STRIDE and PASTA—must be embedded directly into early ideation, architecture, and developer workflows. Furthermore, the Continuous Integration and Continuous Delivery (CI/CD) pipeline itself constitutes high-value production infrastructure. Securing the pipeline requires isolated ephemeral build runners, the elimination of static long-lived credentials in favor of OpenID Connect (OIDC) Workload Identity Federation, cryptographically enforced branch protection rules, and verifiable artifact provenance and signing via the Supply-chain Levels for Software Artifacts (SLSA) framework and Cosign.

In legacy computing environments, software security operated as an external audit function. Monolithic applications progressed through multi-month waterfall development cycles, culminating in a pre-production gate where an external team conducted manual code audits and dynamic vulnerability assessments. In cloud-native ecosystems characterized by microservices, serverless computing, and continuous deployments, relying only on a late security gate creates serious gaps. The speed of cloud deployment demands that security be engineered into the software fabric itself as automated, repeatable, and programmatic controls.

CCSK v5 Domain 10, Security Guidance v5, and the Cloud Controls Matrix (CCM v4.1) Application Security domain all address integrating security into development and deployment workflows. Modern cloud applications are inextricably linked with the infrastructure they run on, declared as Infrastructure as Code (IaC) and orchestrated via software-defined pipelines. Consequently, securing the application demands securing both the code and the continuous delivery apparatus that compiles, tests, and deploys it.


The Shift-Left Philosophy vs. Legacy Security Models

The fundamental thesis of Shift-Left is temporal relocation: moving security analysis, compliance checks, and risk evaluations as far toward the beginning (the "left" side) of the software delivery timeline as technically feasible.

┌────────────────────────────────────────────────────────────────────────┐
│                     THE SHIFT-LEFT ECONOMIC REALITY                    │
├────────────────────────────────────────────────────────────────────────┤
│  REMEDIATION EFFORT IS CONTEXT DEPENDENT:                              │
│                                                                        │
│   Requirements / Design ─────► adjust architecture and threat model    │
│   Coding / Build ────────────► fix code, tests, dependencies, pipeline │
│   Staging / Production ──────► coordinate deployment and operations    │
│   Incident Response ─────────► contain harm, recover, and learn        │
├────────────────────────────────────────────────────────────────────────┤
│  CULTURAL EVOLUTION:                                                   │
│  • Legacy Gatekeeper: Security is a blocker; manual approvals; silos.  │
│  • Cloud-Native DevSecOps: Security is guardrails; automated testing;  │
│    developers retain ownership assisted by automated feedback loops.   │
└────────────────────────────────────────────────────────────────────────┘

The Economics of Early Flaw Detection

Early discovery usually reduces rework because architecture, code, tests, documentation, and deployed systems have fewer downstream dependencies to change. Exact cost multipliers vary by organization and defect, so treat “shift left” as a workflow principle rather than a universal 30-to-100-times formula.

When a vulnerability such as an unauthenticated administrative API route or an insecure cryptographic cipher escapes into a production cloud environment, remediation entails:

  • Emergency engineering interruptions and out-of-band hotfixes.
  • Invalidation of downstream caches, API contracts, and client SDKs.
  • Potential customer notifications, regulatory disclosures (e.g., GDPR, HIPAA), and compliance audits.
  • Emergency infrastructure redeployments and incident response forensic engagements.

By embedding automated security checks directly into developer IDEs (via real-time linting), pre-commit hooks, and pull request workflows, developers receive immediate context-sensitive feedback while the code is actively being written, reducing remediation latency from months to seconds.

DevSecOps: Culture, Automation & Guardrails

DevSecOps is not merely the introduction of automated scanners into a Jenkins or GitHub Actions pipeline. It represents a cultural and operational alignment between Development, Security, and Operations:

  • Guardrails Over Gates: Rather than forcing development teams to halt deployments for manual security reviews, security engineering teams construct automated, self-service guardrails. If code adheres to established baseline policies (e.g., passing automated SAST, container vulnerability checks, and IaC linting), it flows automatically into production.
  • Shared Accountability: Developers take primary ownership of the security posture of their services, supported by centralized security platform teams that curate security libraries, base golden templates, and pipeline analyzers.
  • Continuous Observability: Security does not terminate at release; runtime telemetry feeds directly back into the development backlog to inform future threat models and hardening priorities.

Cloud-Native Threat Modeling: STRIDE & PASTA in Modern Architectures

Threat modeling is the proactive, structured analysis of application architecture to identify potential threat vectors, design weaknesses, and operational boundaries before code is finalized. While traditional threat modeling evaluated static client-server topologies, cloud-native threat modeling must account for decoupled microservices, asynchronous event buses, multi-tenant cloud storage, and ephemeral serverless compute.

┌────────────────────────────────────────────────────────────────────────┐
│                     STRIDE THREAT MODELING TAXONOMY                    │
├────────────────────────────────────────────────────────────────────────┤
│ Threat Category         Security Property Violated   Cloud Countermeasure│
├────────────────────────────────────────────────────────────────────────┤
│ [S]poofing Identity     Authentication               OIDC, mTLS, FIDO2 │
│ [T]ampering with Data   Integrity                    HMAC, TLS, KMS Sign │
│ [R]epudiation           Non-Repudiation              Append-Only Trails│
│ [I]nformation DisclosureConfidentiality              Envelope Crypto   │
│ [D]enial of Service     Availability                 Rate Limits, WAF  │
│ [E]levation of PrivilegeAuthorization                Least-Priv IAM    │
└────────────────────────────────────────────────────────────────────────┘

1. STRIDE Threat Model Applied to Cloud Primitives

Developed by Microsoft and recognized by CSA as a foundational threat categorization framework, STRIDE evaluates components across six specific threat classes:

  1. Spoofing Identity: An attacker assumes the identity of a legitimate user, service, or API client.
    • Cloud Context: An attacker steals an ephemeral AWS STS token or Kubernetes Service Account JWT to impersonate a microservice.
    • Countermeasure: Mutual TLS (mTLS) with SPIFFE/SPIRE x509 workload identities; strictly bound cloud IAM roles; phishing-resistant FIDO2/WebAuthn for administrative users.
  2. Tampering with Data: Malicious modification of application data in transit, at rest, or in flight.
    • Cloud Context: An attacker tampers with messages traversing an unencrypted Amazon SQS queue or modifies an object in cloud storage before a downstream serverless function processes it.
    • Countermeasure: Strict message signing using digital signatures or HMACs; enforcing TLS 1.3 in transit; Object Lock and client-side encryption.
  3. Repudiation: A user or service performs an action but denies involvement due to insufficient proof or manipulable audit logs.
    • Cloud Context: A rogue insider deletes a customer database record, but database audit logging was disabled or logs were overwritten.
    • Countermeasure: Tamper-evident, cryptographically validated logging pipelines; forwarding audit events to append-only, WORM-compliant storage (e.g., Amazon S3 Object Lock in Compliance Mode) with separated administrative domains.
  4. Information Disclosure: Unauthorized exposure of sensitive data to entities lacking authorization.
    • Cloud Context: An application leaks database connection strings or AWS access keys in standard HTTP error responses or logs unredacted customer PII to cloud log aggregation buckets.
    • Countermeasure: Envelope encryption with Customer-Managed Keys (CMKs); centralized secrets vaults; automated log scrubbing and DLP filters.
  5. Denial of Service (DoS): Exhausting system resources to prevent legitimate users from accessing the application.
    • Cloud Context: An attacker sends computationally complex, nested GraphQL queries or massive XML/JSON payloads to serverless endpoints, exhausting concurrent execution limits and incurring financial denial-of-wallet (DoW).
    • Countermeasure: API Gateway request throttling, strict execution timeouts, query depth limiting, and cloud Web Application Firewall (WAF) rate rules.
  6. Elevation of Privilege: An unprivileged user or compromised workload escalates privileges to access unauthorized administrative capabilities.
    • Cloud Context: A container with excessive Linux capabilities (CAP_SYS_ADMIN) breaks out of its namespace, or an EC2 instance profile contains iam:PassRole permissions allowing an attacker to elevate to full cloud administrator.
    • Countermeasure: Principle of least privilege; fine-grained IAM condition keys; immutable container file systems; drop all Linux capabilities (cap_drop: ALL).

2. PASTA: Process for Attack Simulation and Threat Analysis

While STRIDE provides component-level threat classification, PASTA is a risk-centric, seven-stage threat modeling methodology that aligns technical vulnerabilities directly with business impact and asset criticality:

┌────────────────────────────────────────────────────────────────────────┐
│                     PASTA 7-STAGE RISK-CENTRIC PROCESS                 │
├────────────────────────────────────────────────────────────────────────┤
│  Stage 1: Define Objectives (Business goals, regulatory compliance)    │
│  Stage 2: Define Technical Scope (APIs, microservices, cloud IAM)      │
│  Stage 3: Application Decomposition (Data flows, trust boundaries)     │
│  Stage 4: Threat Analysis (Threat intelligence, actor profiling)       │
│  Stage 5: Vulnerability & Weakness Analysis (SAST, CVE mapping)        │
│  Stage 6: Attack Modeling (Attack trees, exploit path simulation)      │
│  Stage 7: Risk & Impact Analysis (Residual risk calculation, controls) │
└────────────────────────────────────────────────────────────────────────┘
  • Stage 1 (Define Objectives): Identifies business assets, regulatory obligations (PCI DSS, HIPAA, SOC 2), and financial tolerances.
  • Stage 2 (Define Technical Scope): Maps software dependencies, cloud boundaries, infrastructure components, and network perimeters.
  • Stage 3 (Application Decomposition): Constructs detailed Data Flow Diagrams (DFDs), identifies trust boundaries, and maps call flows across APIs, serverless functions, and data stores.
  • Stage 4 (Threat Analysis): Ingests threat intelligence to identify active threat actor tactics, techniques, and procedures (TTPs) targeting the organization's industry sector.
  • Stage 5 (Vulnerability Analysis): Correlates architectural weaknesses with known Common Vulnerabilities and Exposures (CVEs) and Common Weakness Enumerations (CWEs).
  • Stage 6 (Attack Modeling): Uses attack trees and MITRE ATT&CK mappings to simulate end-to-end exploit chains (e.g., SSRF on public API leading to Instance Metadata Service exploitation, leading to IAM role assumption).
  • Stage 7 (Risk & Impact Analysis): Quantifies residual risk and prioritizes defensive engineering investments based on measurable business impact.

Cloud Architecture Threat Modeling Nuances

Modern cloud architectures introduce unique trust boundary characteristics that must be explicitly evaluated during threat modeling:

  • Event-Driven Architectures & Message Buses: Event brokers (e.g., Apache Kafka, Amazon EventBridge, Google Cloud Pub/Sub) decouple producers from consumers. If a producer application is compromised, it can inject malformed or malicious serialized event objects into the bus. Without cryptographic schema validation, downstream consumer functions will process untrusted payloads, triggering secondary injection or denial-of-service vulnerabilities.
  • Serverless (FaaS) Ephemeral Boundaries: Serverless functions execute within ephemeral microVMs. Traditional host-based security agents cannot be installed. Threat models must account for event injection attacks (HTTP, S3 triggers, DynamoDB streams), function timeout limits, shared execution environments between warm function invocations (where memory state may persist), and over-privileged function execution roles.
  • Cloud Control Plane as an Application Boundary: In cloud environments, the cloud provider's API control plane is an intrinsic architectural component. An application that provisions cloud resources or modifies security groups via SDK calls expands its attack surface to the cloud provider's control plane itself.

CI/CD Pipeline Security Architecture: Securing the Build Apparatus

Historically, security focused entirely on the artifacts produced by the development pipeline while treating the pipeline itself as an unassailable black box. High-profile software supply chain intrusions—such as the SolarWinds compromise and the Codecov bash uploader breach—demonstrated that adversaries increasingly bypass production defenses by attacking the CI/CD build infrastructure directly.

┌────────────────────────────────────────────────────────────────────────┐
│                     CI/CD PIPELINE ATTACK VECTORS                      │
├────────────────────────────────────────────────────────────────────────┤
│  1. POISONED PIPELINE EXECUTION (PPE)                                  │
│     Adversary submits pull request modifying `.github/workflows/ci.yml`│
│     to execute arbitrary shell commands that exfiltrate build secrets. │
│                                                                        │
│  2. MUTABLE RUNNER PERSISTENCE                                         │
│     Compromised build job writes backdoor to a persistent self-hosted  │
│     runner, infecting subsequent builds of separate enterprise repos.  │
│                                                                        │
│  3. STATIC CREDENTIAL EXFILTRATION                                     │
│     Build scripts dump long-lived AWS/Azure static secrets stored in   │
│     repository settings to external command-and-control servers.       │
│                                                                        │
│  4. DEPENDENCY CONFUSION & TYPOSQUATTING                               │
│     Build pulls malicious public npm/PyPI package named identically to │
│     an internal proprietary module due to improper registry scoping.   │
└────────────────────────────────────────────────────────────────────────┘

1. Isolated, Ephemeral Build Runners

Build environments execute untrusted source code, third-party compilation scripts, and external package hooks. Using persistent, shared self-hosted build servers creates catastrophic lateral movement risks:

  • Cross-Build Contamination: A malicious script executed during Build Job A can deposit persistent malware, compromise build tools (gcc, npm), or alter cache directories, infecting Build Job B which belongs to a different project.
  • Ephemeral Architecture: High-risk or untrusted builds benefit from single-use, isolated runners; a persistent runner requires equally strong isolation, reset, and monitoring controls. Built on containerized or microVM platforms (e.g., Kubernetes ephemeral pods, AWS Firecracker runners), each build job spins up a clean, hardened environment from a verified golden image. Upon job termination, the runner is completely destroyed, ensuring zero persistence across build executions.

2. Eradicating Static Secrets: OIDC Workload Identity Federation

One of the most pervasive anti-patterns in CI/CD pipelines is generating long-lived cloud administrative credentials (e.g., AWS IAM Access Keys, Azure Service Principal client secrets) and pasting them into pipeline secret managers.

If the pipeline is compromised or logs are inadvertently exposed, these long-lived credentials grant unconstrained, persistent access to cloud production environments. DevSecOps best practice dictates replacing static credentials entirely with OpenID Connect (OIDC) Workload Identity Federation:

┌────────────────────────────────────────────────────────────────────────┐
│          OIDC WORKLOAD IDENTITY FEDERATION IN CI/CD PIPELINES          │
├────────────────────────────────────────────────────────────────────────┤
│                                                                        │
│   ┌───────────────────────────┐                                        │
│   │ CI/CD Pipeline (GitHub)   │                                        │
│   │ • Ephemeral Build Job     │                                        │
│   └─────────────┬─────────────┘                                        │
│                 │ 1. Requests OIDC Token (Signed by GitHub IdP)        │
│                 ▼                                                      │
│   ┌───────────────────────────┐                                        │
│   │ Pipeline Identity Provider│                                        │
│   │ (token.actions.github.com)│                                        │
│   └─────────────┬─────────────┘                                        │
│                 │ 2. Issues Signed JSON Web Token (JWT)                │
│                 │    Contains claims: aud, iss, sub (repo/branch)      │
│                 ▼                                                      │
│   ┌───────────────────────────┐                                        │
│   │ Ephemeral Build Runner    │                                        │
│   └─────────────┬─────────────┘                                        │
│                 │ 3. Presents JWT to Cloud STS (AssumeRoleWithWebIdent)│
│                 ▼                                                      │
│   ┌───────────────────────────┐                                        │
│   │ Cloud STS / Identity Brok.│                                        │
│   │ (AWS IAM / Entra ID / GCP)│                                        │
│   │ • Verifies IdP Signature  │                                        │
│   │ • Evaluates Subject Claim │ (sub == 'repo:org/app:ref:refs/heads/main')
│   └─────────────┬─────────────┘                                        │
│                 │ 4. Issues Temporary, Scoped Credentials              │
│                 ▼                                                      │
│   ┌───────────────────────────┐                                        │
│   │ Ephemeral Build Runner    │                                        │
│   │ • Deploys Infrastructure  │                                        │
│   └───────────────────────────┘                                        │
│                                                                        │
└────────────────────────────────────────────────────────────────────────┘
  1. When a deployment stage begins, the ephemeral build runner requests a short-lived OIDC JSON Web Token (JWT) from the CI platform's internal identity provider.
  2. The token contains cryptographically signed claims including the issuer (iss), audience (aud), and specific subject (sub), identifying the exact repository name, branch, and trigger event (e.g., repo:acme-corp/payment-service:ref:refs/heads/main).
  3. The runner passes this OIDC JWT to the cloud provider's Security Token Service (STS) (such as AWS STS AssumeRoleWithWebIdentity, Azure Federated Credentials, or GCP Workload Identity).
  4. The cloud provider validates the signature against the CI platform's public OIDC keys (jwks_uri) and evaluates the role trust policy. If the claims match, the cloud STS issues temporary, scoped session credentials for the configured duration. This removes the need to store a long-lived cloud access key for that trust path, although the pipeline may still need to protect other secrets.

3. Branch Protection & Multi-Party Review Gates

To prevent malicious code from directly entering the deployment stream, organizations must enforce non-bypassable repository controls:

  • Branch Locking & Protected Branches: Direct pushes (git push origin main) to production or release branches are disabled. All changes must arrive via pull requests.
  • Mandatory Multi-Party Approvals: Enforcing a "Two-Person Rule" requiring explicit review and sign-off from at least one authorized senior code owner prior to merging. Approvals must be automatically dismissed if new commits are pushed after review.
  • Cryptographic Commit Signing: Requiring all commits to be cryptographically signed with developer GPG or SSH keys. Unsigned commits are rejected by repository webhooks, ensuring author attribution.
  • Preventing Poisoned Pipeline Execution (PPE): Restricting pipeline execution triggers. Pull requests originating from external forks must never run with write privileges or access secrets. CI configuration files (e.g., .github/workflows/*) must require elevated security team approvals to modify.

4. Software Supply Chain Integrity: SLSA & Cryptographic Signing

The Supply-chain Levels for Software Artifacts (SLSA) framework separates assurance into tracks. In the current SLSA v1.2 model:

  • Build L1: Provenance describes how the artifact was built.
  • Build L2: Signed provenance is generated by a hosted build platform.
  • Build L3: A hardened build platform protects provenance and the build process from tampering.
  • Source L1–L4: Source assurance progresses from version control through tamper-resistant evidence and protected references to two-party review at Source L4.

Do not use the obsolete single-track statement “SLSA Level 4 means hermetic and reproducible builds.” Hermetic and reproducible builds are valuable properties, but current track and level requirements must be checked against the SLSA specification.

Cryptographic Attestation with Sigstore & Cosign

Once a container image or binary artifact is compiled, it must be signed before distribution:

  • Cosign: An open-source utility that cryptographically signs container images and software artifacts, storing signatures and attestations directly within Open Container Initiative (OCI) registries.
  • Keyless Signing via Sigstore: Leverages an automated Certificate Authority (Fulcio) and an append-only transparency log (Rekor). Developers or CI pipelines authenticate via OIDC, receive short-lived x509 certificates tied to their identity, sign the artifact, and record the attestation in the public transparency log. At deployment, admission controllers (e.g., Kyverno, OPA Gatekeeper) verify that images possess valid cryptographic signatures before permitting execution in production clusters.

Architecture's Role in Secure and Resilient Applications

Security requirements must influence architecture before code-level testing. Decompose trust boundaries among public entry points, identity services, application tiers, queues, data stores, administrative APIs, and external dependencies. Each boundary needs explicit authentication, authorization, encryption, input validation, telemetry, and failure behavior.

Cloud resilience is part of application security because an attacker or dependency failure can turn fragile coupling into an availability incident. Use multiple failure domains where the business objective requires them; keep services stateless where practical; place queues between components that can tolerate asynchronous work; make retryable operations idempotent; and use timeouts, bounded retries, circuit breakers, bulkheads, and back-pressure. Graceful degradation should preserve essential functions without bypassing authorization or returning stale sensitive data. Health checks must test meaningful dependencies rather than only whether a process is running.

Threat-model recovery paths as well as normal traffic. A failover environment needs current policy, keys, identities, logging, and tested data restoration. A standby that omits security controls is not a safe recovery design. Likewise, a global service can still depend on one identity tenant, DNS zone, key, deployment pipeline, or control-plane endpoint. Record those shared dependencies and design or accept their failure risk explicitly.

Validate resilience through controlled load, failover, and fault-injection tests with safety boundaries. The goal is evidence that the architecture meets its recovery and security objectives, not a blanket rule that every application must span multiple regions.

Application Identity and Secrets

Every service should have a distinct workload identity with the minimum permissions needed for its APIs and data. Prefer short-lived provider or federation credentials delivered at runtime over static keys embedded in source, images, environment files, or pipeline variables. Bind identity to the workload and environment so a token from a development job cannot deploy to production.

When a secret is unavoidable, store it in an approved secret-management service, restrict read access, encrypt and audit it, rotate it through an application-compatible process, and prevent it from appearing in command lines, crash dumps, traces, build logs, or client responses. Retrieval permission is itself sensitive: a broad vault-reader role can defeat careful storage. Separate secret administration from application use, and design rotation with overlapping versions or another tested mechanism so availability does not depend on a manual emergency change.

Application authorization remains in the application even when a gateway validates a token. The service must verify the intended audience, issuer, expiry, subject, tenant, and required scopes or claims, then enforce object- and function-level authorization on every request. Central identity and secret services supply trustworthy inputs; application architecture determines how those inputs constrain each business operation.

Comparison: Traditional SDLC vs. Cloud-Native DevSecOps

DimensionTraditional Waterfall / Agile SDLCModern Cloud-Native DevSecOps Pipeline
Security PhilosophyPerimeter audit; late-stage security verificationShift-Left; continuous automated verification from inception
Testing PhaseDedicated pre-production gate / manual pentestIntegrated into IDE, pre-commit, CI/CD, and runtime
Remediation CostHigh (flaws uncovered in staging or production)Minimal (flaws identified and fixed at code creation)
Threat ModelingStatic, ad-hoc, paper-based network reviewsContinuous, programmatic models (STRIDE/PASTA) for microservices
Pipeline RunnersLong-lived, shared bare-metal or mutable VMsEphemeral, isolated containers/microVMs destroyed per job
Credential ManagementStatic, long-lived API keys and cloud passwordsEphemeral tokens via OIDC Workload Identity Federation
Supply Chain DefenseBlind trust of third-party dependenciesSCA scanning, SBOM generation, SLSA provenance, Cosign signing
Production AccessDirect administrative access and manual patchingGitOps-driven immutable deployments; zero interactive access

Common Pitfalls & Real-World Anti-Patterns

  1. "Scanners as Speedbumps" without Triage: Injecting heavy, uncalibrated SAST tools into CI pipelines that generate hundreds of false positives, blocking every pull request. Developers quickly learn to bypass checks or demand exclusion overrides. Mitigation: Tune rulesets rigorously to report only high-confidence, actionable vulnerabilities, and run deep scans asynchronously while keeping blocking PR checks lightweight.
  2. Allowing Untrusted PRs to Access Secrets: Configuring CI workflows to automatically run on pull_request_target or fork pull requests while granting access to repository secrets. Adversaries submit malicious pull requests that alter build scripts to print environment variables or exfiltrate credentials. Mitigation: Never grant write access or secret exposure to pull requests from unauthenticated or external fork contributors.
  3. Hardcoding Cloud Provider Access Keys in Pipeline Secrets: Storing permanent cloud access credentials in pipeline environment variables. If an unauthorized actor gains repository write access, they can extract the credentials. Mitigation: Enforce OIDC federation exclusively; completely disable the creation of static IAM access keys across the cloud organization.
  4. Unsigned Container Images in Production: Permitting container runtimes or Kubernetes clusters to pull and execute arbitrary images from registries based solely on image tags (e.g., :latest). Mitigation: Enforce admission controller policies that verify cryptographic Cosign signatures and SLSA provenance attestations, rejecting any unsigned or unverified image.
Loading diagram...
Secure DevSecOps Pipeline with Shift-Left Security Controls, OIDC Identity Federation, and Cryptographic Signing
Test Your Knowledge

A cloud architecture team is designing an event-driven payment processing system utilizing serverless functions, asynchronous message queues, and a distributed NoSQL database. During a threat modeling session aligning with STRIDE and PASTA methodologies, the team evaluates the risk of an attacker compromising an upstream merchant service and publishing maliciously crafted JSON payloads into the core payment message bus to trigger unauthorized refunds. Which threat classification from STRIDE does this attack represent, and which architectural control best mitigates this vulnerability?

A
B
C
D
Test Your Knowledge

A financial services organization is modernizing its continuous deployment pipeline to deploy containerized microservices to a multi-cloud environment. Currently, the deployment pipeline stores static, long-lived cloud administrative API keys in repository configuration variables. The Chief Information Security Officer (CISO) mandates the immediate elimination of all static cloud credentials in developer pipelines to prevent credential theft and lateral movement. What architectural pattern directly fulfills this mandate?

A
B
C
D
Test Your Knowledge

An enterprise development team discovers that an unauthorized committer submitted a pull request modifying the project's CI/CD workflow configuration file (.github/workflows/deploy.yml). The modified workflow added a build step that attempted to execute arbitrary remote bash scripts and exfiltrate pipeline build variables. Furthermore, the compiled deployment artifact was pushed to the production registry without undergoing security validation. Which set of governance and pipeline security controls directly neutralizes these software supply chain attack vectors?

A
B
C
D