ISO 27001 Internal Audit
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.
Security Model
- No scripts executed — this skill is markdown-only procedural guidance
- No secrets required — works with public reference data
- IP-clean — all control descriptions are original writing referencing NIST SP 800-53 (public domain). ISO 27001:2022 controls are referenced by section ID only (e.g., "A.5.15"), never by copyrighted title or description
- Evidence stays local — all evidence collection commands output to local filesystem
When to Use
Activate this skill when:
- Preparing for a surveillance or certification audit — run 4-6 weeks before the external audit
- Performing quarterly internal audit — ISO 27001 requires at least annual internal audits; quarterly is best practice
- Post-incident review — assess whether controls failed and what corrective actions are needed
- New framework adoption — map existing controls to ISO 27001 requirements
- Onboarding a new compliance tool — validate that automated checks cover the right controls
Do NOT use for:
- Generating the ISO 27001 Statement of Applicability (SoA) from scratch — use
iso-27001-evidence-collection for evidence gathering first
- SOC 2-only audits — use
soc2-readiness instead
- Reading or interpreting a specific contract clause — use legal agreement skills
Core Concepts
Control Domains (ISO 27001:2022 Annex A)
ISO 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.
| Domain |
Controls |
Focus |
| A.5 Organizational |
37 |
Policies, roles, incident management, supplier relations |
| A.6 People |
8 |
Screening, training, termination, confidentiality |
| A.7 Physical |
14 |
Facility security, equipment, media — mostly N/A for cloud startups |
| A.8 Technological |
34 |
Access control, crypto, logging, SDLC, network security |
| Clauses 4-10 |
30 |
ISMS management system (context, leadership, planning, support, operation, performance, improvement) |
Decision Tree: Startup Scoping
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
Control Tiering
Not all 93 controls fail equally. Prioritize by audit failure frequency:
| Tier |
Count |
Treatment |
| Critical |
~30 |
Full assessment: evidence, interviews, observation |
| Relevant |
~30 |
Standard check: evidence review, spot-check |
| Checkbox |
~33 |
Verify policy exists or cloud provider covers it |
For detailed per-control guidance, load rules/<domain>.md.
Step-by-Step Workflow
Step 1: Scope and Context
- Identify the ISMS scope — What systems, processes, locations, and people are in scope?
- Gather the Statement of Applicability (SoA) — Which of the 93 Annex A controls apply?
- Review previous audit findings — What was flagged last time? Are corrective actions closed?
- Check data freshness — If using a monitoring dashboard or automated testing system, verify data is < 7 days old
# 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
Step 2: ISMS Clause Assessment (Clauses 4-10)
Most startups fail here — they treat ISMS as documentation, not a functioning management system.
- Clause 5 (Leadership) — Is there a signed security policy? Who is the ISMS owner? Is there evidence of management review?
- Clause 6 (Planning) — Is there a risk assessment? Is it current (< 12 months)? Does it reference the SoA?
- Clause 7 (Support) — Is there a competence matrix? Are training records current?
- Clause 8 (Operation) — Is the risk treatment plan being executed?
- Clause 9 (Performance) — Are there metrics? Has an internal audit been done? Is there a management review record?
- Clause 10 (Improvement) — Are nonconformities tracked? Are corrective actions implemented?
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.
Step 3: Annex A Control Assessment
Work through controls by domain, prioritizing Critical tier:
For each Critical control:
- Check: Is there a documented policy/procedure?
- Check: Is there evidence of implementation?
- Check: Is there evidence of monitoring/review?
- Record finding: Conformity / Minor nonconformity / Major nonconformity / Observation
For each Relevant control:
- Check: Is there evidence of implementation?
- Spot-check one or two items
- Record finding
For each Checkbox control:
- Verify policy exists or cloud provider SOC 2 covers it
- Record as conforming or note exception
# 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
Step 4: Evidence Collection
For each finding, collect supporting evidence:
- API exports (preferred) — timestamped JSON/CSV from source systems
- Screenshots (when API unavailable) — must include visible system clock
- Interview notes — summarize who said what, when
- Document review — note document name, version, date reviewed
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.
Step 5: Generate Findings
For each nonconformity:
## 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:
- Major nonconformity: Control is missing or completely ineffective. Audit failure risk.
- Minor nonconformity: Control exists but has gaps. Must fix before next surveillance audit.
- Observation: Potential improvement. Not required but recommended.
Step 6: Audit Report
Generate a structured audit report:
- Executive summary — overall ISMS maturity, key findings, recommendation
- Scope — what was audited, what was excluded
- Methodology — controls assessed, evidence reviewed, people interviewed
- Findings — grouped by domain, with severity and corrective actions
- Positive observations — what's working well (auditors do note these)
- Conclusion — readiness for external audit, recommended timeline
Quick Reference: Top 10 Controls That Fail Most Often
| # |
Control |
Common Failure |
Fix |
| 1 |
A.5.15 |
No periodic access review |
Schedule quarterly reviews, export user lists |
| 2 |
A.8.8 |
No vulnerability scanning |
Deploy Dependabot/Snyk, schedule infra scans |
| 3 |
A.5.24 |
Incident response plan untested |
Run tabletop exercise, document results |
| 4 |
A.8.5 |
MFA not enforced everywhere |
Enable MFA on all production + admin accounts |
| 5 |
A.5.30 |
No business continuity test |
Run DR failover test, document RTO/RPO results |
| 6 |
A.8.15 |
Audit logs not centralized |
Ship logs to SIEM/CloudWatch/Stackdriver |
| 7 |
A.8.9 |
No baseline configuration |
Document server/container base images |
| 8 |
A.6.1 |
Background checks incomplete |
Verify all employees have completed screening |
| 9 |
A.8.32 |
No change management process |
Require PR reviews, document deployment process |
| 10 |
A.5.9 |
Asset inventory incomplete |
Export from cloud provider + endpoint management |
DO / DON'T
DO
- Collect evidence via API exports with ISO 8601 timestamps — always preferred over screenshots
- Test controls, don't just review documentation — auditors check implementation, not just policies
- Interview people at different levels — manager says one thing, engineer may say another
- Document positive findings — shows the audit is balanced and thorough
- Keep the SoA aligned with actual controls — gaps between SoA and implementation are major findings
- Use
screencapture -x ~/evidence/{filename}.png on macOS when screenshots are necessary
DON'T
- Screenshot portals without visible system clock — auditors will reject undated evidence
- Accept "we have a policy" without checking implementation — "show me" > "tell me"
- Audit your own work — independence requirement (Clause 9.2) means auditors can't audit their own area
- Treat checkbox controls as zero-effort — even N/A controls need justification in the SoA
- Skip ISMS clauses to focus only on Annex A — most first-time failures are in clauses 4-10
Troubleshooting
| Problem |
Solution |
| Data is stale (> 7 days old) |
Refresh from monitoring dashboard or re-export from source systems |
| Can't determine which controls apply |
Start with the SoA; if no SoA exists, use the decision tree above |
| Too many findings to address before audit |
Prioritize: fix all Major nonconformities first, then Critical-tier Minors |
| Evidence timestamps don't match audit period |
Re-collect evidence within the audit window (typically 12 months) |
| Cloud provider controls not documented |
Request SOC 2 Type II report from provider; map their controls to your SoA |
| Internal audit has never been done |
This IS the first internal audit — document that in the report and plan for regular cadence |
Rules
For detailed per-control guidance, load the appropriate rules file:
| File |
Coverage |
rules/access-control.md |
A.5.15-A.5.18, A.8.2-A.8.5 — identity, authentication, authorization |
rules/incident-response.md |
A.5.24-A.5.29, A.6.8 — incident lifecycle |
rules/encryption.md |
A.8.24, A.8.10-A.8.12 — cryptographic controls |
rules/change-management.md |
A.8.25-A.8.34, A.8.9, A.8.32 — SDLC and configuration |
rules/logging-monitoring.md |
A.8.15-A.8.17 — audit trails and monitoring |
rules/business-continuity.md |
A.5.30, A.8.13-A.8.14 — backup, DR, BCP |
rules/people-controls.md |
A.6.1-A.6.8 — HR security lifecycle |
rules/supplier-management.md |
A.5.19-A.5.23 — third-party risk |
rules/isms-management.md |
Clauses 4-10 — management system operation |
Attribution
Audit procedures and control guidance developed with Internal ISO Audit (Hazel Castro, ISO 27001 Lead Auditor, 14+ years, 100+ audits).
Runtime Detection
This skill operates in three modes, detected automatically:
Internal ISO Audit MCP server available (best) — Live control guidance lookup with auditor hints, NIST cross-references, and full-text search
- Detected by:
internalisoaudit MCP server configured in client
- Tools:
get_control_guidance, list_controls, get_nist_mapping, search_guidance
- Server:
internalisoaudit.com/api/mcp
Local compliance data available (good) — Reads compliance/ directory directly
- Detected by:
compliance/status/last_refresh.yaml exists
- Benefits: Historical test data, evidence status, control mappings
Reference only (baseline) — Uses embedded rules/ files, no live data
- Always available
- Benefits: Procedural guidance, control descriptions, evidence checklists
- Limitation: No organization-specific status data
Connectors
For Internal ISO Audit MCP server setup, see CONNECTORS.md.
1---2name: iso-27001-internal-audit3description: Run an ISO 27001 internal audit. Walk through controls by domain, identify gaps, collect evidence, and generate findings with corrective action recommendations. Uses NIST SP 800-53 (public domain) as canonical reference. Use when user says "run internal audit," "ISO 27001 audit," "control assessment," "audit findings," or "ISMS assessment."4license: MIT5---6
7# ISO 27001 Internal Audit
8
9Run 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.
10
11## Security Model
12
13- **No scripts executed** — this skill is markdown-only procedural guidance
14- **No secrets required** — works with public reference data
15- **IP-clean** — all control descriptions are original writing referencing NIST SP 800-53 (public domain). ISO 27001:2022 controls are referenced by section ID only (e.g., "A.5.15"), never by copyrighted title or description
16- **Evidence stays local** — all evidence collection commands output to local filesystem
17
18## When to Use
19
20Activate this skill when:
21
221. **Preparing for a surveillance or certification audit** — run 4-6 weeks before the external audit
232. **Performing quarterly internal audit** — ISO 27001 requires at least annual internal audits; quarterly is best practice
243. **Post-incident review** — assess whether controls failed and what corrective actions are needed
254. **New framework adoption** — map existing controls to ISO 27001 requirements
265. **Onboarding a new compliance tool** — validate that automated checks cover the right controls
27
28Do NOT use for:
29- Generating the ISO 27001 Statement of Applicability (SoA) from scratch — use `iso-27001-evidence-collection` for evidence gathering first
30- SOC 2-only audits — use `soc2-readiness` instead
31- Reading or interpreting a specific contract clause — use legal agreement skills
32
33## Core Concepts
34
35### Control Domains (ISO 27001:2022 Annex A)
36
37ISO 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.
38
39| Domain | Controls | Focus |
40|--------|----------|-------|
41| A.5 Organizational | 37 | Policies, roles, incident management, supplier relations |
42| A.6 People | 8 | Screening, training, termination, confidentiality |
43| A.7 Physical | 14 | Facility security, equipment, media — mostly N/A for cloud startups |
44| A.8 Technological | 34 | Access control, crypto, logging, SDLC, network security |
45| Clauses 4-10 | 30 | ISMS management system (context, leadership, planning, support, operation, performance, improvement) |
46
47### Decision Tree: Startup Scoping
48
49```
50Is the organization cloud-native (no owned data centers)?
51├── YES → Mark A.7.1-A.7.9, A.7.11-A.7.13 as "satisfied by cloud provider SOC 2"
52│ Focus evidence on: laptops, home offices, mobile devices
53├── NO → Full A.7 assessment required
54│
55Does the organization develop software?
56├── YES → A.8.25-A.8.34 (SDLC controls) are in scope
57├── NO → A.8.25-A.8.34 can be scoped out with justification
58│
59Does the organization handle PII?
60├── YES → A.5.34 (privacy) is critical, cross-reference with GDPR/CCPA
61├── NO → A.5.34 is checkbox tier
62```
63
64### Control Tiering
65
66Not all 93 controls fail equally. Prioritize by audit failure frequency:
67
68| Tier | Count | Treatment |
69|------|-------|-----------|
70| **Critical** | ~30 | Full assessment: evidence, interviews, observation |
71| **Relevant** | ~30 | Standard check: evidence review, spot-check |
72| **Checkbox** | ~33 | Verify policy exists or cloud provider covers it |
73
74For detailed per-control guidance, load `rules/<domain>.md`.
75
76## Step-by-Step Workflow
77
78### Step 1: Scope and Context
79
801. **Identify the ISMS scope** — What systems, processes, locations, and people are in scope?
812. **Gather the Statement of Applicability (SoA)** — Which of the 93 Annex A controls apply?
823. **Review previous audit findings** — What was flagged last time? Are corrective actions closed?
834. **Check data freshness** — If using a monitoring dashboard or automated testing system, verify data is < 7 days old
84
85```
86# If Internal ISO Audit MCP server is available:
87list_controls() # Get all controls with tier classifications
88get_control_guidance(control_id="Clause 9.2") # Check specific ISMS clause requirements
89
90# If reading local files:
91# Check compliance/status/last_refresh.yaml for staleness
92```
93
94### Step 2: ISMS Clause Assessment (Clauses 4-10)
95
96Most startups fail here — they treat ISMS as documentation, not a functioning management system.
97
981. **Clause 5 (Leadership)** — Is there a signed security policy? Who is the ISMS owner? Is there evidence of management review?
992. **Clause 6 (Planning)** — Is there a risk assessment? Is it current (< 12 months)? Does it reference the SoA?
1003. **Clause 7 (Support)** — Is there a competence matrix? Are training records current?
1014. **Clause 8 (Operation)** — Is the risk treatment plan being executed?
1025. **Clause 9 (Performance)** — Are there metrics? Has an internal audit been done? Is there a management review record?
1036. **Clause 10 (Improvement)** — Are nonconformities tracked? Are corrective actions implemented?
104
105**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.
106
107### Step 3: Annex A Control Assessment
108
109Work through controls by domain, prioritizing Critical tier:
110
1111. **For each Critical control**:
112 - Check: Is there a documented policy/procedure?
113 - Check: Is there evidence of implementation?
114 - Check: Is there evidence of monitoring/review?
115 - Record finding: Conformity / Minor nonconformity / Major nonconformity / Observation
116
1172. **For each Relevant control**:
118 - Check: Is there evidence of implementation?
119 - Spot-check one or two items
120 - Record finding
121
1223. **For each Checkbox control**:
123 - Verify policy exists or cloud provider SOC 2 covers it
124 - Record as conforming or note exception
125
126```
127# If Internal ISO Audit MCP server is available:
128list_controls(domain="organizational") # List all controls in a domain with tiers
129get_control_guidance(control_id="A.5.15") # Full guidance: auditor hints, pitfalls, evidence
130search_guidance(query="access review", domain="organizational") # Find related controls by keyword
131get_nist_mapping(control_id="A.5.15") # Cross-reference to NIST SP 800-53
132```
133
134### Step 4: Evidence Collection
135
136For each finding, collect supporting evidence:
137
1381. **API exports** (preferred) — timestamped JSON/CSV from source systems
1392. **Screenshots** (when API unavailable) — must include visible system clock
1403. **Interview notes** — summarize who said what, when
1414. **Document review** — note document name, version, date reviewed
142
143**Evidence naming convention**: `{control_id}_{evidence_type}_{date}.{ext}`
144Example: `A.5.15_user-access-list_2026-02-28.json`
145
146For detailed collection commands, load `rules/` files or use the `iso-27001-evidence-collection` skill.
147
148### Step 5: Generate Findings
149
150For each nonconformity:
151
152```markdown
153## Finding: [Short title]
154
155- **Control**: A.x.x
156- **NIST Reference**: [NIST control ID]
157- **Severity**: Major / Minor / Observation
158- **Description**: [What was found]
159- **Evidence**: [What evidence supports the finding]
160- **Root Cause**: [Why the control failed]
161- **Corrective Action**: [Specific remediation steps]
162- **Due Date**: [Agreed timeline]
163- **Owner**: [Person responsible]
164```
165
166**Severity definitions**:
167- **Major nonconformity**: Control is missing or completely ineffective. Audit failure risk.
168- **Minor nonconformity**: Control exists but has gaps. Must fix before next surveillance audit.
169- **Observation**: Potential improvement. Not required but recommended.
170
171### Step 6: Audit Report
172
173Generate a structured audit report:
174
1751. **Executive summary** — overall ISMS maturity, key findings, recommendation
1762. **Scope** — what was audited, what was excluded
1773. **Methodology** — controls assessed, evidence reviewed, people interviewed
1784. **Findings** — grouped by domain, with severity and corrective actions
1795. **Positive observations** — what's working well (auditors do note these)
1806. **Conclusion** — readiness for external audit, recommended timeline
181
182## Quick Reference: Top 10 Controls That Fail Most Often
183
184| # | Control | Common Failure | Fix |
185|---|---------|---------------|-----|
186| 1 | A.5.15 | No periodic access review | Schedule quarterly reviews, export user lists |
187| 2 | A.8.8 | No vulnerability scanning | Deploy Dependabot/Snyk, schedule infra scans |
188| 3 | A.5.24 | Incident response plan untested | Run tabletop exercise, document results |
189| 4 | A.8.5 | MFA not enforced everywhere | Enable MFA on all production + admin accounts |
190| 5 | A.5.30 | No business continuity test | Run DR failover test, document RTO/RPO results |
191| 6 | A.8.15 | Audit logs not centralized | Ship logs to SIEM/CloudWatch/Stackdriver |
192| 7 | A.8.9 | No baseline configuration | Document server/container base images |
193| 8 | A.6.1 | Background checks incomplete | Verify all employees have completed screening |
194| 9 | A.8.32 | No change management process | Require PR reviews, document deployment process |
195| 10 | A.5.9 | Asset inventory incomplete | Export from cloud provider + endpoint management |
196
197## DO / DON'T
198
199### DO
200- Collect evidence via API exports with ISO 8601 timestamps — always preferred over screenshots
201- Test controls, don't just review documentation — auditors check implementation, not just policies
202- Interview people at different levels — manager says one thing, engineer may say another
203- Document positive findings — shows the audit is balanced and thorough
204- Keep the SoA aligned with actual controls — gaps between SoA and implementation are major findings
205- Use `screencapture -x ~/evidence/{filename}.png` on macOS when screenshots are necessary
206
207### DON'T
208- Screenshot portals without visible system clock — auditors will reject undated evidence
209- Accept "we have a policy" without checking implementation — "show me" > "tell me"
210- Audit your own work — independence requirement (Clause 9.2) means auditors can't audit their own area
211- Treat checkbox controls as zero-effort — even N/A controls need justification in the SoA
212- Skip ISMS clauses to focus only on Annex A — most first-time failures are in clauses 4-10
213
214## Troubleshooting
215
216| Problem | Solution |
217|---------|----------|
218| Data is stale (> 7 days old) | Refresh from monitoring dashboard or re-export from source systems |
219| Can't determine which controls apply | Start with the SoA; if no SoA exists, use the decision tree above |
220| Too many findings to address before audit | Prioritize: fix all Major nonconformities first, then Critical-tier Minors |
221| Evidence timestamps don't match audit period | Re-collect evidence within the audit window (typically 12 months) |
222| Cloud provider controls not documented | Request SOC 2 Type II report from provider; map their controls to your SoA |
223| Internal audit has never been done | This IS the first internal audit — document that in the report and plan for regular cadence |
224
225## Rules
226
227For detailed per-control guidance, load the appropriate rules file:
228
229| File | Coverage |
230|------|----------|
231| `rules/access-control.md` | A.5.15-A.5.18, A.8.2-A.8.5 — identity, authentication, authorization |
232| `rules/incident-response.md` | A.5.24-A.5.29, A.6.8 — incident lifecycle |
233| `rules/encryption.md` | A.8.24, A.8.10-A.8.12 — cryptographic controls |
234| `rules/change-management.md` | A.8.25-A.8.34, A.8.9, A.8.32 — SDLC and configuration |
235| `rules/logging-monitoring.md` | A.8.15-A.8.17 — audit trails and monitoring |
236| `rules/business-continuity.md` | A.5.30, A.8.13-A.8.14 — backup, DR, BCP |
237| `rules/people-controls.md` | A.6.1-A.6.8 — HR security lifecycle |
238| `rules/supplier-management.md` | A.5.19-A.5.23 — third-party risk |
239| `rules/isms-management.md` | Clauses 4-10 — management system operation |
240
241## Attribution
242
243Audit procedures and control guidance developed with [Internal ISO Audit](https://internalisoaudit.com) (Hazel Castro, ISO 27001 Lead Auditor, 14+ years, 100+ audits).
244
245## Runtime Detection
246
247This skill operates in three modes, detected automatically:
248
2491. **Internal ISO Audit MCP server available** (best) — Live control guidance lookup with auditor hints, NIST cross-references, and full-text search
250 - Detected by: `internalisoaudit` MCP server configured in client
251 - Tools: `get_control_guidance`, `list_controls`, `get_nist_mapping`, `search_guidance`
252 - Server: `internalisoaudit.com/api/mcp`
253
2542. **Local compliance data available** (good) — Reads `compliance/` directory directly
255 - Detected by: `compliance/status/last_refresh.yaml` exists
256 - Benefits: Historical test data, evidence status, control mappings
257
2583. **Reference only** (baseline) — Uses embedded `rules/` files, no live data
259 - Always available
260 - Benefits: Procedural guidance, control descriptions, evidence checklists
261 - Limitation: No organization-specific status data
262
263## Connectors
264
265For Internal ISO Audit MCP server setup, see [CONNECTORS.md](./CONNECTORS.md).