Monitoring

Passive vs Active Security Scanning: What a Scanner Should Refuse to Do to Your Site

The line between observing a site and attacking one is sharper than vendors make it sound. What passive scanning can honestly find, what genuinely needs active testing, and the tests we refuse to run — with reasons.

Webcuris Research

Security Engineering

·2 min read

Observe daily. Attack once, with consent, by hand.

Passive scanning observes what a server already says to anyone: response headers, TLS parameters, DNS records, certificate transparency logs, the behaviour of an ordinary page load. Active scanning sends traffic designed to make something misbehave: injection payloads, authentication guesses, malformed requests. The distinction sounds academic until you notice what it decides — whether a scan can safely run continuously against production, and whether it can harm people who never consented to being tested.

What passive observation honestly finds

More than the word "passive" suggests. Without sending a single hostile byte, a scanner can read:

  • Every security header and its exact value — a CSP that is present and useless, cookie flags, HSTS max-age.
  • The complete TLS posture — protocol versions, certificate chain, expiry.
  • The domain's email authentication — SPF, DKIM, DMARC records and what they actually authorize.
  • Your subdomain estate — certificate transparency logs are public, and they remember every certificate you ever issued.
  • Framework and server disclosures — the versions your responses volunteer.
  • Dependency risk — advisories matched against what your pages load and what your repository declares.

That list covers the large majority of what actually goes wrong on real websites — misconfiguration, drift, and known-vulnerable components, not exotic zero-days.

What genuinely needs active testing

Confirming that an injection is exploitable — not just that inputs are reflected — requires sending payloads. So does testing authentication logic, business-logic flaws, and access control between accounts. That work is real and valuable. It is a pentest: scoped, time-boxed, authorized in writing, run by a person who can stop when something looks fragile — not a robot re-running attacks against production on a schedule.

The tests we refuse to run, with reasons

Some active tests are refused here even when the customer asks, because the harm falls on people who did not consent:

Refused testWho it hurts
Credential stuffing / brute forceReal users, locked out of their accounts — the test is the attack, indistinguishable in the target's own logs
Conclusive SQL / command injectionA payload that proves execution executes — on somebody's production database or shell
Request smuggling & cache poisoning probesOther people's users, served a poisoned response from a shared cache
Active prototype-pollution probingEvery other user of the process, until it restarts
Rate-limit enforcement testingThe service itself — proving a limit exists means bursting past it
Each row is implementable. Each is excluded because a monitoring product runs unattended, and unattended attacks are just attacks.

A vendor with a longer feature list than this either runs those tests — worth asking how they contain the harm — or checks a proxy and names it after the attack. Both are worth knowing before you point anything at production.

Why continuous monitoring must be passive

Monitoring's value is running every day against production — that is what catches the regression the day a deploy causes it. A test too dangerous to run unattended daily therefore cannot be part of monitoring, whatever its one-off value. The honest architecture is both, separately: passive checks continuously, and a human-driven pentest at the cadence your risk justifies. A Webcuris scan is the first half, and says so — every check it runs is one your site already answers for anyone who asks politely.

Get the next one

One email when a new article goes out. No newsletter, no drip sequence, no sales follow-up.

Unsubscribe in one click. We never sell or share the address.

Keep reading

Contact

Talk to us.

Questions about what the engine checks, whether it fits your estate, or what it deliberately refuses to do. A person reads every message.

  1. 01You writePlain form, no qualifying call, no obligation. The marketing checkbox is optional and unticked.
  2. 02A person reads itMessages land with the team, not a queue-bot. Nothing is auto-replied.
  3. 03You get an answerTo the address you gave — including “this product is not the right fit”, when that is the honest answer.
Reporting a vulnerability?
Read the disclosure policy first — it tells you what is in scope and what to expect.
New messagereplies go to your email

We reply to this address, so a disposable one will not reach you.

+91

0 / 4000