All posts
Penetration Testing & Validation8 min readSep 6, 2026

60 to 90 Day Window: Penetration Testing Checklist for SOC 2 & ISO 27001

Ashish / CEO/Co-Founder
60 to 90 Day Window: Penetration Testing Checklist for SOC 2 & ISO 27001

60 to 90 Day Window: Penetration Testing Checklist for SOC 2 & ISO 27001

For audit-grade evidence, a penetration test must deliver a dated engagement letter, a reconciled scope, a standards-referenced methodology, severity-rated findings with proof-of-exploit, and a retest attestation. All testing, remediation, and retesting must fall inside the audit observation period. Tester independence and a missing retest attestation are the two most common reasons auditors send evidence back.


TL;DR:

  • Reconciling your system inventory with your scope is critical, as scope creep and mismatched assets frequently cause audit rejections.
  • The evidence package must include detailed artifacts such as proof-of-exploit, remediation tickets, retest attestations, and a clear mapping to compliance controls for audit acceptance.
  • Testing should be scheduled 60 to 90 days before the audit window to allow time for remediation, retesting, and addressing scope gaps.
  • A comprehensive remediation log with specific tickets, owners, fix dates, and verification proof is essential for closing findings convincingly.
  • Using automated tools that preserve raw evidence, timestamps, and support retest attestations can significantly reduce preparation time and prevent submission rejections.

What Belongs on Your Pre-Engagement Penetration Testing Checklist?

A statement of work written without compliance in mind produces a report your auditor cannot use. The fix happens before the tester ever touches your network, in the pre-engagement documents your organization controls.

Start by reconciling your system inventory with your formal system description. Every application, API, and infrastructure segment named in your SOC 2 or ISO 27001 scope needs to appear in the pentest scope, and vice versa. Scope creep is the single largest cause of audit findings — a mismatch between what the auditor expects tested and what actually got tested is one of the fastest ways to lose an evidence package.

Before signing a statement of work, your checklist should require:

  • Reconciled system inventory — every app, API, and infrastructure segment mapped against your system description, with no orphaned assets.
  • Architecture diagrams tied to the specific compliance criteria each system supports, so the auditor sees the connection without guessing.
  • Explicit scope boundaries — in-scope and out-of-scope assets, test windows, credential handling, and a documented change-freeze calendar during testing.
  • Rules of engagement and legal authorization, including who owns post-test cleanup and how test credentials get revoked afterward.
  • Manual testing hours specified in the SOW, not just automated scanning, plus authenticated testing across every user role you rely on.
  • Multi-tenant isolation checks if your platform serves multiple customers from shared infrastructure.

That manual-hours requirement matters more than most procurement checklists admit. SOC 2 preparation guidance recommends requiring manual testing hours explicitly in the SOW and confirming the test environment has production parity, since a staging environment that diverges from production invalidates the exercise for audit purposes. If your vendor quotes a flat fee with no manual-hours line item, ask what that number actually buys you. A documented methodology referencing OWASP or PTES belongs in the contract language itself, not just the final report.

What Should the Pentest Report and Evidence Package Include?

The report is not the deliverable. The evidence package is. Auditors examine artifacts, not narrative, and a beautifully written report with no supporting proof gets rejected on the same afternoon it arrives.

At minimum, the report itself needs these components in order:

  1. Executive summary stating business risk in plain terms, written for someone who did not read the technical appendix.
  2. Scope and methodology, referencing the specific standard applied (OWASP Testing Guide, PTES, or NIST SP 800-115).
  3. Testing narrative and limitations, including what was excluded and why.
  4. Tools used, listed by name and version where relevant.
  5. Findings with severity ratings, scored using CVSS, alongside proof-of-exploit artifacts, not just descriptions.
  6. Business impact statements tied to each finding, mapped to the systems affected.
  7. Remediation recommendations, specific enough that an engineer can act on them without a follow-up call.

Beyond the report itself, auditors expect a complete evidence package: a dated engagement letter and SOW, a tester independence statement with credentials attached, raw proof-of-exploit artifacts (screenshots, logs, request/response captures), remediation tickets with commit references, and a signed retest confirmation.

Pro Tip: Build your findings register as a living table that links each finding to its ticket, owner, closure date, retest result, and control mapping. Auditors spend less time reconciling your evidence when the connections are already drawn.

Store everything in a central repository with timestamps and access logs, and use immutable storage or checksums where your tooling supports it. An auditor who has to ask where a screenshot came from is an auditor who is about to slow your certification timeline down.

When Should You Schedule Testing to Avoid Audit Rejections?

