ISO 27001 controls

Secure development under ISO 27001: the controls that follow your code to production.

Annex A has a run of technological controls about building software. Read together, they describe a pipeline: decide what secure means for a feature, design for it, write it carefully, test it, keep environments apart, and treat outsourced code and test data with the same care. An auditor follows that pipeline and asks for the trace each stage leaves.

Back to ISO 27001 services

01 · The control set

Eight controls that read as one pipeline

Controls 8.25 to 8.31 plus 8.33, each covering one stage of how software gets made.

The 2022 edition groups these controls in the technological theme. Each one is short in the standard; the work is deciding what each means for your stack. The names below are the public Annex A titles. What follows each is our own description of the purpose.

8.25 Secure development life cycle
Security has a defined place in every phase of how you build, from idea to release.
8.26 Application security requirements
Security needs are written down for an application before it is built or bought.
8.27 Secure system architecture and engineering principles
Agreed design principles that new systems are measured against.
8.28 Secure coding
Coding practices that avoid known classes of flaw, applied and checked.
8.29 Security testing in development and acceptance
Security is tested before release, against the requirements set earlier.
8.30 Outsourced development
Code written by others is directed, monitored and reviewed as if it were yours.
8.31 Separation of development, test and production environments
Environments are kept apart so a mistake in one cannot spill into another.
8.33 Test information
Data used for testing is chosen and protected, and real personal data is handled with care.

8.32 Change management sits in the middle of this run. It has its own guide because it reaches beyond code into infrastructure and configuration.

02 · Stage by stage

Where each control lands in a modern pipeline

One row per stage: the control that governs it and the evidence that stage naturally produces.

Pipeline stageControlEvidence an auditor can sample
Planning a feature8.26 requirementsSecurity acceptance criteria on the ticket or design document
Design8.27 architecture principlesA short design review note or threat model for significant changes
Writing code8.28 secure codingCoding guideline, linter and static analysis configuration, review comments
Pull request8.28 and 8.32Approved review by someone other than the author, with checks passed
Build and test8.29 security testingPipeline logs showing dependency, secret and static scans, and their results
Pre-release acceptance8.29 acceptanceSign-off that the security criteria were met, or an accepted exception
Environments8.31 separationSeparate accounts or projects, access lists showing who reaches production
Test data8.33 test informationMasking or synthetic data method, approval for any use of live data
Vendor code8.30 outsourced developmentContract security clauses, review of delivered code, acceptance tests

Notice that most evidence comes from tools you already run. A team that uses pull requests and a build pipeline is producing the records; the gap is usually that nobody has written down that these steps are the control, so they drift.

03 · The life cycle

Writing the life cycle down without inventing a new process

Describe the process you have, then add the security checkpoints it lacks.

  1. Draw your current path from ticket to production, as it really runs.
  2. Mark the points where a security decision is made or should be made.
  3. For each point, name the owner, the check and the record it leaves.
  4. Decide which changes are big enough to need a design review or threat model, and say how you tell.
  5. Write it in a page or two, and reference it from your secure development policy.

Using a recognised model

Public frameworks such as OWASP SAMM and the NIST Secure Software Development Framework (SSDF) describe secure development practices in detail. Neither is required by ISO 27001, but either can give your life cycle a vocabulary and a way to judge maturity over time.

04 · Small vs large teams

What the controls look like at different sizes

The intent is the same. The mechanism changes with headcount.

Small team

A handful of engineers, one product

  • Branch protection forces one reviewer on every merge
  • Security criteria are a checklist in the pull request template
  • Free or bundled scanners run in the build
  • Production access limited to two or three named people
  • Synthetic seed data instead of copies of live data

Large team

Many squads, shared platforms

  • A security champion in each squad, with a central owner
  • Threat modelling required above a defined risk level
  • Central scanning with tracked findings and agreed fix times
  • Separate platform team owns environment separation
  • A masking service for any data copied out of production

An auditor does not grade size. They check that what you said you do is what the records show you do.

05 · Vendors and test data

The two controls teams forget

Outsourced code and test data are where scope quietly leaks.

  • Contract terms for vendors. Secure coding expectations, ownership of code, right to review, and how defects are handled.
  • Review on delivery. Vendor code goes through the same pull request and scan path as your own.
  • Vendor access. Contractors reach only the repositories and environments they need, and lose access when work ends.
  • Test data rules. Live personal data is not used for testing unless approved, protected like production, and deleted after.
  • Lower-environment hygiene. Secrets and keys in test and development are not the production ones.
  • A database copy for debugging. A full production snapshot restored to a laptop or a test account is the classic finding under 8.33.
  • Shared admin across environments. If one role can change development and production alike, separation under 8.31 is only on paper.
  • Scans that nobody reads. A tool that runs but whose results are never triaged does not show testing under 8.29.

06 · What auditors ask

What a certification auditor is likely to ask

Expect sampling: a handful of recent changes, followed end to end.

  • Show me your secure development policy and where the life cycle is described.
  • Pick three merged changes from last quarter: who reviewed them, and what checks ran?
  • How do you decide when a change needs a design or threat review?
  • Who can deploy to production, and how is that limited?
  • Where does test data come from, and has live data been used?
  • For code a contractor wrote, show the review and acceptance.

Sources: ISO/IEC 27001:2022 Annex A control titles 8.25 to 8.33 (public titles only; the standard's text is not reproduced); OWASP Software Assurance Maturity Model (SAMM); NIST SP 800-218, Secure Software Development Framework (SSDF).

Secure development questions

Do we need a separate secure coding standard document?

You need agreed practices; their form is yours to choose.

Many teams point to a recognised public guide and add a short page of house rules for their languages and frameworks. What matters is that developers know the practices, the pipeline enforces what it can, and reviews check the rest.

Is a penetration test required for 8.29?

Not by name. Security testing is required; the method is your choice.

The control asks for security testing in development and acceptance. A penetration test is one way to test, often used for major releases or yearly. Automated scans and review checks usually cover the routine flow. Your risk assessment should explain the mix.

We only use a low-code platform. Do these controls apply?

Partly. Exclusions must be justified in the SoA.

Requirements, testing, separation of environments and change control usually still apply to configuration and workflows. If a control truly does not apply, record the reason in the Statement of Applicability.

Can one engineer approve their own pull request in a two-person team?

Avoid it. If unavoidable, add a compensating check.

Self-approval defeats the point of review. Where headcount makes it unavoidable, record the exception and add a compensating check, such as a weekly review of merged changes by the other person.

Turn your pipeline into audit evidence.

An ISO 27001 gap analysis reads your development flow against controls 8.25 to 8.33 and shows which records you already have.