Skip to content

Secure Software Development Lifecycle (SSDLC) Explained: Phases, Frameworks and Evidence

SSDLC explained: the six secure SDLC phases, the evidence each should leave, how NIST SSDF and PCI DSS map to them, and where code review and testing fit.

Omar KhandakerBy , Senior Security ConsultantUpdated 15 min read

Secure Code ReviewFrom $4,800Fixed scope, free retest, no hourly billing.

Get my fixed price

A secure software development lifecycle (SSDLC) is the normal software development lifecycle with a security activity built into every phase: security requirements during planning, threat modeling during design, secure coding and code review during implementation, security testing before release, a protected build and release process, and vulnerability response once the software is live. The point is to catch each flaw in the phase where it is cheapest to fix, and to leave a record at every phase that shows a customer, an auditor or a regulator the work was done. A practical anchor is NIST’s Secure Software Development Framework, SP 800-218, with OWASP and Microsoft guidance for the detail.

This guide is the framework view. For the narrower practice of moving security earlier, read shifting security left in the SDLC. Invadel’s part in the lifecycle is independent verification: secure code review from $4,800 (see the code review price tiers) and application penetration testing from $4,000, each at a fixed price with a free retest.

SSDLC vs SDLC: what actually changes

The SDLC describes how software gets built: plan, design, build, test, release, maintain. On its own it says nothing about security. A secure SDLC keeps the same phases and adds a security question, an owner and an output to each one.

Phase A plain SDLC asks A secure SDLC also asks
Requirements What should it do? What must it never allow, and which data and regulations does it touch?
Design How will it work? How could it be attacked, and does the design stop that?
Implementation Does the code work? Does it follow our coding standard, and are its components safe?
Verification Does it pass functional tests? Does it resist the attacks the threat model predicted?
Release Is it deployed? Is the build the code we reviewed, signed and safe by default?
Operations Is it up? How do we hear about vulnerabilities, and how fast do we fix them?

Is the SDLC outdated? The phases are not; the waterfall arrangement of them is. In agile and DevOps teams the phases happen per feature or per pull request: a threat model becomes a short conversation on a design ticket, and verification becomes pipeline checks plus periodic manual testing. DevSecOps is the name for running an SSDLC at that speed.

The SSDLC phases and the evidence each one should leave

The useful question for a buyer or an auditor is what each phase leaves behind. NIST’s SSDF groups its practices into four families: Prepare the Organization (PO), Protect the Software (PS), Produce Well-Secured Software (PW) and Respond to Vulnerabilities (RV). The table maps them to the phases.

Phase Security activities Evidence it should leave SSDF practices
1. Requirements Classify the data, list the regulations, choose a verification level, write abuse cases Security requirements in the backlog, data classification, the chosen ASVS level PO.1, PW.1
2. Design Threat model new features and trust boundaries; independent design review Threat model, design review record, accepted-risk decisions PW.1, PW.2
3. Implementation Secure coding standard, approved components, no secrets in code, peer review, SAST and SCA per pull request Coding standard, pull request approvals, triaged scan results PW.4, PW.5, PW.7
4. Verification Security test cases, DAST in staging, manual review of high-risk code, a penetration test before major releases Test results, code review report, penetration test report and retest PW.7, PW.8
5. Release Protected repositories and builds, signed artifacts, an SBOM, secure defaults, separated environments Build provenance, signatures, SBOM, release approval PS.1 to PS.3, PW.6, PW.9, PO.5
6. Operations Vulnerability disclosure policy, component monitoring, risk-ranked fixes, root cause analysis Disclosure policy, dated vulnerability tickets, root cause records RV.1 to RV.3
All phases Role-based training, defined roles, a security toolchain, pass or fail criteria Training records, role assignments, release gates PO.2 to PO.4

1. Requirements: decide what “secure” means first

Useful security requirements are testable: “a user can only read invoices that belong to their own organization,” not “the application must be secure.” The fastest source is OWASP ASVS: pick Level 2 for most applications that handle personal or financial data, and Level 3 for high-value transactions, health records or safety-critical functions, then pull the relevant requirements into the backlog. Pair each sensitive user story with an abuse case, so “I can export my data” gets “I try to export someone else’s.” Name the regulations here too, because PCI DSS, HIPAA or NYDFS scope changes the logging, encryption and access control the code needs.

