Malicious bots: what actually needs blocking

Automated traffic is not one thing, and treating it as one is the most common mistake here. Some automation is why your site appears in search results and why your monitoring wakes you at night. Other automation copies your content, tries stolen passwords, or takes your inventory. The useful question is never whether traffic is automated, but what it costs.

Section Bots Updated Pages 6

Where the line runs

Three properties separate harmful automation from the rest, and none of them is «it is a bot».

It takes something. Content, inventory, data, advertising budget, or the ability of real customers to be served.

It hides what it is. Legitimate automation identifies itself and can be verified. Harmful automation copies browser characteristics precisely because being recognised would end it.

It ignores what you asked. Instructions about which parts of your site may be crawled are followed by the automation that respects them, which is the automation that was never a problem.

Automation that identifies itself, is verifiable, and behaves within limits is a different subject with a different answer. The catalogue of that kind, including the crawlers that read sites for search and answer engines, is maintained at BotBridge.

The taxonomy

TypeWhat it doesWhat it costs
Content scrapersCopy pages at scaleDuplicated content, load, competitive exposure
Spam botsSubmit forms and commentsModeration effort, reputation, mail deliverability
Credential stuffingTry leaked passwords against accountsCompromised accounts, support load
Account takeover automationOperate accounts once insideFraud losses, customer trust
ScalpersBuy or hold limited inventoryLost sales, angry customers
Click fraudGenerate advertising clicksAdvertising budget
BotnetsProvide distributed capacity for other attacksAvailability
Fake search crawlersImpersonate verified crawlersAccess to what you allow crawlers
Carding automationTest stolen payment cardsProcessor penalties, fees
Vulnerability scannersSearch for known weaknessesReconnaissance against you

Each type has its own signals and its own cost of being wrong, which is why they are documented separately.

Why detection is probabilistic

Accept this first: it decides which methods are appropriate.

Nothing in a request proves it came from a person. Every characteristic a browser announces can be reproduced, every timing pattern can be varied, and every source address can be changed. What remains is evidence rather than proof: behaviour across many requests, consistency between what a client claims and how it acts, and whether a source has a history.

The consequence is that decisions are made under uncertainty. A method's value is therefore not only how much automation it identifies, but what it costs when it is wrong, and those two frequently point in opposite directions.

ARRIVING REQUESTS SIGNAL FIRED OF THOSE, STILL A CUSTOMER OR YOUR OWN JOB
// a signal is evidence, not proof — the set it selects is not the set you meant

The cost of being wrong

Every blocking decision has a failure mode on each side, and they are not symmetrical.

Blocking a customer loses a sale and, more expensively, a person who now believes your site is broken. They do not file a report. They leave, and nothing in your logs records what did not happen.

Blocking legitimate automation is quieter and often worse. Search crawlers stop indexing, monitoring stops reporting, payment callbacks stop arriving, and integrations partners depend on fail silently. Each of these surfaces days or weeks later, disconnected from the change that caused it.

Allowing harmful automation costs whatever that type takes, which is usually gradual rather than catastrophic.

The asymmetry explains the shape of every recommendation in this material: prefer measures that ask rather than refuse, prefer measures that expire, and know what legitimate automation calls you before enforcing anything.

MISTAKE WHEN YOU FIND OUT NOW DAYS NEVER Blocked a customer Blocked your own automation Allowed harmful automation
// the quietest failure is the one with no moment to point at

Before you block anything

Two pieces of preparation make everything afterwards safer.

Inventory your own automation. Monitoring, uptime checks, payment callbacks, partner integrations, internal jobs, and anything a colleague built years ago. Each looks exactly like the traffic you are about to block: no browser, no session, regular timing.

Give expected automation identity. A credential or a key ties access to a known party, which survives address changes and lets you exempt it deliberately rather than by accident. Guessing from addresses fails the first time a provider renumbers.

Where the damage actually appears

Bot traffic rarely announces itself as an availability problem, which is why it runs for a long time before anyone investigates.

In your costs. Bandwidth, database load, and capacity provisioned for traffic that never buys anything. The bill grows smoothly, so it reads as success rather than as a problem.

In your data. Analytics that include automation describe a customer base that does not exist. Decisions get made on those numbers, which makes this the most expensive quiet failure in the list.

In your customers' experience. Inventory that is never available, forms full of spam, and accounts whose owners are locked out. None of these appears in an uptime graph, and all of them are visible to the people you depend on.

That is the argument for treating this as ordinary operational work rather than as an incident response. The costs accumulate instead of arriving.

Methods, ordered by what they cost when wrong

Instructions for well-behaved automation are a courtesy, not a control: they work only for automation that chooses to read them. Useful for managing load from cooperative crawlers, worthless against anything hostile.

Identification by what a client claims to be is trivially bypassed, since the claim is set by the client. It removes lazy automation and nothing else.

Reputation of the source carries useful signal and misfires on shared addresses, which is common on mobile networks and behind corporate egress.

Behavioural analysis looks at what a client does across requests rather than at what it declares, and it is the most reliable signal available, at the cost of needing enough requests to judge.

Challenges ask the client to do something automation finds expensive, and they are the safest measure at low confidence, because a customer who passes is inconvenienced rather than refused.

Handling this as part of the stack

Bridge WAF takes a narrower slice of this than the list above, and says so: bot classification works on declared identity — the first and weakest of the five signals — and rate limiting is applied per domain. Matches are recorded in the activity log, so monitor mode shows what enforcement would have refused before anything is refused; reputation scoring and behavioural analysis are not part of this layer. What no system removes is the judgement about which automation you want, which is why the inventory above comes first. See what the platform offers at Bridge CDN.

Questions

What counts as a malicious bot?

Automation that takes something from you, conceals what it is, or ignores limits you published. The distinction is behaviour rather than being automated at all, because most of the automation reaching your site is either yours, a partner's, or something you would be worse off without.

Should I block all bots?

No, and the reason is the failure mode. Search crawlers, monitoring, payment callbacks, and partner integrations are automation you depend on, and when a rule catches them nothing reports it: the callback simply stops arriving and the fault surfaces days later as a business problem.

Can I reliably tell bots from people?

No method proves it, and treating any signal as proof is where most damage begins. Decisions rest on evidence accumulated across many requests, which means every decision carries a probability of being wrong, and the cost of being wrong should shape how forceful the response is.

What is the cheapest first step?

Writing down the automation that legitimately calls you, and giving each entry an identity of its own so it can be exempted deliberately rather than by accident. This costs nothing, has to happen eventually, and is what stops the first enforcement attempt from breaking something.

Do robots instructions stop bad bots?

No. They are a convention honoured only by automation that chooses to honour it, which is precisely the automation you were not worried about. Listing sensitive paths there also announces those paths to anything reading the file for the opposite purpose.

Which measure is safest when uncertain?

A challenge, because its failure mode is survivable. A customer who is challenged and passes has been mildly inconvenienced and is still a customer; a customer who is blocked is gone, usually without ever telling you why, and usually without trying again.

Where the platform sits

Start by watching. The measure whose failure mode you can survive is the one to reach for while confidence is low.

off

Inspection does not run. Traffic reaches your origin as it otherwise would.

monitor

Requests are inspected and matches recorded. Nothing is refused while you watch.

block

Matching requests are refused rather than forwarded, and still recorded.

The firewall layer is included with Bridge CDN. Start in monitor: nothing is refused until you decide it should be.

Get started