Join our Newsletter — 33% off our NHI Course
Home› Guides› UK Software Security Code of Practice: the 14…
Guide Software & AI Supply Chain

UK Software Security Code of Practice: the 14 principles and how to evidence them

← All guides
By NHI Mgmt Group, edited by Lalit Choda Updated 8 November 2026 13 min read
On this page

Enterprise customers increasingly ask software suppliers to prove they build, ship and maintain software securely, and the UK Software Security Code of Practice is now the reference those questions point to. The Code was published by the Department for Science, Innovation and Technology (DSIT) on 7 May 2025, launched at CYBERUK 2025, co-designed with the National Cyber Security Centre (NCSC) and co-sealed by the Canadian Centre for Cyber Security; the GOV.UK page shows a last update of 15 January 2026, which added details of the new Software Security Ambassadors Scheme. As of November 2026 the Code says a certification scheme is still being developed. It sets 14 principles in four themes. This guide goes principle by principle, explains who each principle applies to, how the NCSC Assurance Principles and Claims (APCs) and self-assessment template work, and which principles turn on identity and machine credentials in the build and release pipeline. It is for software vendors' senior leaders, product security and engineering teams, and the buyers who assess them. For the wider policy debate on liability and secure by design, see the Software Liability and Secure by Design Guide.

Key takeaways

  • Voluntary, but a procurement baseline. The Code is not law; it becomes binding when a customer contract or supplier questionnaire cites it, and buyers are named as an intended audience.
  • A named senior owner is expected. Vendors should appoint a Senior Responsible Owner (SRO) at top-tier leadership level who is accountable for the principles being followed.
  • Fourteen principles, four themes. Secure design and development (1.1 to 1.4), build environment security (2.1, 2.2), secure deployment and maintenance (3.1 to 3.5) and communication with customers (4.1 to 4.3).
  • Evidence follows the NCSC claims. The NCSC APC document breaks each principle into outcome-based claims; a vendor that evidences all of a principle's claims can say it meets that principle, and the self-assessment template records the evidence.
  • Build pipeline identities are in scope. Principle 2.1 expects least privilege, MFA, secure credential storage and no default credentials for every account that can reach the build environment, and 1.4 asks vendors to avoid hard-coded credentials.

What it is and who it applies to

The Code is a voluntary baseline for software security and resilience. Its stated aim is to reduce the likelihood and impact of software supply chain attacks and other resilience incidents, many of which come from avoidable weaknesses in development and maintenance, and to improve communication between vendors and their customers. It was refined through a public call for views from May to August 2024. The Code says it reflects best practice including that outlined in the US Secure Software Development Framework (SSDF) and the EU's Cyber Resilience Act, and it should be read alongside the UK Cyber Governance Code of Practice Guide and technology-specific codes such as the UK AI Cyber Security Code of Practice Guide.

The Code defines software vendors as organisations that develop and sell software or software services. Software covers code, programmes and applications on IT and OT hardware and cloud services, including SaaS. Its main focus is proprietary software sold business to business.

StakeholderPrinciples that applyNotes
Developers and distributors (develop and sell)All 14The primary audience
Resellers (sell, do not develop)Themes 3 and 4Should encourage their developers to follow the Code
Developers only, such as in-house teamsThemes 1 and 2, and theme 3 where within their responsibilityUseful as an internal engineering baseline
Open source developers and maintainersNot the primary audienceRisk in open source code is managed by the proprietary developers and end users who consume it
Organisations buying softwareUse the Code in supplier negotiations and contractsCan ask for the self-assessment as assurance

The SRO can be a senior executive, board member, C-suite member or equivalent. Deep technical expertise is not required, but the SRO must prioritise the Code and make sure teams have the resources, tools and skills to implement it.

Structure and key requirements

For each theme the Code says the SRO should gain assurance that the organisation achieves the principles listed. The practical detail sits in the NCSC implementation guidance, published as one page per theme plus an appendix on secure development frameworks.

