Penetration Testing for ISO 27001 and SOC 2: What Is Actually Required
Penetration testing for ISO 27001 and SOC 2: neither names an annual test, both are read as if they do. What the text asks for and what auditors actually check.
Neither ISO 27001 nor SOC 2 requires an annual penetration test by name, yet almost every organisation certified against either ends up buying one, because it is the practical way to show that vulnerability management actually works. Understanding why is the difference between testing to pass an audit and testing to find out what is wrong.
What ISO 27001 actually says
The 2022 revision of Annex A includes a control on technical vulnerability management and one on secure development, and the standard as a whole is built on the idea that you identify risks and treat them. Nowhere does it name a penetration test as the required method.
What it does require is that you can show your controls work. For an internet-facing application, the practical way to evidence that is to have somebody competent try to break it and write down what happened. Auditors know this, which is why the request usually arrives as "how do you assure yourselves the application is secure" rather than "show me your pentest report".
What SOC 2 actually says
SOC 2 is not a checklist. It is an attestation against the Trust Services Criteria, and the relevant ones talk about identifying and managing vulnerabilities and monitoring for anomalies. The auditor is testing whether the controls you described are designed properly and operating. If your own control description says you carry out annual penetration testing, then you have made it a requirement for yourself, and failing to do it is an exception.
You are not audited against the standard in the abstract. You are audited against the controls you claimed. Writing "annual penetration testing by an independent third party" into your control set is what makes it mandatory, and a surprising number of organisations write that before checking they can afford it.
What an auditor is looking for
Having sat on the other side of enough of these conversations, the pattern is consistent. The report itself gets a shorter look than people expect. What gets examined is everything around it.
- Scope. Does the test cover the systems in the scope of the certification, or a subset that quietly excludes the interesting one?
- Independence. Was it done by somebody who does not report to the team that built the thing?
- Date. Does it cover the period under audit, and does it postdate the last significant change?
- What happened next. This is the one that fails people. A report with eight highs and no evidence that any of them were fixed is worse than no report, because it documents that you knew.
- Retest evidence. A statement from the tester that the issues were re-examined and are gone, rather than an internal ticket marked done. How to run a retest properly sets out what makes that statement hold up.
Frequency, and where "annual" comes from
Annual is a convention, not a rule. It comes from PCI DSS, which does prescribe testing at least annually and after significant change, as covered in PCI DSS penetration testing requirements, and it has leaked into how everybody talks about the other frameworks.
The more defensible position is risk-based and it is easier to evidence: test after significant change, and at a frequency that matches how fast the system changes. A platform shipping weekly and tested once a year is tested against a version that no longer exists. An internal tool that has not changed in years does not need the same cadence.
Scope is where certifications go wrong
The most common gap is not the absence of a test. It is a test whose scope does not match the scope of the certification. A SOC 2 report covering a platform, and a penetration test covering the marketing website, is a real combination that occurs more often than it should.
Write the scope statement of the test to reference the same system boundary as the certification, and have the tester state explicitly what was not tested. An auditor reading "the administrative interface was out of scope" can decide whether that matters. An auditor discovering it themselves reaches a less generous conclusion.
The evidence chain an auditor actually follows
The report is one link. The chain runs: a policy saying you test, a scope statement matching the certified boundary, a report from an independent party inside the audit period, a record of decisions about each finding, evidence that the ones you said you would fix were fixed, and a retest confirming it. Break any link and the report on its own does not carry the weight people expect it to.
The link most often broken is the fourth. Findings get fixed and nobody records the decision, so an auditor sees eight issues and no trail, and has to ask. Findings get accepted for good commercial reasons and nobody records that either, which reads far worse than the acceptance itself would have. Recording "accepted, by this person, for this reason, revisit in March" takes a minute and is the difference between a control that operates and one you have to argue for, which is the theme of when a client accepts the risk instead of fixing it.
Internal testing counts, with a caveat
Neither standard requires that a penetration test be external, and a competent internal team testing something they did not build satisfies the independence question for many auditors. What it does not satisfy is a customer questionnaire, which usually asks specifically for third-party testing, and that is often the real driver rather than the certification.
If budget forces a choice, a defensible pattern is internal testing at the cadence your change rate demands, plus an external test annually or on major release, with the scope of the external one covering what your customers most care about. Write that arrangement into your control description and you are audited against what you actually do.
What a certificate is not
Neither standard certifies that your application is free of vulnerabilities, and no honest tester will tell you a test proves that either. Both certify that you have a system for managing risk and that it operates. A penetration test is evidence within that system, not a substitute for it.
That distinction matters commercially as well. A customer asking for your ISO certificate and your latest test report is asking two different questions, and the second one is the one that tells them something about the software they are about to depend on. Where the full report cannot be shared, an attestation letter an auditor will accept answers the second question safely.
For a delivered engagement, an attestation letter comes from a template with a named signatory, so a client can give their auditor a statement of what was tested and when without releasing the full technical report. Each phase carries its own scope, each finding its retest status, and the report includes a retest summary, so "what happened next" is answerable from the engagement itself. Clients track remediation and request retests in your own portal. See how engagements, retests and attestation letters fit together.
Common Questions
- Does ISO 27001 require a penetration test?
- Not by name. The standard requires that you manage technical vulnerabilities and can show your controls work, and for an internet-facing application a penetration test is the practical way to evidence that. Auditors usually ask how you assure yourselves the application is secure rather than asking for a report.
- Does SOC 2 require a penetration test?
- SOC 2 audits the controls you described. If your own control set says you carry out annual penetration testing by an independent third party, you have made it mandatory for yourself and failing to do it is an exception. Many organisations write that sentence before checking they can afford it.
- What do auditors actually look at?
- The scope, and whether it matches the certified boundary. The independence of the tester. The date, relative to the audit period and the last significant change. And above all, what happened next. A report with eight high findings and no evidence that any were fixed is worse than no report, because it documents that you knew.
- How often should you penetration test for ISO 27001?
- Neither ISO 27001 nor SOC 2 sets a frequency. Annual is a convention borrowed from PCI DSS, which does prescribe one. A risk-based position is easier to defend: test after significant change, and at a cadence that matches how fast the system changes. Write whichever you choose into your own control description, because that is what you will be audited against.
Keep Reading
Vulnerability Scan or Penetration Test: Which One You Actually Need
Vulnerability scan or penetration test: sold interchangeably, they answer different questions. What each finds, what neither finds, and which you were sold.
Delivering Pentest Reports Without Emailing PDFs
Delivering pentest reports without emailing PDFs: what goes wrong with attachments, what clients now ask for, and what a delivery portal has to get right.
What a Penetration Test Costs, and What Actually Changes the Number
What a penetration test costs in the UK: how quotes break down into days and a rate, what moves the day count, and how to tell a cheap quote from a small one.
Setup guide
See the product set up, end to end
The whole setup in 12:10, with chapters you can jump to: registering, your own domain, your own database in any of three places, your own mail server, branding, the first sign-in, updating the database on Supabase Cloud, and moving the database if you change your mind.
- 0:00 · Registering, signing in, and the free trial
- 0:51 · Your name and your firm’s name
- 0:57 · Custom domain
- +6 more