Run a structured internal audit against ISO 27001:2022. This skill walks you through scoping, control assessment, evidence collection, and findings generation — following the same workflow a certified auditor uses.
Activate this skill when:
Do NOT use for:
iso-27001-evidence-collection for evidence gathering firstsoc2-readiness insteadISO 27001:2022 has 93 Annex A controls across 4 domains, plus ISMS clauses 4-10 (30 sub-clauses). This skill covers 48 priority Annex A controls (of 93 total) — the most critical per domain for cloud-native startups. Remaining controls are lower-tier or typically N/A for cloud-native organizations.
DomainControlsFocusA.5 Organizational37Policies, roles, incident management, supplier relationsA.6 People8Screening, training, termination, confidentialityA.7 Physical14Facility security, equipment, media — mostly N/A for cloud startupsA.8 Technological34Access control, crypto, logging, SDLC, network securityClauses 4-1030ISMS management system (context, leadership, planning, support, operation, performance, improvement)
text
Is the organization cloud-native (no owned data centers)?
├── YES → Mark A.7.1-A.7.9, A.7.11-A.7.13 as "satisfied by cloud provider SOC 2"
│ Focus evidence on: laptops, home offices, mobile devices
├── NO → Full A.7 assessment required
│
Does the organization develop software?
├── YES → A.8.25-A.8.34 (SDLC controls) are in scope
├── NO → A.8.25-A.8.34 can be scoped out with justification
│
Does the organization handle PII?
├── YES → A.5.34 (privacy) is critical, cross-reference with GDPR/CCPA
├── NO → A.5.34 is checkbox tier
Not all 93 controls fail equally. Prioritize by audit failure frequency:
TierCountTreatmentCritical~30Full assessment: evidence, interviews, observationRelevant~30Standard check: evidence review, spot-checkCheckbox~33Verify policy exists or cloud provider covers it
For detailed per-control guidance, load rules/<domain>.md.
text
# If Internal ISO Audit MCP server is available:
list_controls() # Get all controls with tier classifications
get_control_guidance(control_id="Clause 9.2") # Check specific ISMS clause requirements
# If reading local files:
# Check compliance/status/last_refresh.yaml for staleness
Most startups fail here — they treat ISMS as documentation, not a functioning management system.
Auditor hint: Auditors look for a CONNECTED chain — risk assessment → SoA → risk treatment plan → evidence of implementation → monitoring → management review → improvement. Any break in the chain is a nonconformity.
Work through controls by domain, prioritizing Critical tier:
text
# If Internal ISO Audit MCP server is available:
list_controls(domain="organizational") # List all controls in a domain with tiers
get_control_guidance(control_id="A.5.15") # Full guidance: auditor hints, pitfalls, evidence
search_guidance(query="access review", domain="organizational") # Find related controls by keyword
get_nist_mapping(control_id="A.5.15") # Cross-reference to NIST SP 800-53
For each finding, collect supporting evidence:
Evidence naming convention: {control_id}_{evidence_type}_{date}.{ext}
Example: A.5.15_user-access-list_2026-02-28.json
For detailed collection commands, load rules/ files or use the iso-27001-evidence-collection skill.
For each nonconformity:
markdown
## Finding: [Short title]
- **Control**: A.x.x
- **NIST Reference**: [NIST control ID]
- **Severity**: Major / Minor / Observation
- **Description**: [What was found]
- **Evidence**: [What evidence supports the finding]
- **Root Cause**: [Why the control failed]
- **Corrective Action**: [Specific remediation steps]
- **Due Date**: [Agreed timeline]
- **Owner**: [Person responsible]
Severity definitions:
Generate a structured audit report:
#ControlCommon FailureFix1A.5.15No periodic access reviewSchedule quarterly reviews, export user lists2A.8.8No vulnerability scanningDeploy Dependabot/Snyk, schedule infra scans3A.5.24Incident response plan untestedRun tabletop exercise, document results4A.8.5MFA not enforced everywhereEnable MFA on all production + admin accounts5A.5.30No business continuity testRun DR failover test, document RTO/RPO results6A.8.15Audit logs not centralizedShip logs to SIEM/CloudWatch/Stackdriver7A.8.9No baseline configurationDocument server/container base images8A.6.1Background checks incompleteVerify all employees have completed screening9A.8.32No change management processRequire PR reviews, document deployment process10A.5.9Asset inventory incompleteExport from cloud provider + endpoint management
screencapture -x ~/evidence/{filename}.png on macOS when screenshots are necessaryProblemSolutionData is stale (> 7 days old)Refresh from monitoring dashboard or re-export from source systemsCan't determine which controls applyStart with the SoA; if no SoA exists, use the decision tree aboveToo many findings to address before auditPrioritize: fix all Major nonconformities first, then Critical-tier MinorsEvidence timestamps don't match audit periodRe-collect evidence within the audit window (typically 12 months)Cloud provider controls not documentedRequest SOC 2 Type II report from provider; map their controls to your SoAInternal audit has never been doneThis IS the first internal audit — document that in the report and plan for regular cadence
For detailed per-control guidance, load the appropriate rules file:
FileCoveragerules/access-control.mdA.5.15-A.5.18, A.8.2-A.8.5 — identity, authentication, authorizationrules/incident-response.mdA.5.24-A.5.29, A.6.8 — incident lifecyclerules/encryption.mdA.8.24, A.8.10-A.8.12 — cryptographic controlsrules/change-management.mdA.8.25-A.8.34, A.8.9, A.8.32 — SDLC and configurationrules/logging-monitoring.mdA.8.15-A.8.17 — audit trails and monitoringrules/business-continuity.mdA.5.30, A.8.13-A.8.14 — backup, DR, BCPrules/people-controls.mdA.6.1-A.6.8 — HR security lifecyclerules/supplier-management.mdA.5.19-A.5.23 — third-party riskrules/isms-management.mdClauses 4-10 — management system operation
Audit procedures and control guidance developed with Internal ISO Audit (Hazel Castro, ISO 27001 Lead Auditor, 14+ years, 100+ audits).
This skill operates in three modes, detected automatically:
internalisoaudit MCP server configured in clientget_control_guidance, list_controls, get_nist_mapping, search_guidanceinternalisoaudit.com/api/mcpcompliance/ directory directly
compliance/status/last_refresh.yaml existsrules/ files, no live data
For Internal ISO Audit MCP server setup, see CONNECTORS.md.