9.3 Apply Secure SDLC (Domain 4.3)
Key Takeaways
- Applying Secure SDLC in cloud means addressing shared technology issues, CSP insider risk, limited visibility/control, and legal/jurisdiction constraints during design and implementation.
- Threat modeling methods on the outline include STRIDE, DREAD, ATASM, and PASTA — know what each is for and when scoring vs structured analysis matters.
- Avoid common vulnerabilities during development through secure defaults, least privilege, input validation, safe APIs, and dependency hygiene — not only late scanning.
- Secure coding guidance draws on OWASP ASVS and SAFECode; pair standards with reviews and automation.
- Software configuration management and versioning protect integrity of code, IaC, and artifacts across environments — a control-plane for the SDLC itself.
Apply the Secure Software Development Life Cycle
Domain 4.3 moves from describing the process to applying it. The August 2026 outline groups: cloud-specific risks, threat modeling (STRIDE, DREAD, ATASM, PASTA), avoiding common vulnerabilities during development, secure coding (OWASP ASVS, SAFECode), and software configuration management (CM) and versioning. Think of this section as the CCSP’s “how” for cloud application delivery under DevSecOps.
Cloud-Specific Risks in Application SDLC
Traditional secure coding still matters, but cloud changes the threat landscape for every phase.
| Cloud-specific risk | What it means | SDLC application |
|---|---|---|
| Shared technology issues | Hypervisors, multi-tenant services, shared control planes | Design isolation; least privilege; do not assume co-tenants are benign; prefer strong tenancy boundaries |
| CSP insider threats | Privileged provider personnel or compromised provider identity | Encrypt with customer-managed keys where required; minimize data in logs; contractual and technical residual risk treatment |
| Lack of visibility and control | Limited host forensics, opaque internals of PaaS/SaaS | Instrument the layers you own; demand logging/API audit; design for detectability |
| Legal and jurisdiction issues | Data location, cross-border processing, subprocessors | Capture residency in requirements; gate multi-region features; document processor chains |
Shared Technology Issues
Your application may run on shared hosts, use shared metadata services, or call multi-tenant APIs. Side channels, noisy neighbors, and control-plane bugs are rare but high impact; day-to-day, logical isolation failures in your own multi-tenant app are more common. Apply SDLC design reviews to tenant ID enforcement at every data access path.
CSP Insider Threats
You cannot background-check every CSP operator. Mitigations in design/implementation: customer-managed encryption keys, confidential computing where justified, strict secret management, and contracts/assurance reports (link to Domain 1/6 thinking). Application teams must not store master secrets in places provider support can casually read.
Lack of Visibility and Control
On PaaS, you may not install host agents. Build observability into the application and account layers: structured audit logs, distributed tracing with careful PII handling, config drift detection on tenant settings, and break-glass procedures that still log.
Legal and Jurisdiction Issues
A feature flag that replicates customer data to another region is a legal event, not only a latency optimization. Requirements and CI policy should prevent accidental cross-border data flows. Third-party SDK updates can introduce new subprocessor calls — supply-chain review is part of apply-SDLC.
Worked scenario: A SaaS product stores EU personal data. Engineering enables a global CDN cache that includes personalized responses in a non-EU PoP. Cloud risk = jurisdiction + shared edge technology + reduced control over cache purge. Application fix = redesign caching of personal content, geo controls, and threat model update — not only “turn on TLS.”
Threat Modeling Methods
Threat modeling identifies what can go wrong and what to do about it before and while you build. CCSP lists several methods; know purpose and differences.
STRIDE
STRIDE (Microsoft lineage) categorizes threats:
| Letter | Threat | Example in cloud apps |
|---|---|---|
| S | Spoofing | Stolen API key impersonates a service identity |
| T | Tampering | Modified container image in registry |
| R | Repudiation | Missing audit logs for admin API calls |
| I | Information disclosure | Public object storage; verbose errors |
| D | Denial of service | Unbounded serverless concurrency / expensive queries |
| E | Elevation of privilege | Privilege escalation via over-permissive IAM role |
STRIDE is excellent for structured brainstorming against data-flow diagrams and trust boundaries.
DREAD
DREAD is a scoring model (variants exist) often described as:
| Factor | Question |
|---|---|
| Damage | How bad if exploited? |
| Reproducibility | How easy to reproduce? |
| Exploitability | How easy to attack? |
| Affected users | How many impacted? |
| Discoverability | How easy to find the flaw? |
Use DREAD (or modern risk scoring alternatives) to prioritize mitigations after threats are identified. Exam trap: DREAD is not a substitute for enumerating threat types; it ranks them.
ATASM
ATASM — Architecture, Threats, Attack Surfaces, and Mitigations — emphasizes walking from architecture understanding to attack surface inventory to mitigations. It fits cloud reviews where diagrams of accounts, APIs, identity providers, and data stores must be correct before threat lists make sense.
PASTA
PASTA (Process for Attack Simulation and Threat Analysis) is a seven-stage, risk-centric methodology aligning business objectives with technical threat analysis and attack simulation. It is heavier than a quick STRIDE whiteboard and suits high-risk systems (payments, health, critical infrastructure apps on cloud).
| Method | Best mental model |
|---|---|
| STRIDE | What categories of threats apply to this DFD element? |
| DREAD | How do we score/prioritize identified threats? |
| ATASM | Architecture → threats → surfaces → mitigations |
| PASTA | Business-driven, multi-stage attack simulation process |
Applying Threat Modeling in DevSecOps
- Model new trust boundaries when adding SaaS integrations, webhooks, or LLM tools.
- Revisit models when IAM or network architecture changes.
- Feed outputs into backlog (mitigations as stories) and test plans (abuse cases).
- Keep models living documents, not one-time binders.
Avoiding Common Vulnerabilities During Development
Application of SDLC means prevention while coding and configuring, not only detection later.
| Practice | Why it prevents vulnerabilities |
|---|---|
| Input validation & output encoding | Blocks injection and XSS classes |
| Parameterized queries / safe data access | Prevents SQL/NoSQL injection |
| Centralized authorization checks | Reduces BOLA/IDOR from ad-hoc checks |
| Deny-by-default configuration | Stops open security groups and public buckets |
| Secret managers & short-lived credentials | Eliminates hardcoded keys |
| Dependency pinning + SCA | Reduces known-vulnerable libraries |
| Least privilege IAM for runtime roles | Limits blast radius of RCE/SSRF |
| Safe deserialization / avoid eval | Blocks remote code patterns |
| Rate limiting & quotas | Mitigates abuse and cost DoS |
| Secure session & token handling | Reduces authn failures |
| Feature flags with authZ | Prevents unfinished admin features from exposure |
| IaC modules with secure defaults | Systematically avoids misconfiguration |
Cloud Coding Anti-Patterns to Ban
- Fetching arbitrary URLs without allow-lists (SSRF → metadata).
- Logging authorization tokens or full payment payloads.
- Using wildcard IAM policies in application runtime roles.
- Trusting client-side enforcement of tenant ID.
- Running containers as root with writable host mounts by default.
- Accepting unsigned webhooks without verification.
- Storing long-lived cloud access keys in mobile or SPA clients.
Requirements → Design → Implementation Chain (Applied)
Example control: “Tenant A must not read Tenant B data.”
- Requirements: explicit isolation requirement and audit need.
- Design: tenant key in every data model; authorization service; no shared predictable IDs without checks.
- Implementation: middleware enforces tenant context from verified identity, not from request body alone.
- Testing: cross-tenant access attempts must fail (abuse tests).
- Operations: alert on authorization failure spikes and anomalous cross-tenant queries.
That chain is “apply Secure SDLC” in one sentence.
Secure Coding: ASVS and SAFECode
OWASP ASVS in Application
While Domain 4.1 uses ASVS for awareness and requirements, Domain 4.3 uses it as a coding and verification target. Teams select a level (e.g., L2 for internet-facing apps) and implement controls such as:
- Authentication and session management strength.
- Access control patterns.
- Validation and business logic controls.
- Cryptographic practices (algorithms, key storage).
- API and file handling rules.
- Configuration and error handling without information leaks.
ASVS gives reviewers a shared language: “this PR fails V4 access control requirements” is clearer than “feels insecure.”
SAFECode
SAFECode (Software Assurance Forum for Excellence in Code) publishes practical guidance and training-oriented practices for secure development in industry settings. On CCSP, treat SAFECode as a recognized secure coding / software assurance practice source alongside OWASP — vendor-neutral industry collaboration, not a single product. Use it to reinforce: secure development training, code review culture, vulnerability management, and third-party component care.
Secure Coding Habits That Survive Exam Scenarios
| Habit | Detail |
|---|---|
| Prefer proven libraries | Do not invent custom crypto or auth protocols |
| Fail secure | Errors deny access; do not open on failure |
| Least privilege in code | Separate admin and user code paths; minimize dangerous APIs |
| Explicit allow-lists | For redirects, CORS origins, SSRF destinations, file types |
| Consistent frameworks | Security middleware applied globally, not optional per route |
| Peer review for sensitive changes | Auth, crypto, payments, multi-tenant queries |
| Automate the boring checks | Linters, secret scanning, SAST on PR |
Secure coding is necessary but not sufficient: architecture flaws (insecure design) still require threat modeling and requirements work.
Software Configuration Management and Versioning
Software Configuration Management (CM) is the discipline of identifying, controlling, and tracking software configuration items (source, build scripts, IaC, container definitions, environment configs, and release artifacts) so that integrity, reproducibility, and auditability hold across the lifecycle.
Why CM Matters for Cloud Security
| Without CM | With CM |
|---|---|
| “Works on my machine” snowflakes | Reproducible builds from tagged commits |
| Unknown what runs in production | Artifact provenance and version inventory |
| Emergency hotfix lost forever | Controlled branches, reviews, and tags |
| Attackers alter build inputs unnoticed | Integrity checks, signed commits/artifacts |
| Drift between accounts | Same versioned modules promoted through environments |
Versioning Practices
- Source version control (Git-class systems) with protected main branches and required reviews.
- Semantic or calendar versioning of releases for clear rollback targets.
- Immutable artifact versions (container digests, package versions) — avoid mutable
latestin production. - Infrastructure versioning — modules pinned; plan/apply history retained.
- Configuration versioning — separate secrets from config; version non-secret config; inject secrets at runtime.
- Database migration versioning — ordered, reviewable schema changes with rollback strategy.
CM Controls Mapped to Threats
| Threat | CM control |
|---|---|
| Tampering with source | Branch protection, signed commits, access control on repos |
| Malicious dependency insert | Lockfiles, private proxies, SCA, hash verification |
| Build pipeline compromise | Isolated runners, least-privilege OIDC deploy roles, signed artifacts |
| Unauthorized production change | Change tickets linked to commit SHAs; no hotspot SSH as normal path |
| Inability to forensically reconstruct | Retain build logs, SBOMs, and release manifests |
DevSecOps Pipeline as Applied SDLC
A practical apply-SDLC flow:
- Requirements/backlog — security acceptance criteria.
- Design — threat model for the feature (STRIDE/ATASM as appropriate).
- Code — ASVS/SAFECode-aligned implementation; no secrets in repo.
- Commit/PR — automated SAST/secret scan/SCA; human review.
- Build — reproducible build; sign artifacts; generate SBOM.
- Deploy — policy-as-code; least privilege; progressive delivery.
- Operate — monitor, patch, feed CVEs back as CM-controlled updates.
- Change — every modification versioned; emergency changes still recorded.
End-to-End Exam Scenario
A fintech team builds a new lending API on PaaS. Cloud risks: multi-tenant data store (shared technology), limited OS visibility, and multi-country customers (jurisdiction). They threat model with STRIDE on the API data-flow (spoofing of partner webhooks, elevation via IAM). DREAD prioritizes webhook forgery and BOLA as top risks. Developers apply centralized authZ, signed webhooks, parameterized queries, and customer-managed keys for sensitive fields (secure coding / ASVS). CM enforces tagged releases, immutable containers, and blocked direct prod console changes. That is Domain 4.3 applied end to end.
Common Traps
- Confusing DREAD (scoring) with STRIDE (threat categories).
- Treating threat modeling as only a waterfall design document, never updating in agile.
- Believing secure coding alone fixes missing tenant isolation design.
- Using mutable tags and shared admin credentials as “configuration management.”
- Ignoring legal/residency risks when enabling global features in the name of performance.
Which threat modeling approach is primarily a set of threat categories (spoofing, tampering, repudiation, information disclosure, denial of service, elevation of privilege)?
An application team stores long-lived cloud access keys in a mobile client and grants the keys permission to read all object storage in the account. Which applied Secure SDLC improvement best addresses this cloud development failure?
Why is software configuration management and versioning critical when applying Secure SDLC to cloud systems?
Which pair correctly matches a cloud-specific risk from Domain 4.3 with an appropriate Secure SDLC response?