PrincipleRequirement (summarised)What the NCSC guidance and claims expect
1.1Follow an established secure development frameworkOne framework across projects covering threat modelling, requirements, governance and roles, secure coding, test strategy, data and configuration management; developers trained in it
1.2Understand software composition and assess third-party component riskInventory of direct, transitive, internal and open source components, plus compilers and build systems; an SBOM is one suitable format; all components identified and documented
1.3Have a clear process for testing software and updates before distributionStatic and dynamic analysis, peer review by at least two people, unit and integration testing including fuzzing, and point-in-time manual assessment such as penetration testing
1.4Follow secure by design and secure by default principlesThreat modelling early; phishing-resistant MFA opt-out for privileged users; no default passwords; input validation; no hard-coded credentials; encryption of sensitive data
2.1Protect the build environment against unauthorised accessAccess policy, removal process, least privilege, MFA for all build accounts, secure credential storage, no default credentials, regular access review
2.2Control and log changes to the build environmentLog all access and changes in protected storage, retain for an agreed period, define who may change what and for how long, revoke when no longer needed
3.1Distribute software securely to customersTrusted download location, TLS for automatic deployment, code signing through the pipeline, integrity verifiable in the customer environment, ability to roll back
3.2Implement and publish an effective vulnerability disclosure processPublished policy and confidential reporting route; triage by harm; NCSC Vulnerability Disclosure Toolkit referenced
3.3Detect, prioritise and manage vulnerabilities in componentsScanning, monitoring vulnerability databases and advisories, risk-based severity process, tested response playbook, root cause analysis
3.4Report vulnerabilities to relevant parties where appropriateInternal teams, customers, CVE and NVD, regulators where required, affected third parties and open source projects
3.5Provide timely security updates, patches and notificationsFixes prioritised by risk, out-of-band updates for critical issues, signed and tested updates, security fixes not sold as a premium feature
4.1Tell customers the level of support and maintenance providedClear, published support terms
4.2Give at least one year's notice before end of supportClaim: customers given at least one year's notice
4.3Make information on notable incidents available to customersInformation on incidents that may significantly affect customer organisations

The NCSC notes that the principles are meant to protect against remote attackers using public tools with modest resources, and are not sufficient on their own against a sophisticated, highly motivated attacker. Treat them as the floor. The NIST Secure Software Development Framework (SSDF, SP 800-218) Guide goes deeper on practices for principle 1.1.

Identity and NHI requirements

Several principles depend directly on how the vendor manages human and non-human identities in its engineering estate. Build systems, CI/CD runners, signing services and package registries all authenticate with tokens, keys and service accounts, and those credentials are the route to tampering with releases.

  • Build access (2.1): the guidance asks for least privilege on every account, separation of external-facing access management components, secure credential storage and no default credentials. The APC claim that users with build access are regularly reviewed for legitimate need applies equally to pipeline service accounts and deploy tokens. See the CI/CD Pipeline Identity Security Guide.
  • Strong authentication (2.1, 1.4): MFA for every account that can reach the build environment, an extra factor from an unfamiliar device, and recovery processes that cannot be used to bypass MFA. For the product itself, phishing-resistant MFA should be opt-out for privileged users.
  • Credentials in code (1.4): identify credentials that could cause harm if exposed, store them securely and avoid hard-coding them. A secrets manager and pre-commit and pipeline secret scanning give evidence for this. See the Secrets Management Guide.
  • Change logging (2.2): logs should attribute each change to an identity, so shared automation accounts weaken the evidence. Give each pipeline and job its own identity, preferably with short-lived federated tokens.
  • Signing keys (3.1, 3.5): code signing through the pipeline means the signing key is one of the most sensitive machine credentials the vendor holds. Keep it in an HSM or managed key service, restrict which pipeline identities can request signatures and log every use. See the Code Signing Security Guide.
  • Default credentials in shipped products (1.4): administrators should set their own strong password during installation or use a stronger authentication method; this also covers API keys and service credentials the product creates.

Implementation steps

  1. Appoint the SRO and scope products. Name the SRO, list products and services sold to organisations, and decide which stakeholder category applies to each (developer and distributor, reseller, developer only).
  2. Download the claims and template. Use the NCSC APC document and the self-assessment template as the working checklist, one row per claim.
  3. Baseline the build estate first. Inventory build systems, runners, registries, signing services and every human and machine identity with access. Enforce MFA, remove default and shared credentials, and turn on change logging to protected storage (2.1, 2.2).
  4. Pick and publish a development framework. Map existing practice to one framework such as the SSDF and record which practices are implemented (1.1). The guidance suggests considering publishing which framework you follow.
  5. Stand up composition and vulnerability handling. Generate SBOMs per release, monitor components, publish a vulnerability disclosure policy and agree internal response times (1.2, 3.2 to 3.4). See the SBOM Guide.
  6. Secure release and update delivery. Sign artefacts and updates, document how customers verify integrity, keep rollback to a specific version, and consider staged rollouts (3.1, 3.5).
  7. Publish customer-facing terms. State support and maintenance levels, commit to at least one year's end-of-support notice and set up a route for notable incident information (4.1 to 4.3).
  8. Complete and refresh the self-assessment. Record evidence per claim, list gap-closing actions where a claim cannot yet be fully evidenced, and review at least at each major release or annually.

Evidence and assessment

The government provides a self-assessment based on the NCSC's Principles Based Assurance approach. The APCs are sets of ideal-scenario claims; evidence can vary by organisation, and the NCSC lists document inspection, interviews and audits of test plans and results as forms it can take. Where a claim cannot be fully evidenced, the vendor should identify the steps needed to close the gap. Assurance can also come from audit and independent testing through the NCSC Cyber Resilience Test Facilities scheme. The Code says the government is developing a certification scheme based on this compliance process, with details to follow; the status should be checked on GOV.UK before relying on it.