2. Design: threat model, then have someone else check it

Threat modeling comes down to the four questions in the Threat Modeling Manifesto: what are we working on, what can go wrong, what are we going to do about it, and did we do a good enough job. For most features, a data flow diagram, a STRIDE pass over each trust boundary and mitigations that become tickets are enough. SSDF task PW.2.1 calls for the design to be reviewed by a qualified person who was not involved in it, or by automated checks in the toolchain. Tenant isolation and the authorization model are decided here, and a design flaw found after release usually needs a redesign rather than a patch.

3. Implementation: coding standards, components and review

Three things carry most of the weight. A secure coding standard written for your actual languages and frameworks: parameterized queries, output encoding, and the one approved way to check authorization. A policy for third-party components, because much of the code you ship comes from open-source and third-party packages. And review: no merge without a second developer, plus SAST, software composition analysis (SCA) for dependencies, and secret scanning on every pull request. Choosing among SAST tools is mostly about language coverage and noise; block builds only on high-confidence rules. Then build a secure code review program that aims human review at the risky code.

4. Verification: tools for breadth, people for depth

Run the security test cases from phase 1, DAST against staging, and a regression test for every vulnerability you have fixed before, an example SSDF gives under PW.8.2. Then put a person on the code and the running application wherever a mistake costs money or data. Tools miss authorization between users and tenants, business logic and chained flaws, because none of them knows what the application is for; our SAST vs DAST vs IAST comparison shows what each one sees. The same SSDF task names penetration testing for high-risk scenarios, and PCI DSS Requirement 6.2.3 requires custom code to be reviewed before release.

5. Release: protect the build and what it produces

If someone can change code after review, or change the build, every earlier phase is bypassed. SSDF practices PS.1 to PS.3 and PO.5 cover the controls: protected repositories, restricted build environments, signed release artifacts and a software bill of materials (SBOM) for every release. Our CI/CD pipeline security guide covers how attackers abuse runners, secrets and OIDC trust. Ship with secure defaults (PW.9), keep preproduction separate from production, and remove test accounts and data before go-live, as PCI DSS 6.5.3 and 6.5.6 require.

6. Operations: fix the class, not the instance

Publish a vulnerability disclosure policy, watch your dependencies for new advisories, fix by risk (our vulnerability remediation guide covers how to rank and track fixes), and record dates so you can show how long fixes take. The step that turns a lifecycle into a loop is root cause analysis: SSDF task RV.3.3 asks teams to review the software for similar vulnerabilities and eradicate the whole class. When a test finds one broken access check, find every handler written the same way.

SSDLC for a small engineering team: the minimum per phase

A team of under 20 engineers with no security staff does not need a program office. It needs one small, repeatable thing per phase that leaves a record. If you are starting from nothing, our guide to getting started with application security covers the first steps; the table below is the smallest version of each phase that an auditor or a customer questionnaire will still accept as real.

Phase The minimum that still counts The record it leaves
Requirements A security section in the ticket template for any feature that touches login, payments, personal data or tenant boundaries The completed ticket
Design A short threat-modeling conversation on the design ticket for those same features, with each mitigation filed as its own ticket Notes on the design ticket, linked mitigation tickets
Implementation One page of coding rules for your stack, branch protection that requires a second reviewer, and SAST, SCA and secret scanning on every pull request Branch protection settings, pull request history, triaged scan results
Verification Authorization test cases in the automated test suite, and an independent penetration test before major releases Test results, the penetration test report and retest
Release A protected main branch, builds that run only in CI, secrets held in a secrets manager, and an SBOM generated by the build Build logs, the SBOM
Operations A published security contact or disclosure policy, dependency alerts turned on, and a dated ticket for every vulnerability Tickets with opened and closed dates

