Exercises › Module 01
Out of Scope!
An AI-assisted report-writing exercise on rules of engagement and GDPR. Suggested time: 30–40 minutes.
Goal
Use an AI assistant to build a fictional engagement paper trail and draft a penetration-test report. Then review it yourself and find the compliance problem the AI didn't catch. No authorization, no engagement: if it isn't in the signed scope, it doesn't go in the report.
Safety rules
- Everything is fictional: Nordlicht Moden GmbH (client) and Kestrel Assurance Partners (consulting firm).
- Use only
.exampledomains and documentation IP ranges (192.0.2.0/24, 198.51.100.0/24, 203.0.113.0/24). - No real companies or people, no exploit code, no tool commands.
- Never paste real client data into any AI tool.
1 Generate the paper trail
Paste this into your AI assistant. It creates a signed scope letter, rules of engagement, and the consultant's working notes. Save all three documents before moving on.
You are helping me build a fictional training case for an ethical hacking class. Everything must be invented: use the company name 'Nordlicht Moden GmbH', a fictional fashion retailer headquartered in Hamburg, Germany, with online shops serving EU customers. Use only .example domains and documentation IP addresses (192.0.2.x, 198.51.100.x, 203.0.113.x). Do not include exploit code, tool commands, or real people.
Create three documents:
1) A signed Scope / Authorization Letter (Permission to Test) from the client's CISO to the consulting firm 'Kestrel Assurance Partners'. Include: engagement ID, testing window (start and end dates and daily testing hours), an explicit list of exactly five approved hostnames with IP addresses, an explicit out-of-scope statement ('any system not listed above is out of scope'), emergency contacts, and signature blocks for both parties.
2) A Rules of Engagement document: permitted activities, prohibited activities (e.g., denial of service, social engineering of staff, accessing production customer records beyond proof of access), testing windows, data-handling rules for personal data under GDPR, communication and escalation procedures, and an emergency stop procedure.
3) The consultant's working notes: 10–14 dated, time-stamped entries written in a realistic, informal note-taking style, describing observations at a high level (for example 'TLS configuration outdated on shop host', 'verbose error messages on API login').
IMPORTANT: Include exactly ONE working-note entry about a hostname that is NOT on the approved list in the scope letter. Make it look like an ordinary entry that blends in with the others. Do not label it, flag it, or hint that it is out of scope anywhere in the documents.Tip: if the AI labels or flags the extra host anyway, ask it to regenerate the notes without labels, or swap documents with a partner.
2 Draft the report and GDPR checklist
Using only the three documents above, act as the lead consultant at Kestrel Assurance Partners and draft: A) A professional engagement report for Nordlicht Moden GmbH with: cover details and document control, an executive summary written for non-technical leadership, engagement overview and scope, a findings summary table (ID, title, affected host, severity rating Critical/High/Medium/Low/Informational, short business impact), detailed findings, and prioritized recommendations / remediation roadmap. B) A GDPR compliance checklist relevant to this engagement and to the findings, covering the seven core principles (lawfulness, fairness and transparency; purpose limitation; data minimization; accuracy; storage limitation; integrity and confidentiality; accountability), how test data containing personal data was handled, and whether any finding could involve a personal data breach that needs evaluation. Keep the tone factual and evidence-based. Do not invent findings that are not supported by the working notes.
Watch what the AI does with every host in the notes. It doesn't check authorization for you.
3 Review it yourself, then fix it
Do the comparison yourself before you ask the AI:
- List the approved hostnames/IPs and the testing window from the signed scope letter.
- Go through every working-note entry and every finding, and check each host against the list.
- Anything not on the list is out of scope. Stretch goal: also check timestamps against the authorized dates and hours.
Then replace [unapproved host] with the host you found and run:
Revise the engagement report: remove every reference to [unapproved host] — from the executive summary, findings table, detailed findings, recommendations, risk counts, and GDPR checklist. Re-number the remaining findings and update the severity totals. Then add a short 'Professionalism Note' section explaining that activity was recorded against a system outside the written authorization, that it is not reported as a finding, and that it has been disclosed to the client contact for review.
Re-read the AI's revision. It often misses a mention in the executive summary or the severity counts.
Deliverables
- Corrected engagement report
- GDPR checklist (all seven principles)
- Professionalism Note
- One sentence: which host was out of scope, and where you found it
Grading rubric (10 pts)
| Criterion | Pts |
|---|---|
| Out-of-scope host identified, with evidence (note entry + missing from scope letter) | 3 |
| Report fully cleaned; findings re-numbered and severity totals corrected | 3 |
| Professionalism Note: short, factual, non-defensive | 2 |
| GDPR checklist complete (all seven principles + test-data handling) | 2 |
Answer key (spoilers: finish the exercise first)
What a correct submission shows
- The unapproved hostname is identified, with the note entry (date/time) where it appears and the scope-letter section it's missing from.
- Zero remaining references anywhere: executive summary, findings table, detailed findings, evidence, recommendations, roadmap, risk counts, appendices, GDPR checklist.
- Findings re-numbered and severity totals recalculated.
- A short, factual, non-defensive Professionalism Note.
- The GDPR checklist still covers all seven principles and how test data was handled.
Sample Professionalism Note
During the engagement, the working notes recorded activity against a system that is not listed in the signed Scope and Authorization Letter (Engagement ID ___). Because this system was outside the written authorization, no results from it are included as findings in this report, and no conclusions should be drawn about its security. The activity has been disclosed in writing to the client's designated contact for review. Any data that may have been obtained will be handled and deleted according to the Rules of Engagement and GDPR obligations. Testing of this system can be considered only after written authorization is added to the scope.
Why it must be removed and disclosed
- Legal: Testing without written permission is unauthorized access, whatever the intent (e.g., CFAA in the US, the Computer Misuse Act in the UK, Germany's StGB §202a, §303a/§303b). The scope letter only protects you for what it lists.
- Contract: The SOW and ROE define what's covered. Reporting out-of-scope results turns a breach of contract into a written record.
- GDPR: If the system processes personal data, touching it may be processing without a lawful basis and may require breach evaluation. That's the client's decision, so they must be told.
- Third parties: Unlisted hosts often belong to vendors or subsidiaries the client can't authorize testing on.
- Ethics: Silently deleting it is concealment. Remove it from the findings and disclose it.
- AI lesson: AI is a force multiplier, not a compliance check. A human has to validate the output before it reaches a client.
Common mistakes
- Leaving the host in the executive summary, severity counts, or roadmap.
- Deleting it silently with no note or disclosure.
- Writing the note as a confession or blaming the AI.
- Re-labeling it as an "Informational" finding. It's still out of scope.
- Asking the AI to find the host before reviewing manually.
- Missing a near-match hostname (e.g., shop-staging vs. shop). Only an exact match counts.
Instructor variant (same answer for everyone)
Add this line to the Step 1 prompt and hand out the documents:
The single out-of-scope host must be hr-portal.nordlicht-moden.example (203.0.113.45), an employee HR self-service portal.
Answer: hr-portal.nordlicht-moden.example is out of scope and highly sensitive under GDPR (employee personal data). It must be removed from the report and disclosed to the client.
