Skip to main content
Methodology

A penetration testing methodology you can attach to an RFP

Six phases, eleven coverage classes, three approval gates, and one rule about what may be called a finding. Written for the person assessing the vendor rather than for the person booking the scan.

The phases do not change between coverage classes or between delivery models. What happens inside them changes completely, and that difference is the part this page sets out.

The six phases

What each phase takes in, and what it hands on

The order is the method. Each phase consumes what the one before it produced, and no phase is skipped because a target looks simple.

Why QA is sixth and not fourth

A quality gate placed mid-pipeline has nothing in front of it to check, because no report exists yet; holding work back is the only thing it can do. Ours runs on the finished report: the artefact as you would read it, with its findings, its evidence and its severities already written.

The report has not been handed over when this happens. A finding that does not survive the gate returns to the phase that produced it, and the correction lands in the copy you receive rather than in a note appended after you have filed it.

That is the whole of the distinction, and it is worth checking in any methodology you are handed: a step called quality assurance that runs after delivery is a review, and a review cannot stop anything.

The six phases in depth

The drop rule

Nothing leaves scanning as a finding

Scanning and exploitation are separate phases because they produce different things. One produces leads; the other produces evidence. A candidate is proved by exploitation or it is dropped, and those are the only two outcomes available to it.

03 Scanning

What comes out is a lead, and it is handled as one

What it produces
Candidates. The planned test cases are worked against the live target, and behaviour that suggests a defect is recorded as a candidate for the phase that follows.
What it may not produce
A finding, a count, a severity or a dashboard entry. A candidate is not shown to you, and it does not reach the report by sitting in the queue long enough to look like one.
04 Exploitation

The candidate is proved, or it is dropped

What it produces
Proved findings. B-52 runs the exploit, and a candidate that survives it leaves with the request, the response and the reproduction steps attached to it.
What happens to the rest
A candidate that cannot be proved is dropped. It is not downgraded to an informational note, carried forward as a possible issue, or written up with a caveat attached to it.

The cost of the rule is that anything we could not prove does not appear at all. The benefit is that every line in the report has an exploit behind it, and a reviewer can test that claim directly: pick a finding, follow its steps, and watch it reproduce.

Constant phases, different work

The same six phases across all eleven coverage classes

The phase names hold whatever is being tested. The work inside them does not: discovery against a running application, against an address range and against a source repository takes a different input, runs different work and produces a different map. Three of the eleven classes are worked through below as examples.

What each phase does against three of the eleven coverage classes
PhaseA web applicationAn external address rangeA source repository
Discovery Routes, parameters and roles enumerated from the running application, including client-side code read for endpoints the interface never links to. What actually answers: live hosts, the services on them, and the versions those services advertise — worked out from responses rather than from the asset list. Languages, frameworks and entry points in the tree, and which of them take input from outside the application.
Discovery is where the three diverge furthest. One starts from a URL, one from an address range and one from a checkout, and each produces a different kind of map for planning to work from.
Planning A mindmap of the application, and test cases generated from it with one credential per role in hand. Per-service test sets, ordered by what the exposed surface actually offers rather than by a fixed checklist. The sinks worth reaching, and the candidate paths that might reach them from an entry point.
Scanning The generated cases worked against the running application; behaviour that suggests a defect becomes a candidate. Service and configuration checks across the hosts that responded, producing candidates per host and per port. Data flow traced from entry point to sink across the tree. Each trace is a candidate, and none of them is a finding yet.
Exploitation The candidate is exploited against the live application, with the request and the response captured as they happened. Entry is proved against the exposed service. Movement past the host it landed on is an approval gate rather than a default. Reachability is proved: the file, the line, and the path that reaches that line. A path nothing can reach is dropped.
Reporting Findings against the application, each with its exploit artefact, a CVSS v4.0 vector and the CWE. Findings against the host and the service, with the proof of entry and the same severity and CWE record. The file, the line, the reaching path and the change that closes it, written against the idiom the repository already uses.
QA That every finding reproduces against the application as it was scoped. That each proof of entry names the host, the service and the port it was obtained on. That each finding names a file and a line that exist in the commit that was reviewed.
QA is the phase that varies least. In every class the gate runs on the finished report before it reaches you, and a finding that does not hold goes back to the phase that produced it.

