Pentest | Vulnerability Assessment | Compliance
Pentest vs. Vulnerability Assessment: What Each Delivers (and Why the Scan Does Not Replace the Test)
Category: Pentest | Vulnerability Assessment | Compliance Level: Beginner to Intermediate Environment: Controlled laboratory — fully anonymized scenario, no real client data
Introduction
Every month, a "vulnerability test" proposal arrives at the security team with a low price and an automatic report in 48 hours. At the same time, the PCI-DSS auditor asks whether the annual pentest has been done. For those who do not live security, the confusion is legitimate: vulnerability assessment (VA) and penetration test (pentest) look like the same thing — both "look for vulnerabilities". They are not.
The difference is not about price, it is about the question. The scan answers "which known CVEs exist on these assets?". The pentest answers "what can an attacker actually do with what exists — and what does that cost the business?". A mature organization needs both, at different moments, with different purposes. This article explains the difference in an anonymized scenario, shows when each applies and why neither alone meets what LGPD, PCI-DSS and ISO 27001 require.
1. What each one is (jargon-free definitions)
Vulnerability Assessment (VA / vulnerability scan)
It is an automated scan that compares software versions and configurations of a target against a knowledge base of known vulnerabilities (CVEs, plugins, libraries). The deliverable is a list prioritized by severity (CVSS), indicating which CVE potentially affects each asset.
- Question it answers: "What is outdated, misconfigured or has a known CVE?"
- How it works: the tool runs on the network or host (Nessus, Qualys, OpenVAS, nuclei, SAST scanners on code), compares against CVE feeds, generates a report.
- Speed: days, sometimes hours — depending on the scope size.
- False positive rate: high. The scan correlates version with CVE, but does not confirm whether the exploitation condition actually exists (e.g., a CVE that requires a specific configuration, a WAF blocking it, a disabled feature).
- Depends on inventory: a scan only sees what it can reach and recognize. If the asset is not in scope or the version is customized, it goes blind.
Penetration Test (pentest)
It is a manual, adversarial, goal-oriented test, executed by a professional who thinks like an attacker — with written authorization, defined scope and engagement rules. The pentester uses automated tools as support (enumeration, fuzzing), but the core of the work is human: chaining vulnerabilities, testing business logic, attempting privilege escalation, validating real impact.
- Question it answers: "What can an attacker do with this — and what is the real impact for the business?"
- How it works: reconnaissance → threat modeling → controlled exploitation → validation of each finding with a reproducible PoC → report with evidence.
- Speed: weeks (typically 2-3 weeks for a web application).
- False positive rate: low — every finding is manually validated with proof of exploitation before entering the report.
- Depends on scope and context: the value is precisely in what the scanner does not see — business logic, authentication flows, chained failures.
2. Laboratory scenario: "Alfa Retail"
To make the difference concrete, we used a fictitious scenario: Alfa Retail, a retailer with 400 stores, its own e-commerce and an internal CRM system with customer data (LGPD on the board's mind). The IT team has been running a quarterly scan with a VA tool for two years. Nobody questioned the process — until the last scan report came out "100% clean" in the same week a laboratory pentest (authorized, in a staging environment) found what the scan could not see.
What happened in the scenario:
Finding 1 — [CRITICAL] IDOR in the CRM: the scanner does not test business logic
The scan swept the CRM, found the framework version with no known CVE and moved on. The pentester, with a standard user account, changed a record ID in the URL and accessed another customer's full file — name, CPF, phone, purchase history. The backend trusted the ID sent by the client without validating authorization.
- Why the scan did not see it: object-level unauthorized access (IDOR) is not a CVE — it is an authorization logic flaw. No CVE feed describes "Alfa's system validates IDs". Only a functional test, thought out adversarially, finds this.
- What the scan would report: nothing. The report came out "clean".
- OWASP Top 10 (2021) mapping: A01 Broken Access Control.
Finding 2 — [HIGH] Chaining: avatar upload → RCE on the server
The scan identified the upload component's version as "no known CVE". The pentester discovered the upload accepted arbitrary extensions, sent a file with executable content and, combined with the lack of segregation between the upload directory and the web server, executed commands on the server.
- Why the scan did not see it: each isolated piece seemed harmless (upload "validated" by extension, directory on the same host). The risk only exists in the chaining of the two flaws — exactly the kind of reasoning a scanner does not do.
- OWASP Top 10 (2021) mapping: A03 Injection + A05 Security Misconfiguration (chained).
Finding 3 — [MEDIUM] Data leakage in API response
A legitimate endpoint returned, along with the requested data, fields the screen does not use: the full CPF of the logged-in user and of third parties, internal integration tokens. The infrastructure scan does not make authenticated functional calls; only manual testing with the application in use found the data excess in the response.
- Why the scan did not see it: the VA evaluates the target "from the outside" (banner, version, port). Data excess in an API payload requires authentication and knowledge of the business flow.
- OWASP Top 10 (2021) mapping: A01 Broken Access Control (excessive data exposure).
The scenario summary
| Finding | Scan (VA) | Pentest | Why |
|---|---|---|---|
| IDOR in the CRM | Did not see | Found | Logic flaw, not version flaw |
| Upload → chained RCE | Did not see | Found | Risk exists in the combination |
| Data excess in API | Did not see | Found | Requires authenticated functional flow |
| Known CVE in plugin | Saw | Confirms/validates | Version vs. feed comparison |
The scan is not useless — it is incomplete for what Alfa needed: knowing whether an attacker could access customer data. For that question, only the manual test works.
3. When to use each one (and when to use both)
Use vulnerability assessment when:
- High frequency, low cost: continuous coverage between pentests (e.g., monthly/quarterly scan, CI scan on every deploy).
- Large and dynamic inventory: a network with hundreds of assets, where the first step is knowing what exists and what is outdated.
- Initial triage: reducing the universe before the manual test — the scan points out CVE candidates that the pentester validates later.
- Patch management: feeding the remediation process with prioritization by CVSS and exposure.
Use pentest when:
- The question is "what can an attacker do?" — not "what is outdated?".
- Compliance requirement: PCI-DSS Req. 11.4 (v4.0) requires annual internal and external pentests; LGPD Art. 46 requires technical security measures — which auditors and the DPO expect to see evidenced by testing, not by scanning.
- Applications with business logic: e-commerce, fintech, CRM, payment systems — where the risk lies in flows, not versions.
- Before significant changes: product launch, new integration, architecture migration.
- Control validation: the pentest tests whether WAF, IDS and patches actually prevent exploitation — the scan only attests they exist.
The correct combination
A realistic security posture uses both in layers:
[Continuous VA] → [triage and patch] → [periodic/annual pentest] → [remediation] → [re-test]
↑ │
└────────────────────── continuous loop (cadence by risk) ←─────────────────┘
The VA maintains basic hygiene between cycles; the pentest validates whether the hygiene resists a real attacker. The most common mistake is not choosing one — it is treating the scan as a substitute for the test and discovering the difference in an incident.
4. Why the scan does not meet compliance on its own
Auditors and regulators ask for evidence of testing, not evidence of scanning:
| Standard | Requirement | Why scan alone is not enough |
|---|---|---|
| LGPD Art. 46 | Technical and administrative security measures capable of protecting personal data | The standard evaluates effectiveness, not tool presence. IDOR accessing customers' CPFs = ineffective measure, even with a "clean" scan |
| PCI-DSS Req. 11.4 (v4.0) | Annual internal and external penetration testing + after significant changes | The requirement names penetration testing (11.4.2 internal / 11.4.3 external), not scanning (which is Req. 11.3 — quarterly scanning: 11.3.1 internal / 11.3.2 external — separate and additional) |
| PCI-DSS Req. 6.3.1 / 11.3 (v4.0) | Vulnerability management process + quarterly scanning | Here the scan is mandatory — but as a continuous layer, complementary to the pentest |
| ISO 27001 A.8.8 | Management of technical vulnerabilities | The control expects identification and treatment of vulnerabilities with evidence of testing |
| ISO 27001 A.8.29 | Security testing in development | Application testing in DevSecOps — functional scope, not just component version |
The practical point: a pentest report is signed by a professional, brings a reproducible PoC for each finding and describes impact in business language — what an auditor accepts as evidence. A scan report is an inventory of potential risk, useful for the technical team, but it does not answer "is the vulnerability exploitable?".
5. How to evaluate a pentest proposal (checklist for buyers)
Not every proposal called "pentest" is a pentest. Before signing:
- Explicit scope — what will be tested (applications, APIs, network, mobile), with which access (blackbox/graybox/whitebox) and in which environment (staging preferable).
- Declared methodology — OWASP WSTG/PTES as the basis, manual business logic tests planned (not just "run tool X").
- Evidence per finding — the report must include a reproducible PoC (payload, step-by-step, screenshot) for each vulnerability.
- Responsible professional — signed report, with name and seniority; there is a human behind the analysis.
- Impact validation — severity classified by business context (CVSS is the starting point, not the final answer).
- Re-test included — remediation verification after fixes (commonly 1 re-test cycle in scope).
- Compatible timeline — a web application pentest takes weeks, not 48 hours. Lightning-fast delivery is a sign of a rebranded scan.
6. Conclusion (and what to do on Monday)
- If you have no scan: start with it — it is the continuous hygiene layer and the cost is low.
- If you have a scan and no pentest: the question "what can an attacker do?" remains unanswered. Schedule the first pentest on the assets that move sensitive data or money.
- If you have both: verify that the pentest covers business logic and authenticated flows — if the report only lists CVEs, you hired a more expensive scan.
In the Alfa Retail scenario, the "100% clean" scan had existed for two years; the one-week pentest found three exploitable flaws in customer data. The difference is not in the tool — it is in the question each one answers.
This article describes a fully fictitious laboratory scenario, built for educational purposes. No real client data was used. Exploiting vulnerabilities in systems without explicit authorization is illegal.