A penetration test finds what your development process let through. It does not fix the process.
The Secure Software Development Framework describes twenty practices across four groups, focused on outcomes rather than tools. An assessment against it shows where vulnerabilities are being introduced rather than where they were eventually found.

- 4 groupsPrepare, protect, produce, respond
- 20 practicesAcross the four groups
- Outcome basedThe framework does not prescribe tools
- Shift leftEarlier costs less for the same security
It describes outcomes, not tools. That is why it survives your toolchain changing.
Most application security guidance ages badly because it names products. This does not, which makes it usable as an assessment baseline.
- The framework does not prescribe how to implement each practice, and the focus is on the outcomes of the practices rather than on the tools, techniques and mechanisms used to achieve them. Your scanner choice does not change your assessed position.
- That also makes it applicable regardless of language, platform, development model or operating environment. Waterfall, agile and DevOps teams are assessed against the same outcomes, which allows comparison across a portfolio built by different teams.
- The stated intention is not to create a checklist to follow, but to provide a basis for planning and implementing a risk-based approach. That means the assessment output is a prioritised position rather than a compliance percentage.
- And it works in both directions. Organisations use it to describe their own practices to customers, and to express secure development requirements to third party suppliers, which is increasingly what enterprise software procurement asks for.
Eight things an assessment establishes about how you build software.
Prepare the organisation comes first
Security requirements defined for development, roles and responsibilities implemented, supporting toolchains in place, criteria for software security checks defined and used, and secure environments implemented and maintained. Five practices before any code is written.
Protecting the software is a separate discipline
Protecting all forms of code from unauthorised access and tampering, providing a mechanism for verifying software release integrity, and archiving and protecting each release. Supply chain attacks target exactly these three practices.
Producing well-secured software is nine practices
Design to meet security requirements and mitigate risks, verify design compliance, verify third party software, reuse well-secured software rather than duplicating functionality, secure coding practices, build configuration, testing, and secure settings by default.
Responding to vulnerabilities includes root cause
Identify and confirm vulnerabilities on an ongoing basis, assess prioritise and remediate them, and analyse them to identify their root causes. That third practice is what stops the same class of defect returning, and it is the one most often skipped.
Shifting left is stated as a principle
The earlier in the life cycle that security is addressed, the less effort and cost is ultimately required to achieve the same level of security. That principle is described as critically important regardless of which development model is used.
Vulnerabilities are broader than coding flaws
They include not just bugs caused by coding flaws but also weaknesses caused by security configuration settings, incorrect trust assumptions and outdated risk analysis. Testing that only looks for code defects misses three of those four categories.
Environments have to be enumerated
The framework states that enumerating your environments is necessary to secure them properly, and especially to prevent lateral movement of attackers from environment to environment. Development, build, staging, test and production all count.
Shared responsibility needs an agreement
Where delivery involves platform or service providers, the tenant organisation should establish an agreement specifying which party is responsible for each practice and task, and how each provider will attest to their conformance with it.
Twenty practices, and what each group is responsible for.
| Group | Practices | What it is responsible for | |
|---|---|---|---|
| Prepare the Organization | PO.1 to PO.5 | People, processes and technology ready for secure development | |
| Protect the Software | PS.1 to PS.3 | All components protected from tampering and unauthorised access | |
| Produce Well-Secured Software | PW.1 to PW.9 | Releases with minimal security vulnerabilities | |
| Respond to Vulnerabilities | RV.1 to RV.3 | Residual vulnerabilities found, fixed and prevented from recurring | |
| Security requirements defined | PO.1 | The foundation everything else is measured against | |
| Secure development environments | PO.5 | Frequently the weakest practice we assess | |
| Release integrity verification | PS.2 | What supply chain attacks target | |
| Third party software verified | PW.3 | Dependencies, not just your own code | |
| Secure settings by default | PW.9 | What the customer gets before they configure anything | |
| Root cause analysis | RV.3 | The practice that stops recurrence |
Four things that make an assessment change how software gets built.
We assess from evidence, not from a questionnaire
Repositories, pipeline configuration, environment settings, dependency manifests and vulnerability records. Self assessment consistently overstates the position, particularly on secure environments and release integrity where the honest answer is uncomfortable.
We use the practice identifiers as a common language
The framework provides a common language to describe fundamental secure development practices, understandable without expertise in the subject. That makes findings communicable between developers, security teams, procurement and customers.
We mark practices not applicable where they are not
Not all practices apply to all use cases, and the framework says so directly with the compiler example. Assessing an organisation against practices irrelevant to how it builds software produces findings nobody should act on.
We treat the supply chain as in scope
Verifying third party software, protecting code from tampering, verifying release integrity and archiving releases are four separate practices. Together they describe the supply chain position, which is what most customer questionnaires now probe.
Three phases across roughly six to ten weeks.
- 01Weeks 1 to 3
Assess the current practices
Against the twenty practices, using evidence from repositories, pipelines, environment configuration, dependency management and vulnerability records rather than from self assessment. Environments are enumerated as part of this.
- Position per practice with supporting evidence
- Environments enumerated across the life cycle
- Toolchain mapped to the practices it supports
- Ownership gaps identified per practice
- 02Weeks 4 to 7
Prioritise on risk, not completeness
Factors such as risk, cost, feasibility and applicability determine which practices to invest in, and automatability matters particularly for practices applied at scale. Not every practice is relevant to every organisation, and the framework says so.
- Practices prioritised by risk and feasibility
- Automatable improvements identified
- Practices assessed as not applicable, with reasoning
- Roles and responsibilities proposed per practice
- 03Weeks 8 to 10
Embed and evidence
Improvements sequenced into the delivery process rather than bolted alongside it, with a way to evidence each practice to a customer. Where platforms or services are involved, the responsibility split is documented and attestation agreed.
- Improvement plan sequenced into delivery
- Evidence approach defined per practice
- Provider responsibility split documented
- Customer facing summary of secure development practices
Six situations that prompt an assessment.
A UAE software company asked about its development process
Enterprise buyers increasingly ask how software is built rather than only whether it was tested. Practice by practice answers using stable identifiers are far more credible than a summary of a scanning tool output.
A team where the same defect classes keep returning
That is the signature of missing root cause analysis. Remediation closes tickets while the process that produced them stays unchanged, and the framework names analysing vulnerabilities to identify root causes as a distinct practice for exactly this reason.
An organisation worried about its build pipeline
Protecting all forms of code from unauthorised access and tampering, verifying release integrity and archiving each release are three separate practices. Together they are the difference between a supply chain concern and a supply chain control.
A regulated firm developing in house
Where software supports regulated processes, supervisors ask how it is built and changed. An assessed position against a published framework is a materially stronger answer than an internal description of the team working practices.
A business consuming platform services heavily
Responsibility for practices is distributed under a shared responsibility model, and the tenant should agree with providers which party owns each practice and how they will attest to it. Very few organisations have that agreement in place.
A company setting requirements for its own suppliers
The framework is designed to be used in both directions, including expressing secure development requirements to third party suppliers using its conventions. That is a more precise contractual instrument than asking for secure development generally.
How UAE organisations approach software security.
| Feature | Assessed development process | Testing at the end | Nothing systematic |
|---|---|---|---|
Where vulnerabilities are found | Throughout | Before release | In production |
Cost of fixing them | Lower, found earlier | Higher | Highest |
Recurrence prevented | Root cause analysed | Rarely | No |
Development environments secured | Assessed | Usually not | No |
Release integrity verifiable | Yes | Sometimes | No |
Third party components verified | Yes | Scanned at best | No |
Answer for a customer questionnaire | Practice by practice | A test report | None |
Works across teams and languages | Yes, outcome based | Tool dependent | Not applicable |
Supplier requirements expressible | Yes | Vaguely | No |
Effort to reach | Weeks to assess | Per release | None |
Three practices are weak in almost every organisation we assess.
They are weak for the same reason in each case: nobody owns them, because they sit between the development team and the security team.
- Implementing and maintaining secure environments for software development. Build servers, CI runners, developer machines and test environments frequently have weaker controls than production, while holding credentials that reach production directly.
- Verifying software release integrity. Many teams can describe how code becomes a release and cannot demonstrate that a given artefact is the one their pipeline produced. That is precisely the gap a supply chain attack is designed to exploit.
- Analysing vulnerabilities to identify their root causes. Remediation closes the ticket, root cause analysis prevents the next twelve tickets, and it is almost always the first thing dropped when delivery pressure rises.
- None of these is expensive to improve relative to what they prevent. They are neglected because they are nobody specific responsibility, which is exactly what the first practice group exists to fix by implementing roles and responsibilities.
Five steps, evidence first throughout.
- 1
Enumerate the environments
Development, build, staging, integration, test, production and distribution, since names vary between organisations. The framework states enumerating environments is necessary to secure them and particularly to prevent lateral movement between them.
- 2
Assess the twenty practices against evidence
Prepare the organisation, protect the software, produce well-secured software and respond to vulnerabilities, each practice given a position supported by what the repositories, pipelines and records actually show rather than by team self assessment.
- 3
Establish ownership per practice
Implementing roles and responsibilities is a practice in its own right, and the practices we most often find weak are weak because they sit between teams. Naming an owner is frequently the highest value single change available.
- 4
Prioritise on risk, cost, feasibility and applicability
Those four factors are named in the framework, with automatability as an additional consideration for practices applied at scale. Practices that genuinely do not apply are recorded as such with reasoning rather than left as open findings.
- 5
Embed the improvements and make them evidenceable
Sequenced into the delivery process, with each practice able to be evidenced to a customer or an auditor, and with the provider responsibility split documented where platform or service providers carry some of the practices on your behalf.
What organisations ask about secure development assessment.
Fifteen questions about how you actually build software.
Prepare
- Are security requirements written down?Practice PO.1.
- Who owns each security practice?Practice PO.2.
- Are security check criteria defined?Practice PO.4.
- Are development environments hardened?Practice PO.5.
- Have we enumerated our environments?A stated prerequisite.
Protect and produce
- Is code protected from tampering?Practice PS.1.
- Can we verify release integrity?Practice PS.2.
- Is each release archived?Practice PS.3.
- Do we verify third party components?Practice PW.3.
- Are defaults secure out of the box?Practice PW.9.
Respond
- Do we find vulnerabilities continuously?Practice RV.1.
- Is remediation prioritised deliberately?Practice RV.2.
- Do we do root cause analysis?Practice RV.3.
- Is there a disclosure route?Part of ongoing identification.
- Do the same defects keep returning?The RV.3 symptom.
Ask whether anybody can prove the artefact in production is the one your pipeline built.
That is one of the twenty practices, and in most organisations the honest answer is no. It is also the specific gap a supply chain attack is designed to exploit.
Related Services
Explore more solutions that work great with this service
API security assessment
Test the authorisation flaws scanners report as clean.
Open source licence compliance
Know what your software is made of, per release.
VAPT Testing
CREST-certified vulnerability assessment and penetration testing
Website Security Audit
OWASP Top 10 2025, tested properly and retested
Third Party Risk Audit
Who can actually reach your systems, and what to do about it
IT Risk Assessment
A short register with an owner against every risk
Cloud Security Posture Audit
The real inventory, then configuration and identity
Gap Assessment
Distance to a target you actually have to meet