PrincipleExample claim (NCSC APC)Evidence that supports it
1.1Developers are trained in the use of the framework and toolsFramework document, training records, mapping of practices to projects
1.2All third-party components are identified and documentedSBOM per release, dependency policy, component update test results
2.1Users with access to the build environment are regularly reviewedAccess review records covering human and service accounts, MFA enforcement report
2.2Access and changes to the build environment are loggedLog configuration, retention setting, sample audit trail tied to named identities
3.1Integrity of software, including updates, can be verified in the customer environmentSigning process, published verification instructions, key custody records
3.2A vulnerability disclosure policy and process is publishedPublic policy URL, triage procedure, report handling metrics
3.5Security updates are distributed as soon as is practicableFix time by severity, out-of-band release records, release notes marking security fixes
4.2Customers are given at least one year's notice of end of supportPublished lifecycle policy, customer notices with dates

Measures worth reporting to the SRO: share of claims fully evidenced, share of build identities with MFA or short-lived credentials, median days from critical vulnerability confirmation to fix release, share of releases with an SBOM and signature, and number of products with a published end-of-support date.

Mapping to other frameworks

The mapping is indicative and drawn from the principle text; neither DSIT nor the NCSC publishes it as an official crosswalk on the pages checked. EU market obligations are covered in the EU Cyber Resilience Act Guide.

Code principleNIST SSDF (SP 800-218) groupNIST CSF 2.0NIST SP 800-53 Rev 5
1.1 Secure development frameworkPO Prepare the OrganisationPR.PS-06SA-15
1.2 Composition and third-party riskPW Produce Well-Secured Software, PS Protect the SoftwareGV.SC-05SR-3, SR-4
1.3 Testing before distributionPWPR.PS-06SA-11
1.4 Secure by design and defaultPWPR.PS-06SA-8
2.1 Build environment accessPO, PSPR.AA-01, PR.AA-05AC-2, AC-6, IA-2
2.2 Build change control and loggingPSPR.PS-04CM-3
3.1 Secure distributionPSPR.PS-06SR-11
3.2 to 3.4 Vulnerability disclosure, management and reportingRV Respond to VulnerabilitiesID.RA-08RA-5
3.5 Timely updatesRVID.RA-08SI-2
4.1, 4.2 Support terms and end-of-support noticeNone directGV.SC-05SA-22

Common pitfalls

  • Treating it as a policy exercise. Claims such as "integrity can be verified in the customer environment" need working mechanisms and customer instructions, not a statement of intent.
  • Reviewing only human build access. Deploy keys, runner tokens and registry credentials outlive staff changes; leave them out and the 2.1 access review claim is not met. See the Service Account Security Guide.
  • Shared automation accounts. One pipeline account used by many jobs makes the 2.2 change log unattributable.
  • SBOM without action. Producing SBOMs but not monitoring components against new vulnerabilities leaves 1.2 and 3.3 half done.
  • Charging for security fixes. The guidance says security fixes should not be a premium feature and should run for a clearly communicated support period.
  • Short end-of-support notice. Lifecycle announcements with less than a year's notice fall short of 4.2 and are what customers' procurement teams check first.

Practitioner checklist

  • Appoint and record the Senior Responsible Owner.
  • Classify each product by stakeholder type and note which principles apply.
  • Complete the NCSC self-assessment template with evidence per APC claim.
  • Enforce MFA and least privilege for every human and machine identity with build access, and review it on a schedule.
  • Remove default, shared and hard-coded credentials from build systems and shipped products.
  • Log build environment access and changes to protected storage with an agreed retention period.
  • Generate an SBOM and signature for every release and publish verification steps.
  • Publish a vulnerability disclosure policy and track fix times by severity.
  • Publish support terms and give at least one year's notice before end of support.

Standards and references

This guide summarises the UK Software Security Code of Practice and is not legal advice. Related NHI Mgmt Group resources: Software Liability and Secure by Design Guide · Software Supply Chain Security Guide · CI/CD Pipeline Identity Security Guide · UK Government Secure by Design Guide

Free weekly newsletter

Subscribe to the NHI & AI Identity Journal

The latest on NHI and Agentic AI security – articles, research, breaches, news and events every week.

Bonus 33% off our NHI Course when you subscribe.

NHIMG Editorial Note
Researched and written by the NHI Mgmt Group editorial team using AI tools, under the editorial direction of Lalit Choda. Facts are drawn from the sources listed on this page and checked by our automated quality process. Last updated 8 November 2026. Spotted an error? Use our contact page.
NHI Mgmt Group, the independent authority on Non-Human Identity, IAM and Agentic AI security. nhimg.org