Name one owner. SSDF practice PO.2 asks for roles and responsibilities to be defined, and in a small company that is usually the engineering lead or CTO, with one developer per team acting as the security contact for reviews. Add depth only where your own findings show a gap: if a penetration test keeps finding authorization flaws, spend the next quarter on the requirements and design rows, not on another scanner.

SSDLC frameworks compared: NIST SSDF, Microsoft SDL, OWASP SAMM and BSIMM

A common pattern is to pick one framework to define what the program must achieve and one to measure maturity (see our application security program maturity guide).

Framework Published by What it is Use it to
NIST SSDF (SP 800-218) NIST Outcome-based practices in four groups, each with tasks and examples Define what your SSDLC must achieve and answer customer questionnaires
Microsoft SDL Microsoft Ten practices, from threat modeling and cryptography standards to supply chain security Borrow concrete practice definitions
OWASP SAMM v2 OWASP A prescriptive maturity model: 5 business functions, 15 security practices Score where you are and plan the next year
BSIMM16 Black Duck A descriptive model of what 111 organizations actually do, published January 2026 Benchmark your program against peers
OWASP ASVS 5.0 OWASP Testable application security requirements at three levels Write requirements and scope verification
SLSA OpenSSF Build integrity levels for the software supply chain Harden the release phase

Status as of November 2026: SSDF version 1.1, published February 2022, is still the final version. Draft version 1.2, released December 17, 2025, closed for comments January 30, 2026, and has not been finalized.

For federal software sellers, OMB memorandum M-26-05, dated January 23, 2026, rescinded M-22-18 and M-23-16, the memos that made agencies collect the secure software development attestation form. Agencies may still use the form, may require an SBOM on request, and are told to validate provider security against secure development principles; the memo lists SP 800-218 as a reference.

Which standards and regulations expect a secure SDLC

Framework Where What it expects
PCI DSS v4.0.1 Requirements 6.2.1 to 6.2.4, 6.5 Security considered at each SDLC stage; developer training every 12 months; code review before release, by someone other than the author when manual; separated environments and test data removed
ISO/IEC 27001:2022 Annex A 8.25 to 8.29, 8.31 Secure development rules, application security requirements, secure architecture, secure coding, security testing in development and acceptance, separated environments
SOC 2 CC8.1 Software changes authorized, designed, tested and approved before implementation; auditors sample pull requests and approvals
NYDFS Part 500 Section 500.8 Written secure development procedures for in-house applications and procedures for testing externally developed ones, reviewed at least annually by the CISO or a qualified designee
EU Cyber Resilience Act Regulation (EU) 2024/2847 Security across planning, design, development and maintenance of products with digital elements; reporting of actively exploited vulnerabilities from September 11, 2026, main obligations from December 11, 2027

No framework in this table has a separate SSDLC certificate. Instead, a CPA firm (SOC 2), a certification body (ISO 27001), a Qualified Security Assessor or your own self-assessment questionnaire (PCI DSS), or your own signed certification or conformity assessment (NYDFS, most CRA products) relies on the evidence each phase leaves behind. Our PCI DSS penetration testing page covers the annual test under Requirement 11.4, and PCI DSS penetration testing requirements explains why that test must cover the attack types listed in Requirement 6.2.4.

Where SSDLC programs break down

Gaps testers commonly find where an SSDLC exists on paper:

  • Authorization belongs to no phase. Requirements say “role-based access,” nobody writes down which role may touch which object, no tool can test it, and it surfaces in the penetration test as one customer reading another’s records.
  • Threat models stop at the diagram. The mitigations never became tickets, so nothing in the code changed.
  • Scanner output is suppressed, not triaged. Thousands of SAST findings, a baseline file that hides them all, and one real injection flaw inside.
  • The pipeline is trusted more than production. Long-lived cloud keys in CI variables, and staging environments holding copies of customer data.
  • The test is booked after the release date. Findings land after launch, become backlog, and the retest never happens.
  • Generated code skips review. The security risks of vibe coding come from treating AI assistant output as already reviewed.

Where independent code review and penetration testing fit, and what they cost

