HIVE80lab — Ops notes

Penetration Test Scope for Small Teams

A penetration test 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. A penetration test scope is not legal boilerplate. It is one page that decides what evidence you are buying — which systems may be attacked, in which window, with what methods, and what everyone does the moment something breaks. Get the page right and the test produces findings you can fix and a report that closes deals; skip it and you have bought a PDF and a story about the night the tester rate-limited your payment provider.

The one page, written before you shop

  1. Write the three-line intent before contacting any vendor. Why now (an enterprise security questionnaire, a compliance checkbox, a gut feeling after the last security audit), what decision the report must support, and who actually reads it. This matters because vendors price and shape the test around it: a questionnaire-answer test is a broad-but-shallow scan plus verification; a pre-deal diligence test is targeted at the systems the customer will inspect. A pentest bought without a named decision becomes a PDF that gets forwarded once and never opened.
  2. One page, nine boxes. (1) In scope — exact environments, domains, IPs, repos; say plainly whether prod is in, and if it is, why staging cannot answer the question instead. (2) Out of scope — payroll, staff laptops, third-party SaaS you do not 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. Nine boxes is one hour of typing and it is the whole contract.
  3. Rules of engagement, signed by both sides. The page above is not complete until both parties sign it and it answers the mid-test questions: 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 the in-scope services or notify the tester in channel), and who can call stop. The stop conditions matter more than the start date — they are what your on-call reads at 2am when test traffic pages, and they point to the same first move as the first 30 minutes: stabilize first, resume later.
  4. You build the guardrails, not the tester. Dedicated test accounts with capped permissions, a labeled user-agent or source range you can filter for later, and rate limits on the test account itself. Two reasons: your logs stay readable (test traffic is findable and excludeable after the fact, which the log retention policy should record), and the blast radius of a mistake stays inside accounts built to be hurt. A tester using a founder's real account is a finding about you, not them.
  5. Book the fix sprint before kickoff. A two-week test gets a two-week fix sprint already on the calendar, owned by whoever owns the code. Findings without scheduled fix time rot into next year's report — the same finding reappearing in consecutive tests is the tell, and it means the process failed, not the test. The severity scheme from the report feeds straight into the bug triage process: every finding needs an owner and a date, or it was entertainment.
  6. The retest is half the purchase. Fixes verified by the same tester within a bounded window (30 days is normal) is what lets you write “penetration tested, findings remediated and retested” on the customer questionnaire with a straight face. Without the retest you are certifying fixes you never verified — the pentest version of marking your own homework. Price it at signing; retrofitting a retest later costs more and happens never.

Five traps

Worked example

A seven-person B2B SaaS closing its first enterprise customer. The old way: a $9,000 broker pentest, engagement letter signed unread; 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, the tester abandoned the remaining tests, and the report landed six weeks later — forwarded once, no fix sprint, no retest. The enterprise deal stalled anyway: the buyer's questionnaire asked whether findings were retested, and the honest answer was no.

The rerun, next attempt: one-page scope written by the team in an hour and edited by the vendor in a day. In scope: the staging environment and the production API, in a declared window (Tue–Thu, 9–17, never during payroll week), with rate caps on the test account and labeled test traffic. Stop conditions in the on-call runbook. Fix sprint booked before kickoff; retest included at signing. Test ran clean, 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 was 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.

Metrics (for the testing program itself)

From the HIVE80lab kit

Related: the vendor security review checklist is the questionnaire the pentest report answers; the security audit preparation checklist is where the scope and the last report are standing inputs; the API key leak runbook is what the on-call runs when test traffic turns out to be something worse; and the incident drill schedule keeps the stop-conditions muscle warm between tests.

Related: the security questionnaire answer bank is where the retest letter gets pasted — the row that closes the deal.