ISO 27001 Software Security: Secure Development and Acquisition
Software security is a cornerstone of any effective Information Security Management System (ISMS). With cyber threats growing in sophistication and frequency, organisations cannot afford to treat software as a black box. ISO 27001:2022 Annex A.14 provides the framework for ensuring that software is acquired, developed, and maintained securely throughout its lifecycle. This applies whether you build software in-house, purchase commercial off-the-shelf (COTS) products, or engage third-party developers.
Failure to address software security leads to vulnerabilities that attackers exploit, data breaches that destroy customer trust, and regulatory penalties that damage your bottom line. This guide covers every aspect of ISO 27001 software security requirements, from secure development lifecycle (SDLC) practices to outsourced development controls.
Annex A.14: Information Security Aspects of System Acquisition, Development and Support
Annex A.14 is divided into three control objectives, each containing specific controls that your organisation must implement and justify through the Statement of Applicability (SoA). The three objectives cover the entire software lifecycle from initial specification through development, testing, and ongoing support.
| Control Objective | Control ID | Focus Area |
|---|---|---|
| A.14.1 Security requirements of information systems | A.14.1.1 to A.14.1.3 | Specifying security requirements, securing public-facing services, and securing application services transactions |
| A.14.2 Security in development and support processes | A.14.2.1 to A.14.2.9 | Secure development policy, SDLC controls, change management, testing, and acceptance |
| A.14.3 Test data | A.14.3.1 | Protection of test data used in development and testing |
Secure Development Lifecycle (SDLC) Requirements
Annex A.14.2.1 requires organisations to establish and apply rules for the development of software and systems. This is your secure development policy, and it must be embedded within your SDLC. A secure SDLC integrates security activities at every phase, not just at the end.
| SDLC Phase | Security Activity | ISO 27001 Control |
|---|---|---|
| Requirements | Security requirements specification, threat modelling | A.14.1.1 |
| Design | Secure architecture review, attack surface analysis | A.14.2.5 |
| Development | Secure coding standards, peer reviews, static analysis | A.14.2.1, A.14.2.7 |
| Testing | Dynamic testing, penetration testing, vulnerability scanning | A.14.2.8 |
| Deployment | Acceptance testing, security sign-off, change control | A.14.2.9, A.12.1.2 |
| Maintenance | Patch management, vulnerability monitoring, periodic reviews | A.12.6.1, A.14.2.3 |
Security Requirements for Information Systems (A.14.1)
Before any development begins, security requirements must be identified and agreed. Control A.14.1.1 requires that security requirements are included in the requirements for new information systems or enhancements to existing systems. This means security is not an afterthought – it is a first-class requirement from day one.
Security requirements should address:
- Access control requirements (who can access what, under which conditions)
- Authentication mechanisms (password policies, multi-factor authentication, SSO)
- Data protection requirements (encryption at rest and in transit, data masking)
- Audit and logging requirements (what events to log, retention periods)
- Availability and resilience requirements (uptime targets, disaster recovery)
- Regulatory and contractual obligations (GDPR, sector-specific regulations)
Securing Application Services on Public Networks (A.14.1.2)
If your application is accessible from public networks, additional controls apply. You must protect against common attack vectors including injection attacks, cross-site scripting, broken authentication, and insecure direct object references. Implement web application firewalls (WAFs), rate limiting, and input validation as standard practice.
Protecting Application Services Transactions (A.14.1.3)
For applications that process transactions, you must ensure the integrity, confidentiality, and non-repudiation of the transaction data. Use TLS for transport encryption, digital signatures for authenticity, and audit trails for accountability. This is critical for e-commerce, banking, and any application handling financial or sensitive data.
Separation of Development, Test, and Production Environments
Control A.12.1.4 requires the separation of development, test, and production environments. This is one of the most fundamental controls in software security and one that auditors check rigorously. Mixing environments creates risks of unauthorised changes, data leakage, and operational disruptions.
| Environment | Purpose | Key Controls |
|---|---|---|
| Development | Writing and unit-testing code | No production data, separate credentials, developer access only |
| Test / Staging | Integration testing, UAT, performance testing | Anonymised test data, isolated network, no external access |
| Production | Live system serving real users | Strict change control, monitoring, limited access, backup |
Separation should be both logical and physical where possible. Use separate servers, containers, or cloud accounts. Implement different access credentials and permissions for each environment. Never allow developers direct access to production without a formal change management process.
Change Management for Software (A.14.2.2 to A.14.2.4)
Changes to software must be controlled. ISO 27001 requires a formal change management process that includes impact assessment, authorisation, testing, and post-implementation review. Controls A.14.2.2 (system change control), A.14.2.3 (technical review of applications after changes), and A.14.2.4 (restrictions on changes to software packages) work together to ensure changes do not introduce security weaknesses.
For commercial off-the-shelf software, control A.14.2.4 restricts modifications. Patches and updates from vendors should be applied following your patch management policy. If you must modify a COTS product, you must assess the security impact and ensure vendor support is not voided.
Security Testing Requirements (A.14.2.8)
Control A.14.2.8 requires security testing of systems during development. This is not a single test but a programme of testing activities throughout the development lifecycle. Your testing programme should include:
- Static Application Security Testing (SAST) to analyse source code for vulnerabilities
- Dynamic Application Security Testing (DAST) to test running applications
- Software Composition Analysis (SCA) to identify vulnerabilities in third-party libraries
- Penetration testing for critical applications before go-live
- Regression testing to confirm fixes have not introduced new vulnerabilities
All testing results must be documented, and identified vulnerabilities must be remediated before production deployment. The level of testing should be proportionate to the risk associated with the application.
Outsourced Development Controls
When you engage third-party developers, the security responsibility does not transfer to them. Control A.14.2.7 (outsourced development) requires you to supervise and monitor the security of outsourced development activities. Your contract with the developer must include:
- Security requirements and acceptance criteria
- Secure coding standards the developer must follow
- Delivery and acceptance procedures including security testing
- Intellectual property and data protection clauses
- Right to audit the developer’s processes and code
- Escrow arrangements for source code and documentation
- Security incident reporting obligations
Do not assume that outsourced developers follow good security practices. Verify through code reviews, testing, and periodic audits. Your ISMS scope includes the security of outsourced development, so your certification auditor will examine these arrangements.
Protection of Test Data (A.14.3.1)
Test data must be carefully protected. Control A.14.3.1 requires that test data is selected, protected, and controlled. The most common mistake is using production data in test environments, which exposes sensitive information to developers and testers without proper controls.
- Use anonymised or synthetic data for testing wherever possible
- If production data must be used, apply data masking or tokenisation
- Obtain management approval before using production data in test environments
- Track and control access to test data
- Wipe test environments after testing is complete
Frequently Asked Questions
Do we need a separate secure development policy?
Not necessarily as a standalone document, but you must have rules governing secure development that are documented and communicated. You may integrate these rules into your SDLC procedure, development standards, or information security policy. The key is that the rules exist and are enforced.
Does ISO 27001 require a specific SDLC methodology?
No. You can use Waterfall, Agile, DevOps, or any other methodology. The standard focuses on the security controls applied within your chosen methodology, not the methodology itself. However, if you use Agile or DevOps, you must adapt your controls accordingly – for example, integrating security testing into CI/CD pipelines.
How do we handle security vulnerabilities found in third-party libraries?
Implement Software Composition Analysis (SCA) in your build pipeline to automatically detect known vulnerabilities in dependencies. Establish a process for evaluating and patching vulnerable libraries based on severity. Maintain a software bill of materials (SBOM) for each application.
What if we only buy software and never develop?
Annex A.14 still applies. You must specify security requirements when acquiring software (A.14.1.1), apply change control when installing updates (A.14.2.2), restrict modifications to software packages (A.14.2.4), and accept systems only after security testing (A.14.2.9). Your process for evaluating and selecting vendors must include security criteria.
Is penetration testing required for ISO 27001?
Penetration testing is not explicitly mandated by Annex A.14, but it is a common control implemented under A.14.2.8 (system security testing) and A.12.6.1 (management of technical vulnerabilities). Most certification bodies expect to see penetration testing for internet-facing applications and critical internal systems.
How do we apply secure development rules to DevOps?
Integrate security tools into your CI/CD pipeline: SAST on every commit, DAST on staging builds, SCA on dependency updates, and container scanning for Docker images. Use Infrastructure as Code (IaC) scanning for cloud configuration templates. Automate security gates that block deployments if critical vulnerabilities are found.
Secure Your Software with ISO 27001
Implementing ISO 27001 software security controls is not just about passing an audit. It is about building secure software that protects your customers, your data, and your reputation. Whether you develop in-house, buy from vendors, or outsource to third parties, Annex A.14 provides the framework you need to manage software security risks effectively.
Bitrixme specialises in ISO 27001 implementation and certification across the GCC region. Our consultants can help you design secure development processes, prepare your Statement of Applicability, and pass your certification audit.