What each phase does against three of the eleven coverage classes

Discovery

A web application
Routes, parameters and roles enumerated from the running application, including client-side code read for endpoints the interface never links to.
An external address range
What actually answers: live hosts, the services on them, and the versions those services advertise — worked out from responses rather than from the asset list.
A source repository
Languages, frameworks and entry points in the tree, and which of them take input from outside the application.

Discovery is where the three diverge furthest. One starts from a URL, one from an address range and one from a checkout, and each produces a different kind of map for planning to work from.

Planning

A web application
A mindmap of the application, and test cases generated from it with one credential per role in hand.
An external address range
Per-service test sets, ordered by what the exposed surface actually offers rather than by a fixed checklist.
A source repository
The sinks worth reaching, and the candidate paths that might reach them from an entry point.

Scanning

A web application
The generated cases worked against the running application; behaviour that suggests a defect becomes a candidate.
An external address range
Service and configuration checks across the hosts that responded, producing candidates per host and per port.
A source repository
Data flow traced from entry point to sink across the tree. Each trace is a candidate, and none of them is a finding yet.

Exploitation

A web application
The candidate is exploited against the live application, with the request and the response captured as they happened.
An external address range
Entry is proved against the exposed service. Movement past the host it landed on is an approval gate rather than a default.
A source repository
Reachability is proved: the file, the line, and the path that reaches that line. A path nothing can reach is dropped.

Reporting

A web application
Findings against the application, each with its exploit artefact, a CVSS v4.0 vector and the CWE.
An external address range
Findings against the host and the service, with the proof of entry and the same severity and CWE record.
A source repository
The file, the line, the reaching path and the change that closes it, written against the idiom the repository already uses.

QA

A web application
That every finding reproduces against the application as it was scoped.
An external address range
That each proof of entry names the host, the service and the port it was obtained on.
A source repository
That each finding names a file and a line that exist in the commit that was reviewed.

QA is the phase that varies least. In every class the gate runs on the finished report before it reaches you, and a finding that does not hold goes back to the phase that produced it.

Those three columns are web application penetration testing , external network penetration testing and secure code review . Each of those pages sets out what its own phases do in detail.

The other eight classes run the same six phases against their own inputs: a signed mobile release build, a distributed thick client package, an API with an authorisation matrix written before anything is tested against it, a cloud tenancy, an Active Directory estate, an internal network reached from a deployed position, an authorised social engineering population, and an application built on a language model.

One exclusion holds across all eleven and is stated the same way on every class page: physical, hardware and wireless testing are out of scope for the platform.

All eleven coverage classes

The three gates

Three actions stop and wait for a written approval

The same three on every coverage class and in all three delivery models. They are the whole of what B-52 stops for, and their terms are set when you sign the scope rather than negotiated while a run is going.

A gate is a stop rather than a warning: the run waits until the approval is given in writing. In the two autonomous models the approved action is then taken by the platform, and in the human-led model by the senior auditor running the engagement.

What the record of an approval holds, and who can read it back afterwards, is set out on the approvals and audit trail page. That is the page to attach where a questionnaire asks how the testing itself was controlled.

The gates, in the words the scope uses

  1. 01 Destructive or state-changing actions Anything that would alter or damage a production system rather than read from it.
  2. 02 Persistence and movement past the entry host Establishing a foothold that survives, or moving beyond the host B-52 first landed on.
  3. 03 Live credentials or real customer data Anything that touches a working credential or a record belonging to one of your customers.

Scope sign-off is the one thing every model asks of you before a run starts. From then on, the fully autonomous model comes back to you only at these three points.

