Defence Lab
what we protect.
PeopleCode & deliveryInfrastructure & cloudDevicesOfficesGovernance & compliance All 18 servicesopen the full list → platforms. vendors. blog. about us. book a consultation

Penetration testing

Assessment and testing

Find out what an attacker could actually do.

Most organisations know roughly where their risks are. Harder to establish is which of them are exploitable, which systems an attacker reaches first, and what to fix before anything else.

Risk-driven testing across applications, infrastructure and cloud, run by engineers with automation doing the breadth.

  • Applications
  • Infrastructure
  • Cloud

Situation

Five reasons a test gets booked

A customer is asking for proof.

A security review or questionnaire has arrived and the contract is waiting on it. They want evidence of independent testing, which a policy document does not provide.

Something is going live.

A new application or piece of infrastructure ships soon, and nobody outside the team that built it has tried to break it.

The audit calendar says so.

PCI DSS, a licence condition or your own policy requires periodic independent testing, and this year's date is already set.

Scanner output with no order to it.

A long list of findings with no way to tell which matter here, or which to close first.

Last year's fixes were never checked.

Findings were closed in the tracker, but nobody confirmed that the fixes hold or that the weakness is actually gone.

Difference

How fast findings reach you, and what it costs to confirm the fix

Breadth to the machine, the chain to an engineer. The same check against every endpoint, role and parameter is wide rather than hard, so coverage does not shrink when the scope grows. What does not automate is holding an objective across many steps: that one weak permission plus that predictable identifier add up to a way in. The chain is reasoned by a person; the evidence under it is gathered by machine.

The report is not a second project. Critical findings reach you the day they are found, and the full report follows without a second mobilisation, because the record of what was tested is written as the work runs rather than reconstructed afterwards.

The retest is in the engagement, which changes what the answer costs. Bought separately it is usually capped: a window of a month or three after delivery, priced per finding, billed in minimum blocks. Here each finding is checked again about a week after your fixes, and you get a summary of what is resolved and what remains.

ApproachWhat it gives youWhat it misses
Vulnerability scanningWhat it gives youBroad signature coverage, fast and repeatableWhat it missesBroken object-level authorisation, business logic, chains of low-severity issues that combine into access
A low-cost one-off testWhat it gives youFindings, at a priceWhat it missesReproduction a developer can follow, a summary a board can read, a retest that is not a separate purchase
Compliance-driven testingWhat it gives youEvidence for the auditWhat it missesWhatever the framework does not ask about
Goal-based red teamWhat it gives youOne objective, by whichever route works, with the path documentedWhat it missesBreadth: it reports the route taken, not everything present

Method

The scope sets the timeline, and we tell you what it is before you commit

  1. 01RequirementsUs and you
  2. 02Scope specificationYou
  3. 03EstimationUs
  4. 04Scope finalisationUs and you
  5. 05TestingUs
  6. 06Report and presentationUs and you
  7. 07RetestUs

A single application with a clear authorisation model is days of work. A multi-service environment with several roles, integrations and a cloud estate is weeks. We run reconnaissance on the agreed scope and give you the number, instead of quoting the same two weeks to everybody.

Critical findings are reported when they are found, with enough detail to act on straight away, so your engineers get them while the context is still fresh rather than waiting for the report.

What we look for

Reconnaissance and mapping

features and components entry points architecture and threat mapping framework fingerprinting TLS configuration error handling

Authentication

credential transport and storage user enumeration lockout reset and change flows multi-factor implementation brute-force resilience

Authorisation

broken object-level authorisation privilege escalation schema bypass role boundaries direct object references

Session management

fixation cookie flags and scope session puzzling logout timeout cross-site request forgery

Input handling

injection across SQL, command, code and template contexts second-order injection XML external entities deserialisation file upload parameter pollution

Business logic

workflow circumvention replay process timing integrity checks abuse of intended functionality state machines driven into unintended states

Configuration and infrastructure

exposed management interfaces legacy and dead code cross-domain policy environment segmentation secrets in configuration

Cloud, when in scope

identity and permission boundaries storage exposure logging coverage workload isolation secrets management

Control

Your rules hold for the whole test

Your rules are written down before testing starts.

Permission to test, ownership of every asset in scope, exclusions, testing windows, communication rules and emergency contacts, agreed in writing, along with the hours exploitation is allowed, the systems that must not be touched and the actions needing your sign-off. Each becomes a rule the test cannot break, and automated work runs inside a hard scope limit.

A person checks every stage, and new methods are proven first.

Results are reviewed by an engineer before anything moves on or into the report. New testing workflows run on training ranges before they touch a client system.

Where your test data goes.

Processing stays within the EU, identifying fields are stripped before anything reaches a model (including anything an engineer passes to one by hand) and nothing is used to train or improve a model. Full detail is in the data processing agreement, available on request.

The record of checks

Every check is logged as the work runs: what was tested, how, and what came back; a check that fails is rerun. That record is why the report does not need a second mobilisation to write, and why coverage can be shown alongside findings: a report says what was found, the record says where we looked.

Scope

What can be tested, how much we are told, and what lands at the end

What can be tested

Targets

external internal web application and API mobile cloud wireless social engineering goal-based red team

Models

black box with no prior knowledge grey box with partial knowledge and test accounts white box with full knowledge and source

Grey box is the usual choice: realistic behaviour, with enough access to reach authorisation logic and multi-role flows inside the engagement window.

What lands, and when

During the engagement

immediate notification of critical findings

The report

every finding with severity, evidence and business impact step-by-step reproduction remediation guidance executive summary the methodology used

Afterwards

management presentation technical walkthrough for the engineers support during remediation the retest and its summary

Out of scope unless agreed. Anything not written into the scope is outside it, and the exclusions that apply to your engagement are listed in the proposal before you sign.

Who does the testing

The people, and what they work to

Certifications held between them

OSCP OSWE eCPPT eWPTX CISA CISM CEH AWS Security Specialist

Methodologies

OWASP NIST CSF CIS Controls PCI DSS HIPAA Security Rule CSA guidance

Next step

Tell us what needs testing

Scope comes before price: a test cannot be quoted without knowing what is in it. A scoping call establishes the systems, the access model and the constraints, and the estimate follows from that.

Book a scoping call