DEV Community

Hive80-lab
Hive80-lab

Posted on Originally published at hive80-lab.github.io

The Penetration Test Scope: The Test That Scanned the Wrong Server

A team I know bought a $9,000 penetration test and got an outage instead. The tester scanned production during business hours because staging "wasn't representative." The payment provider rate-limited the test traffic mid-afternoon. The on-call engineer spent three hours debugging an outage nobody could reproduce — because only the tester knew it was a test. The report landed six weeks later, got forwarded once, and no finding was ever fixed. The enterprise deal the test was supposed to unlock? Stalled, because the buyer's questionnaire asked whether findings were retested, and the honest answer was no.

A pentest without a written scope is an invoice with admin rights. The tester decides what gets touched, when, and how hard — and you find out from an on-call page. Small teams buy pentests rarely and expensively, which is exactly why the scope matters more for them: there is no second test to fix a bad first one.

One page, nine boxes

This is the whole contract, one hour of typing:

  1. In scope — exact environments, domains, IPs, repos. Say plainly whether prod is in, and if it is, why staging can't answer the question instead.
  2. Out of scope — payroll, staff laptops, third-party SaaS you don't own.
  3. Test window — dates and hours, plus blackout dates (payroll week, the big launch).
  4. Allowed methods — external web and API testing yes; social engineering of staff only if you consciously agree, in writing, because it tests your people, not your systems.
  5. Intensity limits — no destructive testing, rate caps on authenticated requests, no exfiltrating more data than a proof.
  6. Stop conditions — any customer-data exposure, any data corruption, any on-call page: stop and call, in that order.
  7. Contacts tree — tester → engagement owner → on-call engineer → escalation, with phone numbers, not email.
  8. Credentials — how test accounts get made, where their secrets live, when they expire.
  9. Deliverables — report format, severity scheme, and whether a retest is included or priced separately.

The three moves teams skip

Sign rules of engagement, both sides. What happens when the tester finds something serious on day two (an immediate-disclosure channel, not save-it-for-the-report), what happens when you deploy during the window (freeze or notify), and who can call stop. The stop conditions matter more than the start date — they're what your on-call reads at 2am when test traffic pages.

You build the guardrails, not the tester. Dedicated test accounts with capped permissions, a labeled user-agent your logs can filter for, rate caps on the test account itself. A tester using a founder's real account is a finding about you, not them.

The retest is half the purchase. Fixes verified by the same tester within ~30 days is what lets you write "penetration tested, findings remediated and retested" with a straight face. Without it you're certifying fixes you never verified — marking your own homework. Price it at signing; retrofitting a retest never happens.

The five traps

  • The scope the tester writes for you — conflict of interest is structural; a scope you didn't edit is a scope you didn't buy.
  • Unbounded prod scans — the answer to "staging isn't the same" is a window with caps and stop conditions, not a scan during business hours.
  • The PDF that lands and dies — the fix is calendar, not culture: fix sprint booked at signing, every finding with an owner and a date.
  • Buying the report, not the retest — buyers increasingly ask for the retest letter, not the report summary.
  • Compliance theater with a stale in-scope list — last year's boundary doesn't contain this year's API; refresh scope against the asset inventory every engagement, and let cadence follow change volume, not the calendar.

The rerun

Same team, next attempt: one-page scope written by the team in an hour, edited by the vendor in a day. Staging plus the production API, Tue–Thu 9–17, never payroll week, rate-capped test account, labeled traffic, stop conditions in the on-call runbook, fix sprint booked before kickoff, retest included at signing.

Report in ten days: three highs, five mediums. Highs fixed in nine days, retest verified eleven days after the report. The questionnaire's pentest row got answered with the report and the retest letter — and the deal closed the following week. Same $9,000. The difference was one page written first.

The metrics that keep the program honest: 100% of tests with a signed scope before kickoff, findings fixed within the pre-booked window, retest verification rate, median days from report to first fix merged, and the repeat-finding rate — the same class of finding reappearing across tests is a process gap, not a test gap.


This is unit #211 of HIVE80lab Ops Notes — free, no-gate templates for small teams. The full worked checklist lives here: Penetration Test Scope for Small Teams. Related: the vendor security review checklist is the questionnaire this report answers. If you want the incident-response side in kit form: The First 30 Minutes (free).

Top comments (0)