What a finding carries

Every finding leaves reporting with the exploit that produced it

The record is the same in all three delivery models. What differs between them is whose signature the report carries, never what a finding contains.

  • A reproducible exploit artefact The request that triggered it, the response it drew, and every step needed to make it happen again — so a reviewer can pick a finding and run it rather than take it on trust.
  • A severity with its CVSS v4.0 vector The vector in full, not only the score, so your team can recalculate it against your own environment rather than argue with a number.
  • The CWE The weakness class the defect belongs to, which is what lets a set of findings be read as a pattern instead of as a list.
  • In the fully autonomous model, a cross-check An independent automated pass cross-checks every finding before it is reported. The expert-verified model puts a senior auditor on that job instead, and in the human-led model the auditor writes the report.

Four states, and closure is earned

A finding closes on a retest that cannot reproduce it. Closure is the outcome of running the original exploit again, not a status somebody sets when the ticket is tidied away.

The four states a finding moves through, and what closes one
StateWhat it meansWhat follows
Open Reported to you with its evidence attached. Nothing has changed on the target yet. Waits for a fix.
Fixed Your team has made the change and marked the finding fixed. Goes to retest.
Retested The exploit that proved the finding is attempted again against the changed system. Closes if it cannot be reproduced. Returns to open if it can.
Closed Terminal The exploit no longer reproduces. No state follows.
Key
  • Outstanding against your estate
  • Changed on your side, not yet retested
  • The original exploit is being run again
  • Nothing further outstanding
  • TerminalNo state follows this one

In the fully autonomous model, the median observed from scope sign-off to report is one to three business days — an observed median rather than a service level, and it describes that model. The delivery models page sets out which model produces a report that carries an empanelled auditor’s signature.

What the method is worked against

The standards, and the editions the run works against

A methodology that cites a standard without its edition is asking you to do the checking. Every edition below was read at its own source in September 2026, and two rows name what the report records instead of a fixed version, because those two publish on a rolling cadence and on a per-provider one.

Testing standards, their editions, and what each one governs in a run
StandardEdition worked againstWhere it bears on the run
OWASP Web Security Testing Guide v4.2, current stable The coverage baseline for the web application class, mapped case by case onto the generated test set.
OWASP Top 10 2025 edition The risk categories a web application finding is classified into. In this edition SSRF sits inside A01 Broken Access Control, and A07 carries the name Authentication Failures.
OWASP ASVS 5.0.0, May 2025 Verification requirements across its 17 categories, used where a scope is written against requirements rather than against a risk list.
OWASP MASVS and MASTG v2.1.0 and v2.0.0 The mobile class, including the MASVS-PRIVACY category added at v2.1.0. Coverage is expressed as testing profiles, which replaced verification levels at v2.0.0.
OWASP API Security Top 10 2023 edition, current The risk list API findings are classified against, alongside the authorisation matrix the class is worked from.
OWASP Top 10 for LLM Applications 2025 edition, 12 March 2025 The ten entries LLM01 to LLM10, for the class that tests an application built on a language model.
NIST SP 800-115 Final, September 2008 The technical assessment process the phase structure answers to. It remains the current edition.
PTES Current The execution standard the phase vocabulary is drawn from, which is why the names will be familiar.
PCI SSC Penetration Testing Guidance v1.1, September 2017 How a test is scoped and evidenced where the target sits in a cardholder data environment.
MITRE ATT&CK v19.2, 6 August 2026 Technique mapping for network, cloud and Active Directory findings.
MITRE ATLAS The release named in the report Technique mapping for findings against an application built on a language model. ATLAS publishes on a rolling cadence, so the release is recorded per finding rather than pinned here.
CVSS v4.0, November 2023 The severity vector carried by every finding. The version is published and maintained by FIRST.
CIS Benchmarks The benchmark and version named in the report Configuration baselines for cloud findings. CIS publishes one Foundations Benchmark per provider on its own cadence, so the benchmark is recorded per finding.