Your engineering team owns the SSDLC. Two activities in it are worth buying from outside: a code reviewer who did not write the code, and a tester who learns how the application is meant to work and then attacks it from every role, with no stake in it passing. That is the part Invadel does. We do not run SSDLC programs, sell scanning tools or act as a virtual CISO. We supply the independent verification and the report your auditor and customers ask for.

Activity SSDLC phase What it covers Starts at
Secure code review Implementation (one high-risk feature or module) or verification (the full application) One module or feature at $4,800, a moderate full application at $8,900, a large or multi-repository codebase at $12,000 $4,800
API penetration test Verification, before release REST, GraphQL or SOAP, every endpoint, authorization across roles $4,000
Web application penetration test Verification, before release OWASP Top 10, business logic, every user role $5,200
Mobile application penetration test Verification, before release iOS and Android against OWASP MASVS, plus the API behind the app $6,000

What the lifecycle adds is timing. Book the code review when a high-risk feature is code-complete, and the penetration test against staging early enough that fixes and the free retest (for code review, a re-review once fixes merge) land before launch, not in the backlog afterward. Each engagement has a fixed price in writing, and its attestation letter and executive and technical reports become the verification-phase evidence your auditor samples. Testers are senior in-house employees, and onboarding starts within 24 hours of a signed proposal.

Share your threat model and SAST output when you scope, so manual hours go to authorization and logic. The web application testing cost guide, API testing cost guide and mobile testing cost guide explain what moves each price, and the sample report shows the deliverable.

Frequently asked questions

What is the difference between SSDLC and SDLC? The SDLC is the process for building software: plan, design, build, test, release and maintain. An SSDLC runs the same process with defined security work in each phase, such as threat modeling in design and security review before merge, so security is built in rather than checked once at the end.

What are the phases of a secure SDLC? There is no single official count; a common model uses six: requirements, design, implementation, verification, release and operations. Their security activities are security requirements, threat modeling, secure coding and review, security testing, build integrity and vulnerability response, with training and tooling across all of them.

Why is an SSDLC required in an organization? Customers, auditors and regulators ask for one, and flaws found in design or code review cost far less to fix than flaws found by an attacker. PCI DSS Requirement 6.2, ISO 27001 Annex A 8.25 and NYDFS 500.8 all expect a documented secure development process.

What is the difference between SSDLC and DevSecOps? An SSDLC defines which security activities happen in each phase and what evidence each leaves. DevSecOps is how a team that ships continuously runs those activities: automated in the pipeline, per pull request, with the developers who own the code. One is the what, the other is the how.

Who owns the SSDLC in a company without a security team? Engineering does. Name the CTO or an engineering lead as the owner, write the per-phase minimum down, and buy the two things that need independence, code review and penetration testing, from outside.

Is SSDF attestation still required to sell software to the federal government? Not as a blanket rule. OMB memorandum M-26-05 rescinded the attestation memos on January 23, 2026, but agencies may still ask for the form or an SBOM, so SSDF remains the vocabulary of many federal security questionnaires.

Does an SSDLC replace penetration testing? No. An SSDLC reduces the flaws that reach production, and a penetration test finds what got through, especially authorization and business-logic flaws that tools cannot see. PCI DSS Requirement 11.4, for example, still calls for penetration testing at least once every 12 months and after significant changes.

The short version

An SSDLC is your existing development process with a security activity, an owner and a piece of evidence in every phase. Base it on NIST SSDF, use ASVS for requirements and verification, protect the pipeline, and fix vulnerability classes rather than single instances. Then put independent eyes on the code and the running application before major releases: secure code review from $4,800 (full code review pricing) and application penetration testing from $4,000, fixed price, free retest. Scope your review or test and get a written price the same day.

Omar Khandaker

Written by

Omar Khandaker, Senior Security Consultant

11+ years in the field. Focus: PCI DSS, ISO 27001, ISO 9001 & CMA. Part of the team that scopes, tests, and reports for our clients. Full profile →

Find out what an attacker sees.

Tell us what to test and see your fixed price.

Prefer the full scoping questionnaire? 
Start the conversation

Get a quick proposal

We are online