Timing kills more evidence packages than technical quality does. Testing must occur inside the auditor's observation window for a Type II report — a flawless pentest run one week before the window opened counts for nothing.

The practical rule: schedule the test roughly 60 to 90 days before fieldwork begins, which usually lands around months four or five of a twelve-month observation period. That gap leaves room for:

  • Remediation of any critical or high findings discovered during testing.
  • A formal retest to confirm the fixes hold.
  • Buffer time if the retest surfaces a second round of issues.

Reconcile your scope document against your system description before the kickoff call, not after the report lands, since gaps between the two are what generate audit findings in the first place.

Governance matters as much as scheduling. Require stakeholder sign-off before testing starts, name a technical point of contact who can be reached during the engagement, and document an emergency-stop procedure alongside your change-freeze calendar. If your environment changes frequently, continuous testing or penetration-testing-as-a-service can keep evidence current between formal audit windows, though it does not replace a dedicated observation-period engagement.

How Do You Track Remediation and Prove a Retest Happened?

A finding with no closing evidence is a finding an auditor treats as still open. The remediation log is where most first-time submissions fall apart.

Each remediation entry needs a ticket ID, an assigned owner, a fix date, a commit or deployment reference, and the verification steps taken to confirm the fix worked. Without that trail, you are asking the auditor to take your word for it, and auditors do not do that.

The retest attestation is a separate document, not a footnote in the original report. A missing retest attestation is among the most common reasons SOC 2 evidence packages get rejected on first submission. Format it with:

  • The original finding ID it verifies.
  • The retest date and the environment tested.
  • The name and credentials of the tester who performed the verification.
  • A per-finding result: confirmed fixed, partially remediated, or still open.

When you triage findings for the auditor pack, prioritize business-impact mapping over raw CVSS scores. A medium-severity finding on a system holding customer payment data often matters more to an auditor than a high-severity finding on an isolated internal tool. The three failures that recur most often are a missing retest attestation, a scope mismatch between the pentest and the system description, and test credentials that expired before verification finished. Catch these before submission, not after the auditor flags them.

How Do You Map Pentest Findings to Compliance Controls?

A finding sitting alone in a report tells the auditor nothing about which control it threatens. Mapping does that work for them, and doing it yourself saves days of back-and-forth.

A SQL injection finding on a customer-facing API, for example, typically maps to SOC 2 CC6 (logical access controls) and CC7 (system operations monitoring), or to ISO 27001 Annex A controls covering secure development and vulnerability management. Compliance-ready reports need this mapping built in, because without it the auditor has to do the interpretation, and that interpretation often lands against you.

Build a reconciliation table with these columns before you submit anything:

  • Finding ID
  • Affected asset
  • Control mapped (SOC 2, ISO 27001, or PCI reference)
  • Remediation ticket ID
  • Retest result
Auditor pack itemConfirms
Engagement letter and SOWLegitimate, authorized, dated engagement
Scope documentReconciled against system description
Methodology referenceOWASP, PTES, or NIST alignment
Final reportFindings, CVSS, proof-of-exploit, business impact
Remediation registerTicket, owner, fix date, commit reference
Retest attestationPer-finding verification and tester credentials
Tester qualificationsIndependence and certification (OSCP, CREST, PenTest+)

Before you send the package to the assessor, run a quick sanity check: does every finding have a ticket, does every ticket have a retest result, and does every retest carry a tester name and date? If any answer is no, you are not ready to submit, and reviewing your SOC 2 controls against the pack one more time is cheaper than a rejected submission.

How Ciphrix Turns Pentest Results Into an Audit-Ready Pack

Assembling this checklist by hand, across spreadsheets, ticket systems, and shared drives, is where most compliance teams lose weeks they don't have. Ciphrix's AI agents pull remediation tickets, commit references, and retest results into a single evidence repository automatically, then map each finding directly to the SOC 2, ISO 27001, or PCI controls it affects, so the reconciliation table above builds itself instead of consuming a week of manual cross-referencing.

Teams using Ciphrix's AI compliance agents typically move from raw pentest report to submission-ready pack faster because the platform preserves timestamps, access logs, and the raw proof-of-exploit artifacts auditors expect to see intact. When you evaluate any automation provider for this work, confirm it preserves raw evidence with timestamps and supports a formal retest attestation. It should also pair cleanly with an accredited third-party testing firm rather than try to replace one. For teams preparing multiple framework certifications at once, Ciphrix's compliance platform is worth a look before your next audit window opens.

Sources

Get started

Ready to see Ciphrix in action?

Built by AWS Security Leaders | AWS Partner | Certified companies across 3 continents