Testing standards, their editions, and what each one governs in a run

OWASP Web Security Testing Guide

Edition worked against
v4.2, current stable
Where it bears on the run
The coverage baseline for the web application class, mapped case by case onto the generated test set.

OWASP Top 10

Edition worked against
2025 edition
Where it bears on the run
The risk categories a web application finding is classified into. In this edition SSRF sits inside A01 Broken Access Control, and A07 carries the name Authentication Failures.

OWASP ASVS

Edition worked against
5.0.0, May 2025
Where it bears on the run
Verification requirements across its 17 categories, used where a scope is written against requirements rather than against a risk list.

OWASP MASVS and MASTG

Edition worked against
v2.1.0 and v2.0.0
Where it bears on the run
The mobile class, including the MASVS-PRIVACY category added at v2.1.0. Coverage is expressed as testing profiles, which replaced verification levels at v2.0.0.

OWASP API Security Top 10

Edition worked against
2023 edition, current
Where it bears on the run
The risk list API findings are classified against, alongside the authorisation matrix the class is worked from.

OWASP Top 10 for LLM Applications

Edition worked against
2025 edition, 12 March 2025
Where it bears on the run
The ten entries LLM01 to LLM10, for the class that tests an application built on a language model.

NIST SP 800-115

Edition worked against
Final, September 2008
Where it bears on the run
The technical assessment process the phase structure answers to. It remains the current edition.

PTES

Edition worked against
Current
Where it bears on the run
The execution standard the phase vocabulary is drawn from, which is why the names will be familiar.

PCI SSC Penetration Testing Guidance

Edition worked against
v1.1, September 2017
Where it bears on the run
How a test is scoped and evidenced where the target sits in a cardholder data environment.

MITRE ATT&CK

Edition worked against
v19.2, 6 August 2026
Where it bears on the run
Technique mapping for network, cloud and Active Directory findings.

MITRE ATLAS

Edition worked against
The release named in the report
Where it bears on the run
Technique mapping for findings against an application built on a language model. ATLAS publishes on a rolling cadence, so the release is recorded per finding rather than pinned here.

CVSS

Edition worked against
v4.0, November 2023
Where it bears on the run
The severity vector carried by every finding. The version is published and maintained by FIRST.

CIS Benchmarks

Edition worked against
The benchmark and version named in the report
Where it bears on the run
Configuration baselines for cloud findings. CIS publishes one Foundations Benchmark per provider on its own cadence, so the benchmark is recorded per finding.

Regulatory mapping is a separate question and has its own page: PCI DSS, ISO/IEC 27001, SOC 2, GDPR, HIPAA and the Indian regimes, with the control each set of findings is mapped to. The standards mapping sets that out, and the compliance index carries a page per regime.

Security Brigade has been CERT-In empanelled since 2008 and is ISO 27001 certified. Those two instruments are the firm’s, covering how it delivers; the B-52 platform holds no certification of its own and this site claims none for it.

The testing checklist

How editions are recorded on a finding As of September 2026
  • Severity is given as a full CVSS v4.0 vector rather than as a score alone, so it can be recalculated against your own environment.
  • Each finding carries its CWE, which is what lets a set of findings be read as a pattern rather than as a list.
  • Where a finding is mapped to MITRE ATLAS, the report names the release it was mapped against, because ATLAS publishes on a rolling cadence.
  • Cloud configuration findings name the CIS Benchmark and the version they were worked against, since CIS publishes one Foundations Benchmark per provider on its own cadence.

Deliberately excluded

  • Certification and attestation. Findings are mapped to the controls a framework names; certificates and attestation reports are issued by certification bodies and by auditors appointed for that purpose.

Attach the methodology, then check it against a run

A method is worth what a delivered report proves about it. Scope one target, read what comes back, and hold the report against every claim on this page.