The ultimate audit guide to ISO 27001 Annex A 8.30 Outsourced Development
Table of contents
- 1. Verify the Outsourced Development Security Policy
- 2. Confirm there are Contractual Security Obligations and a Right-to-Audit
- 3. Validate Intellectual Property and Source Code Ownership
- 4. Check Secure External Access to Development Environments
- 5. Look for Automated Security Scanning of Outsourced Code
- 6. Check for Independent Vulnerability Assessment and Pentesting
- 7. Review Secure Handling of Sensitive Data by Providers
- 8. Evidence Supply Chain Dependency Vetting
- 9. Confirm Developer Background and Personnel Security
- 10. Check for Formal Acceptance and Security Sign-off
1. Verify the Outsourced Development Security Policy
Verification Criteria: A formalised policy exists defining the mandatory security requirements, coding standards, and testing protocols for all outsourced development projects.
Required Evidence: Approved “Third-Party Development Policy” or “Outsourced Coding Standard” with explicit version control.
Pass/Fail Test: If the organisation cannot produce a formalised document specifying the security mandates for external developers, mark as Non-Compliant.
2. Confirm there are Contractual Security Obligations and a Right-to-Audit
Verification Criteria: Technical and organisational security requirements, including vulnerability remediation SLAs and the right to perform independent audits, are embedded in the developer’s contract.
Required Evidence: Signed Master Service Agreement (MSA) or Statement of Work (SOW) with highlighted security clauses and audit rights.
Pass/Fail Test: If a third-party developer has access to the codebase without a contractually binding security schedule, mark as Non-Compliant.
3. Validate Intellectual Property and Source Code Ownership
Verification Criteria: Legal and technical provisions ensure the organisation retains ownership and control over the source code, preventing unauthorised reuse or retention by the provider.
Required Evidence: Contractual “Ownership of Work Product” clauses and access logs from the organisation-owned version control system (VCS).
Pass/Fail Test: If the outsourced developer hosts the organisation’s production source code on an unmanaged, private repository without administrative oversight, mark as Non-Compliant.
DO IT YOURSELF
ISO 27001
All the templates, tools, support and knowledge you need to do it yourself.
4. Check Secure External Access to Development Environments
Verification Criteria: Access granted to external developers is restricted via Multi-Factor Authentication (MFA) and limited to the specific environments required for the project (Least Privilege).
Required Evidence: Identity and Access Management (IAM) logs showing MFA-protected logins and restricted VPN/Bastion host access for third-party IDs.
Pass/Fail Test: If an external developer can access the development network using single-factor authentication or has access to internal production servers, mark as Non-Compliant.
5. Look for Automated Security Scanning of Outsourced Code
Verification Criteria: All code delivered by the third party is subjected to automated Static Application Security Testing (SAST) and Software Composition Analysis (SCA) prior to acceptance.
Required Evidence: SAST/SCA scan reports (e.g., Snyk, SonarQube) specifically for the modules delivered by the external provider.
Pass/Fail Test: If outsourced code is integrated into the main branch without a documented vulnerability scan, mark as Non-Compliant.
6. Check for Independent Vulnerability Assessment and Pentesting
Verification Criteria: Major deliverables from the outsourced provider undergo an independent penetration test to verify the efficacy of the implemented security controls.
Required Evidence: Signed Penetration Test report dated within the project completion window and a corresponding Remediation Tracker.
Pass/Fail Test: If a third-party application is promoted to production without a verified independent security assessment, mark as Non-Compliant.
7. Review Secure Handling of Sensitive Data by Providers
Verification Criteria: Technical mechanisms prevent the use of live production data by outsourced developers, enforcing the use of masked or synthetic data in external environments.
Required Evidence: Data Masking logs or UAT environment snapshots demonstrating the absence of legitimate PII/financial records.
Pass/Fail Test: If unmasked production PII is found residing in a third-party developer’s environment or a shared staging area, mark as Non-Compliant.
8. Evidence Supply Chain Dependency Vetting
Verification Criteria: The organisation verifies that the outsourced provider has a process to vet and monitor the security of fourth-party libraries and open-source components used in the build.
Required Evidence: Software Bill of Materials (SBOM) provided by the developer and the organisation’s internal verification logs.
Pass/Fail Test: If the outsourced developer cannot provide a list of third-party libraries used in the deliverable or their associated licenses, mark as Non-Compliant.
9. Confirm Developer Background and Personnel Security
Verification Criteria: The outsourced provider confirms that all personnel assigned to the project have undergone appropriate background screening and have signed non-disclosure agreements (NDAs).
Required Evidence: Attestation of Background Checks from the provider or signed NDAs for each named developer on the project.
Pass/Fail Test: If the provider cannot demonstrate that background screening has been conducted for developers with access to sensitive source code, mark as Non-Compliant.
10. Check for Formal Acceptance and Security Sign-off
Verification Criteria: A formalised acceptance process exists where the organisation’s security lead signs off on the third-party deliverable based on the successful results of all security tests.
Required Evidence: Final Project Acceptance Document or “Go/No-Go” meeting minutes with a specific “Security Approval” field.
Pass/Fail Test: If the outsourced code is deployed to production without a formal record of internal security acceptance, mark as Non-Compliant.
