The bot problem: why malicious traffic is so hard to spot

If you run a website of any real size, you already know the internet isn’t just people. Somewhere between a third and half of all web traffic today isn’t human at all — it’s bots. Some of those bots are helpful (search engine crawlers, uptime monitors, RSS readers). A large and growing share are not: scrapers stealing content, credential-stuffing scripts trying stolen passwords, comment spammers, inventory hoarders, and crawlers built specifically to feed AI training pipelines without permission.

The frustrating part isn’t knowing bots exist. It’s telling the bad ones apart from everything else — including your real visitors — without breaking your site in the process.

Bots don’t look like bots anymore

A decade ago, bad bots were easy to spot. They hit your server in a tight burst, used an obviously fake user-agent string like python-requests/2.1, ignored robots.txt, and disappeared as fast as they arrived. Blocking them was a matter of a few firewall rules.

That era is over. Modern malicious bots are built to look exactly like ordinary browser traffic:

  • Real browser fingerprints. Tools like headless Chrome or Playwright render JavaScript, execute cookies, and generate the same TLS handshake as a genuine visitor.
  • Legitimate-looking user-agents. Bots now claim to be the latest version of Chrome on Windows, Safari on an iPhone, or Googlebot itself — and increasingly, that claim is hard to disprove.
  • Residential IP addresses. Instead of running from a data center block that’s trivial to blacklist, bad actors route traffic through compromised home routers and mobile devices via residential proxy networks. To your server, the request comes from a home internet connection in Ohio, indistinguishable from a real customer.
  • Human-like pacing. Rather than hammering a page hundreds of times a second, well-built bots space out requests, randomize mouse movement and scroll behavior, and rotate through IPs so no single address ever looks suspicious on its own.

The result is that the signals administrators used to rely on — user-agent strings, request bursts, obviously foreign IP ranges — have largely stopped working as reliable filters.

Why the usual defenses fall short

Rate limiting punishes real users too. If you throttle by IP address, you catch some bots — but you also catch every visitor behind a shared corporate or campus NAT, plus mobile users who get reassigned IPs mid-session. Set the threshold too tight and you’re blocking your own audience. Set it too loose and it does nothing.

CAPTCHAs are losing their edge. Machine learning models now solve image and text CAPTCHAs at rates competitive with humans, and CAPTCHA-solving services exist specifically to farm out the ones that resist automation to real people for a few cents each. Meanwhile, every CAPTCHA you add is friction for a legitimate visitor who just wanted to read an article or place an order.

Behavioral analysis is a moving target. Watching for “too fast,” “too regular,” or “no mouse movement” worked when bot authors weren’t trying very hard. Today’s scraping frameworks specifically simulate jitter, dwell time, and scroll patterns because they’re built by people who read the same fraud-detection literature the defenders do. It’s an arms race, and the bot side gets to study your defenses in public.

Good bots and bad bots share infrastructure. A crawler collecting your prices for a competitor’s price-comparison tool and a crawler indexing your site for a legitimate search engine can use nearly identical technical fingerprints. Blocking one class often risks blocking the other, and getting it wrong has real costs — either your site vanishes from search results, or you keep bleeding data to scrapers.

Volume creates its own cover. On a busy site, malicious traffic doesn’t need to be a huge percentage of total requests to do damage — credential-stuffing attacks, content scraping, and fake account creation can hide inside normal traffic noise. Reviewing logs by hand to catch a few thousand bad requests scattered across millions of legitimate ones just isn’t practical for a small team.

What actually helps

There’s no single fix, but a few approaches meaningfully shift the odds:

  • Layered, adaptive detection — combining IP reputation, TLS/JA3 fingerprinting, request-header consistency checks, and behavioral scoring — rather than any one signal alone. Bots can fake one signal convincingly; faking all of them simultaneously, consistently, at scale, is harder.
  • Honeypot techniques, like invisible form fields or links that only a scripted crawler would follow, still catch a surprising number of less sophisticated bots without bothering real users at all.
  • Treating detection as ongoing, not solved. Rules that worked last quarter degrade as bot operators adapt. Logs need periodic review, not a one-time configuration.
  • Accepting some false negatives. Chasing every bot to zero usually means annoying real visitors more than it stops determined attackers. The realistic goal is raising the cost of scraping or abusing your site high enough that most operators move on to an easier target.

The bigger picture

Malicious bots are hard to identify for the same reason phishing emails are hard to filter perfectly: the people building them are actively studying the defenses and iterating against them. It’s not a puzzle with a final answer — it’s a continuous back-and-forth where yesterday’s reliable signal is tomorrow’s easily-spoofed checkbox.

For site administrators, that means the goal isn’t a perfect bot-free server. It’s building enough layered friction that automated abuse becomes expensive and inconvenient, while keeping the front door open for the humans the site actually exists for.

Leave a Comment

Licensed under CC BY-NC 4.0

DevOps viewpoints are those of its owner. You may share and adapt this article for non-commercial purposes, provided proper attribution is given. Attribution should include:

Title: The bot problem: why malicious traffic is so hard to spot
Author: peter arthur martin
Original URL: https://www.woodcentral.com/-/peter/the-bot-problem-why-malicious-traffic-is-so-hard-to-spot/
License: CC BY-NC 4.0

Site Index

👍 This page answered my questions

Your vote helps other woodworkers quickly find the answers and techniques that actually work in the shop.