Outsourced development
ISO 27001 Annex A 8.30 keeps you accountable for software that agencies, offshore teams and freelancers build for you. A contract security schedule is the start, not the evidence. Milestone reviews, pipeline verification and identity-provider-managed supplier access produce the trail an auditor samples, without slowing releases.
The enterprise questionnaire asks who builds your software and how you verify it. Your answer is an agency in another time zone and a contract signed two years ago. ISO 27001 Annex A 8.30 is the control that decides whether that answer survives scrutiny.
This guide is for CTOs, heads of engineering and security leads at 25 to 250-person firms that use agencies, offshore teams or freelancers. It covers what the control asks, the contract schedule, the checks before sign-off, and how to automate supplier oversight. Done that way, the audit evidence builds itself.
ISO 27001 Annex A outsourced development control 8.30 makes you accountable for software that agencies, offshore teams and freelancers build for you. You must set security expectations in the contract, monitor the work while it is in flight, and verify the deliverable before production. Certification scope does not shrink when someone else writes the code.
Responsibility can't be subcontracted. Only the typing can.
Any bespoke code written for you counts, from a large agency to a single freelancer. The standard sketches what steering that work covers, and five questions frame it:
Reviewers know outsourced code is a supply-chain door into your product, so "we trust the agency" stalls deals. The failures also outlast the project. A backdoor or injectable flaw shipped by a supplier becomes your breach and your regulatory exposure.
At audit, a firm that outsources development must show security terms in the contract and proof that it checked what was delivered. The rest of this guide builds both without adding red tape.
The 2022 revision carries the 2013 control A.14.2.7 forward as Annex A 8.30 under the technological controls domain. The core duty is unchanged: outsourced software stays your responsibility. The control covers confidentiality, integrity and availability alike, because outsourced code can leak data, ship tampered logic or fail in production.
If you certified against the 2013 edition, your A.14.2.7 evidence is the starting point. Contracts, oversight records and acceptance tests carry across, so the work is re-mapping and tightening rather than building from nothing.
The control works on both sides of delivery:
The evidence splits the same way the work does. Engineering holds the build records: reviews, scans and acceptance tests. Whoever owns supplier contracts holds the schedule and the due diligence file.
A.5.19 governs supplier relationships in general; A.8.30 zooms in on the software artefact being built for you and the engineering practices behind it. You need both, and they share evidence. A.8.25 to A.8.29 define the lifecycle and testing discipline your contract should point suppliers at.
Evidence overlaps by design. The due diligence file and contract baseline that serve A.5.19 also open the A.8.30 trail. You build the supplier-management process once and add software checks on top.
Three of the secure development siblings do most of the work:
Those controls need to exist in your own practice first. A contract cannot point a supplier at standards you have not defined.
A shared vocabulary helps when the supplier is not ISO-minded. The NIST SP 800-218 Secure Software Development Framework overview gives producers and acquirers a common language for describing secure development practices. You can then set requirements and judge supplier risk in terms both sides recognise.
The MSA or statement of work should name the coding standard the supplier builds to, with the OWASP Top 10 as the practical reference. It should require security testing of what they deliver and set a remediation service level. It should also settle IP and open-source licensing, reserve your right to audit, and bind sub-contractors to the same baseline.
The NCSC Supply Chain Security: Establish Control guidance makes the underlying point: suppliers must understand their responsibility to protect your information and what follows if they fail. A security schedule is where that understanding becomes enforceable. Each clause needs a specific wording to be testable:
Do proportionate due diligence before onboarding. A security questionnaire plus whatever independent assurance the supplier holds, such as ISO 27001 or SOC 2, is enough for most engagements. File it, because auditors ask for the pre-engagement risk assessment.
Hand over context as well as requirements. Share the threat model for what the supplier is building, and your secure design rules on input validation, error handling and cryptography. That way your security intent survives the handover.
The contract schedule and due diligence are about a week's work, and they must precede the engagement. Retro-fitting clauses mid-project is a negotiation; writing them in up front is a template.
The common failure is trusting the supplier's good name instead of paper. A contract with no named standard, no audit right and no independent checks reduces the control to hope. Every silent clause comes back later as a dispute or a due-diligence finding.
Escrow and IP terms decide whether you can keep running and legally own your product if a supplier fails or a dispute starts. They are continuity and licensing controls, not legal boilerplate. For a system you could not rebuild quickly, agree source code escrow, and settle ownership and open-source licence terms before work begins.
Three scenarios show what these terms prevent:
Escrow is proportionate, not universal. A bespoke tool you could replace in a sprint does not justify it, but a business-critical platform built by a tiny agency does. Agree what is deposited, what triggers release, and have someone check the deposit actually builds.
At 25 to 250 people, a section in your secure development policy usually carries outsourced development, and a dedicated procedure is over-engineering. Name an internal owner for the supplier who knows the monitoring is theirs. A standalone procedure is enterprise apparatus you can grow into if outsourcing becomes central to the product.
The policy section stays short. It needs to say:
Pick the person who deals with the supplier day to day. That is usually the head of engineering or a product owner. Write their name into the policy and the supplier register, because auditors ask who does the monitoring and "the team" is not a name.
Outgrow the section when outsourcing stops being occasional: several suppliers, or most of a product built externally. Until then, one clear page beats a procedure nobody reads.
Review at milestones, not just on delivery day: supplier scan reports and spot code reviews while problems are cheap. Then gate acceptance on verification: UAT in an isolated staging environment, a check for known vulnerabilities and malicious content, and for sensitive work an independent penetration test. Sign-off is a recorded decision.
A single acceptance gate after months of unmonitored build is a deadline, not a control.
In-flight review is light by design. At each milestone, collect the supplier's scan reports, spot-check a sample of the code and review the design against your security expectations. That weaves checks into delivery rather than running a separate inspection regime.
Acceptance then follows a fixed sequence:
Write the failure condition into the statement of work, such as no unresolved critical findings at acceptance. A gate that cannot say no is a formality.
The table compares the verification methods by what each catches, how often it runs and the evidence it leaves.
| Method | What it catches | Cadence | Evidence it leaves |
|---|---|---|---|
| Supplier scan reports | Flaws the supplier's own tooling finds early | Each milestone | Reports attached to the milestone ticket |
| Spot code review | Design and logic weaknesses scanners miss | Each milestone, sampled | Review notes and findings log |
| SAST and DAST in your pipeline | Injectable flaws and runtime weaknesses in delivered code | Every merge | Per-delivery pipeline report |
| Dependency and licence scan | Known-vulnerable libraries and copyleft licences such as GPL | Every merge | Scan output and dependency inventory |
| Malicious-content check | Backdoors and tampered logic | Before acceptance | Check record signed off |
| UAT in isolated staging | Behaviour that departs from the specification | Before acceptance | Signed UAT record |
| Independent penetration test | Exploitable weaknesses in sensitive systems | Before acceptance of sensitive work | Test report and retest evidence |
Land supplier code in repositories you control. Run SAST, DAST and dependency and licence scans on every merge, and let the pipeline decide. Turn each contractual milestone into a ticket that closes only with the scan report attached. Provision supplier access through your identity provider, time-boxed and role-scoped, so project close triggers revocation automatically.
The pipeline replaces promises with reports. Each rail leaves its own evidence:
Credentials left live after the project closes are an audit finding with a login.
Standing supplier access with no MFA, no scoping and no end date is the classic finding when an auditor pulls the access list. Tying removal to project close, not to someone's memory, takes that finding off the table.
At this scale, one engineer can maintain these rails. The same trail satisfies the certification body and the enterprise customer's security review, without a single extra meeting with the supplier.
Outsourced development ISO 27001 audits trace one live engagement end to end: the contract security schedule, due diligence file, milestone oversight, acceptance records and supplier access. The auditor then cross-checks the contract against what the delivery team describes. No contractual security requirements and no verification of deliverables grades major; single gaps grade minor.
Expect questions like these in the room. Each one is answered by a record from the earlier sections:
Typical single gaps are a missing due diligence record, a skipped milestone review, or supplier credentials left active after close. Certification bodies usually grade each one minor, but a pattern of them adds up to a major.
Built this way, the trail is the audit file. The sample becomes a walk through records, not a search for them.
No. Software you simply purchase sits under general supplier relationship controls such as A.5.19. The line blurs with heavy customisation or low-code builds delivered by a partner. If someone writes bespoke code for you, treat that work as A.8.30 and keep one supplier file serving both controls.
Yes. Their certificate or report is due diligence input, not a substitute for oversight and acceptance. Read the scope statement and the reporting period to see whether the team building your product is actually covered. Your own milestone reviews and acceptance checks still produce the evidence.
No. An independent test is for sensitive work, such as internet-facing systems, authentication, payments or personal data. For lower-risk internal tooling, pipeline scans and UAT usually carry the acceptance decision. Record why you chose the depth you did, because the auditor will ask.
Don't wait for renewal. Agree a contract variation and start with the clauses that bite soonest: audit rights, the acceptance gate and access removal. Apply milestone gates from the next checkpoint onward. Moving the supplier's existing access under your identity provider is in your own hands, so that can start straight away.
Every control in this framework and the clause guides that sit above them, grouped by control domain. Open any entry for its control definition, implementation steps and the audit evidence it expects. Dimmed entries are planned.
Work with a Trust Architect to scope your ISMS, close the gaps, and get audit-ready — without stalling your roadmap.