Every server with port 80/443 open has thousands of hits a day from random boxes looking for wordpress login pages. The only <i>new</i> thing is that they're pretending to be a different type of annoying bot. There's a new layer of sophistication and subterfuge, but it's the same junk traffic we've always dealt with.
Think about how many webmaster and business owners' egos are stroked by all the traffic they are getting, when in actuality they are often just serving thousands of bots.
I was insulted recently reading about the apparently thousands of hits per second the rest of you guys are getting. Even the bots are shunning me!
Humans never visit but I have some websites with ancient cms's. When I got bored playing with them I download the html, change the extensions to php and replace the site with a static copy. People then tirelessly try to hack it since they have laundry lists of known vulnerabilities. (Now that I think about it I regret not making the admin area public for added nostalgia.)
yeah someone told me he had a single static HTML homepage and used up his entire 10TB/month traffic limit from bots hitting it.
I never had this issue really… until two years ago, new website new host… boom, hugged to death by thousands of bots per second. This is on an alicloud vps.
Get a letsencrypt cert, I always get a massive wave of vulnerability probers after renewing.
It's all TLS certs, because they show up in the Transparency Log[1]<p>You can watch a live stream of it here: <a href="https://bencevans.io/security/certificate-stream" rel="nofollow">https://bencevans.io/security/certificate-stream</a><p>[1] <a href="https://en.wikipedia.org/wiki/Certificate_Transparency" rel="nofollow">https://en.wikipedia.org/wiki/Certificate_Transparency</a>
I use subdomains and a wildcard cert to partly obfuscate this.
When I stood up some sites last year, I used codenames for the subdomains thinking I was obfuscating a little. I didn't know about the transparency logs until months later.
On one hand yes, but on the other hand just configuring your server to refuse connections by IP address rather than server name seemed to drop roughly half the bots I ever see.
Yeah... you have to remember to setup and fully secure the site <i>before</i> LE certs are issued or you're going to have a bad time. Learned that the hard way when I popped a couple dozen wordpress sites in one go.
Because your certificate shows up in the global chain, which triggers all kinds of automated things including bots
Could be because of number of pages you have. At work we have several million public content pages, so a few badly behaving bots can already do a lot of damage.<p>For my personal website it’s 10x more bots but I barely notice because it’s a few pages.
I don't even have a domain name and I'm getting lots of hits.
I recently brought up a website on a never-before-seen .com domain. Within about 10 mins of bringing it up with a SSL certificate, Anthropic came knocking on the door requesting the front page. (Almost certainty due to them watching the Public Certificate Transparency logs)
Had a bit setup a new Wordpress install before I could lock it down. I was very confused why a brand new install didn’t give me the setup page before seeing in the logs someone had automated it. Pure evil to be scraping new renewals and dns changes to look for this kinda stuff.<p>For the record I thought I had this site behind basic auth.
How do you know who's visiting? Reverse IP lookups? Or do they announce it in the headers?
Old and busted: serverless<p>New hotness: DNS-less
Is that basically the delta between Cloudflare’s Pages analytics and Google Analytics? CF says I get thousands of visits a day and GA says it’s like 3-4 users.
imagine having a KPI tied to cash bonuses based on that...
I don’t really have a reason to use WordPress anymore. I’m about halfway through switching my site over to something else that I can control with github and AI. Now these boats are mostly getting static files unless there’s a reason to show something else and even then the footprint is very small. There’s just not that much to hack.
I am always surprised that its considered legal.
IMO that's the same as going on the street door by door and checking if one is left open to steal everything inside the house...
That sort of vulnerability scanning is at best legally dubious, and almost certainly illegal under CFAA and similar state statues when there's clear criminal intent. That's why the 2022 DOJ guidance regarding non-prosecution good faith security research was such a big deal at the time.<p><i>> IMO that's the same as going on the street door by door and checking if one is left open to steal everything inside the house...</i><p>From experience: this does happen regularly in some neighborhoods of some cities in the US, and even <i>that</i> isn't always an enforcement priority. So lack of enforcement on the internet, where most the perpetrators probably aren't even in a jurisdiction with an extradition treaty, isn't exactly surprising.
Unauthorized access is not legal, it's just not enforced in the slightest.
It's not legal.
Illegal and actively enforced are different things. Report it to the hosting company originating the abuse and they usually don't care.
Yeah, It started bothering me enough that I recently put together a system where when a application detects a bad actor(a bot enumerating too fast, a random scan for vulnerabilities, etc) it notifies the firewall. Right now I am just shutting them down, But have plans for a honeypot/tarpit system, something real slow that takes up all their time. Something like "have fun at 300 baud"
I'm doing the same thing. Set up a honeypot API and having it log everything anything tries to access outside that home page. Collected 15,000 hits in a week from 300 unique IPs doing the usual WordPress and .env scans.<p>I'm just collecting the data now to be used to secure some of my upcoming projects, but I would absolutely also like to take it in a direction where it sends the bots into an infinite slow loop, or preferably something that burns as many tokens as possible for them.<p>I don't really care about the morality of that. I'm a big fan of fighting fire with fire.
> something real slow that takes up all their time<p>Not to throw water on your plan, but the bots I've written intentionally run very slow with respect to each target. When done in parallel, across a wide range of targets, it doesn't slow down the effort at all.
Serve them a zip bomb? LLM poison text?
Exactly this. It's no different from a bot pretending to be Googlebot. I've tried reporting abusive IPs to various foreign hosts, but nothing every comes to it. I've settled for just blacklisting excessively abusive IP ranges.
Opening port 80 and realizing the world is an anarchic warzone is a canonic rite of initiation for otherwise innocent backend devs and sysadmins.
This is so true. Every junior sysadmin I have trained over the years (including myself) has had a “are we being attacked?!” moment when tasked with WAF report analysis, monitoring fail2ban logs, etc.<p>Monitoring WAN traffic really gets the paranoia juices flowing.
I remember when you could stand up a website and no bots would scrape it or scan it. It was a lovely time. No one had firewalls or antivirus and things were working fine until the worms and viruses started coming. You could be confident that your guests were real, so much so we had guest counters on many public sites.
Remember when you had to submit a request for google to scan your site?
You still can.<p>Just build your website yourself as deep in the stack as you can instead of piling up 50 abstractions on top of each other. Some decisions like having your page be accessible by IP can only happen if you use technology like generic http servers (like apache or nginx) from the 2000s instead of implementing the lower stacks and actually thinking about whether that makes sense for a second.<p>If when you build a website or a backend, your server responds to requests by IP address (for example), you are building a bottom 90% product, and considering most software markets are super top-heavy, (say 1% win), that's ngmi land.
Most servers with port 25565 open get hits from either Minecraft griefer bots, or from a bot that looks for that port and warns anyone on that server about the risks of leaving that port open. It doesn't take a huge scale operation to spam every IPv4 address in the world, there are only 2^32 of them, and even then many of those addresses are reserved.
Another interesting thing here is the paths they're targeting, many are for newish AI coding tools
People or their agents must be accidentally committing or publishing their repository level secrets and configs with enough regularity that it’s worth scanning.
There are a few novel ones but I’ve been seeing most of them in my logs for longer than generative AI has existed. This isn’t remotely new, the vector is just getting bigger.
[dead]
On average about 100 (TCP) requests hit my home router per minute doing various probing and scanning. Lots of checking for the telnet port obviously. Sometimes you can see a swarm of entirely different IPs scanning the full port range (probing the ports one-by-one).<p>You'll see a lot of deepfield, censys-scanner, visionheight.com, shadowserver.io, etc., but also the usual suspects of Chinese or Russian IPs.<p>With OpenWRT I use something like this: `tcpdump -i pppoe-wan 'inbound and tcp[tcpflags] & (tcp-syn|tcp-ack) == tcp-syn'`, or alternatively `tcpdump -i pppoe-wan 'inbound and tcp[tcpflags] & (tcp-syn|tcp-ack) == tcp-syn and not port 44000'`, if we have some torrent client running (e.g. here at port 44000) which would mess up the result. I'm not sure it's the best way to handle this, but it's definitely enlightening what bounces off on the router.
The easiest way to deal with the usual suspects is to just block the entire countries network range(s). There really is no reason they should be connecting to your home router anyway, and you lose nothing from blocking them.<p>Sure their packets will still hit your router, but if they are dropped immediately at least you're not wasting a syn-ack on them.
I, temporarly, banned some ip range.
I didn't find a source for pinpointing countries; though I am interested. Could you point me to some sources which, deterministically, resolve to some countries? To my knowledge you can not reliably identify countries by ip since this would be dependent on DNS servers. Though I am just a application programmer!<p>Thanks in advance.
Your router doesn't care about their DNS settings. IP addresses are very easy to tie back to countries. The reason they say it's not reliable is because it's trivial to spoof the country, but even so, a lot of attackers don't even bother. It's sort of like the Nigerian prince scam calls: if you're wise enough to block Russia, you're not worth their time.<p>Your firewall vendor should supply you with country lists, just select the known bad ones and drop their traffic. If you have a consumer grade router, you will probably have to configure the blocklists manually.
> The reason they say it's not reliable is because it's trivial to spoof the country<p>ISPs sometimes do trade IPv4 blocks and countries to which it belongs do change occasionally. That can become a problem if you were like literally Netflix and someone few nation states over started an ISP.
I wonder if adding the US is now sensible.
Almost all spam traffic comes from the US, it's not even close. But for many people so does much of their human traffic.
Unless you're serving something, you should probably drop <i>all</i> incoming requests. If you are serving something, the US is a pretty big market to lock yourself out of.
Getting it directly from IANA is always the best approach.<p>Here is a "simplified" version in various formats.<p><a href="https://github.com/HotCakeX/Official-IANA-IP-blocks" rel="nofollow">https://github.com/HotCakeX/Official-IANA-IP-blocks</a>
Routers got such a thing build in nowadays, just gotta enable it (not the ones from your ISP of course)
I have ubiquity UniFi for this reason (amongst others). OpenWRT is a good choice as well. Most home router software is such junk, might as well leave the door open..
I can corroborate visionheight and shadowserver from my firewall logs.
This is one reason I don’t mind that I’m behind CGNAT.
fail2ban?
Mass automated vulnerability scans have been a very common thing since years before the advent of this in 2001:<p><a href="https://en.wikipedia.org/wiki/Code_Red_(computer_worm)" rel="nofollow">https://en.wikipedia.org/wiki/Code_Red_(computer_worm)</a><p>I remember when 'code red' spread and it had the effect of crapping up the contents of my apache server logs. Fun times.<p>such as:<p>GET /default.ida?NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN%u9090%u6858%ucbd3%u7801%u9090%u6858%ucbd3%u7801%u9090%u6858%ucbd3%u7801%u9090%u9090%u8190%u00c3%u0003%u8b00%u531b%u53ff%u0078%u0000%u00=a HTTP/1.0
Many of those user-agents listed are often faked. Look up which ASN owns their IP. If I block most VPS providers most of the faked bots vanish. There are still some running from residential and phones using hijacked code <i>(readers that are not really just readers but really multipurpose proxies)</i>. On that note, do not trust the linked source code but rather decompile the live code your phone is running and have AI analyze it.
I did just this. Using a $2k a year database from a smaller provider that isn't maxmind, claude and I built a pretty slick ASN based categorization system. I can categorize an ASN as a residential IP, a service provider, a legit crawler/scraper, etc. For anything that is suspicious, I dynamically use turnstile to gate access to our service. Turns out there's no ISP for any VPN, they just contract with a shitload of mom and pop shady colocation services across the world.<p>We collect signals that help determine good vs bad networks. For example, large amounts of requests to .php endpoints, large amounts of empty accounts from the same /24 subnet, etc etc. All these signals let us automatically determine risk, and then put up a challenge. Authenticated users never see the challenge even if they are on a risky network (VPN 99.9% of the time), unless the network has been identified as 100% malicious, then it gets a full block.<p>Here's a small snapshot of the dashboard:<p><a href="https://cos.ridewithgps.com/screenshots/6a7c54d0-12Aug26-358916819.png" rel="nofollow">https://cos.ridewithgps.com/screenshots/6a7c54d0-12Aug26-358...</a><p>This was probably a total of 3-4 days of work, spread out over a couple months of iterative claude led hacking. I didn't know exactly what to build, but had some of the key architectural ideas in my head. Opus+Faable made easy work of it all, and ended up guiding some really slick improvements for performance.<p>I would say this has dropped about 20% of all traffic to our service, though it turns out turnstile is a massive target for bots, so replacing that with something custom is next on the list.
Contracting with their colocation facilities is exactly how that's supposed to work. If you don't actually operate a wide area network then you aren't supposed to be registered in these databases and have IP blocks. The exception is people who do anycast, but VPN companies don't.<p>You know all these guys just switch to residential proxies if they detect a site is blocking data centers, right? Because that's a very common thing to do.
Is there an easy way to block any requests originating from VPS etc instead of residential/commercial IP from legitimate users ? I know cloudflare does a few things but I really want to figure out a way to block any request say at nginx or caddy (reverse proxy) from reaching origin servers if they are not from an IP that is not a VPS etc.
I run an open source honeypot that collects these botnet scans and produces blocklists.<p>Blocklist download and configuration: <a href="https://knock-knock.net/blocklist" rel="nofollow">https://knock-knock.net/blocklist</a><p>Honeypot dashboard, where you can see attempted attacks in realtime: <a href="http://knock-knock.net" rel="nofollow">http://knock-knock.net</a><p>API: <a href="http://knock-knock.net/api" rel="nofollow">http://knock-knock.net/api</a>
Cool site. I was curious and dropped your 100k list into a reverse DNS lookup site [1]. They may still have some of the records cached. I recognized quite a few of the scanner nodes and some other usual suspects.<p>[1] - <a href="https://adver.tools/reverse-dns-lookup/" rel="nofollow">https://adver.tools/reverse-dns-lookup/</a>
Yeah, that’s pretty interesting! You can also see a live view of the ASN/ISP leaderboard by going to <a href="https://knock-knock.net" rel="nofollow">https://knock-knock.net</a> and choosing ISP from the carousel. That’s ordered by bot transaction count rather than IP count though.<p>It never ceases to amaze me that these ISPs don’t bother to shut down the botnets. They could do so very easily. For example, they could identify the IP address of every bot that hit this honeypot with their ASN with one API call: https://api.knock-knock.net/check-asn?asn=<asn number>. (See <a href="https://knock-knock.net/api" rel="nofollow">https://knock-knock.net/api</a>). They just don’t care!
The ISP's do not have a financial incentive to shut them down. To them that's a paying customer. The feds will go after the big botnets if they are touching financial networks or siphoning enough money from people because there is usually a few big bank accounts and virtual currency exchange accounts they can seize once big enough to look good in the media. That's why it's on us and a few big CDN's to block some of them.
What if I have a slimy TV box or nasty on my phone, living on my network?<p>You take IP down, you kill the cancer but you also end up killing the patient.
Better yet, it's the only CGNAT address for a little town in Brazil. You just banned an entire town from your site.
Nothing wrong with contacting the customer, and taking down the IP briefly until the customer can deal with their malware hosting toaster.<p>However, I can see the argument for giving the customer 24-48 hours to resolve the problem.
Not the person you are asking but site operators can not tell intent. It could be something nasty on the network or a botter feigning ignorance.<p>I'd say its probably an acceptable casualty in the battleground that is the internet especially for little one-off sites hosting blogs, forums, chat servers, etc... For a bigger site I would expect that person may have to open a ticket with the platform such as Amazon accepting that some CDN's and firewalls may be harder to get the block removed. This is why we can't have nice things.
thats the hard part, right - my 76 year old dad is on his banking app while his samsung TV is allowing a bot to try and take over other accounts at the same bank on the same IP.<p>IP Blacklists, no matter how good can't stop this. You have to start using stats or deep-diving telemetry.<p><a href="https://darknetdiaries.com/episode/172/" rel="nofollow">https://darknetdiaries.com/episode/172/</a>
<i>thats the hard part, right - my 76 year old dad is on his banking app while his samsung TV is allowing a bot to try and take over other accounts at the same bank on the same IP.</i><p>So appeal to emotion doesn't fly with me. If grandpa is 76 in the year of our lord 2026 that means he was 50 when the internet was getting popular and 59 when cell phones became very popular on the internet. He's not much older than I. He knows what's up.<p>God help the makers of that television if he finds out it has been spying on him and dorking around with his traffic. If they are lucky he will just take a baseball bat to it. If they are unlucky he will fly to their headquarters and end up on a viral bodycam video likely with a lot of supporters that will bail him out of jail.<p><i>IP Blacklists, no matter how good can't stop this. You have to start using stats or deep-diving telemetry.</i><p>I use a myriad of methods including IP blacklists. That's my choice and every site operators choice. I do not have to use deep-diving telemetry but you are free to do so.
This looks cool, where can I find the source?
Thank you for sharing. I will take a look.
No, because the bad guys use residential proxies if you block DCs. They just prefer not to because it's more expensive. Meanwhile that silly HN project that scrapes and reformats your site is now dead before it began. Who are you actually defending and from what?
There are several methods. [1] The most aggressive <i>method-02 and method-03</i> on my document will block VPS and some data-centers but that also means it will block some legit users that are on a VPN. Most VPNs transit a data-center. If experimenting with these methods use a test server that you do not care about and set up a dummy site and ask people in your circle of friends to test it. I have to step away for a bit but if you have questions I will try to answer.<p>[1] - <a href="https://nochan.net/b/Internet-Crap/20260606-How-To-Block-Some-Of-The-Bots/" rel="nofollow">https://nochan.net/b/Internet-Crap/20260606-How-To-Block-Som...</a>
Your site does not currently seem to be reachable / responsive when I try to reach it from a US Comcast IPv4 address - you are not advertising IPv6.<p>Edit / Update: It was Apple's Private browsing mode that causes it not to respond. I can now see it when this is disabled.
Per your link...<p>> block http 1.1, real users only use 2.0<p>Chrome on android and Firefox on linux both appear to use 1.1 still...
By default they use 2.0 [1] unless someone or an addon disables it or unless the person is on a really old version. OperaMini however will use 1.1. No idea if anyone here uses OperaMini.<p>There are some reader apps that act as a proxy that only support http/1.1. Be careful, some of those are not just readers and do not trust what they claim to be the source code. Some of them are created by cute and fuzzy bunnies.<p>There are a number of botters on HN, some that control residential and phone browser-hijacked systems. One was sending me playful messages the other day. I enjoyed the bot block-jousting with them.<p>[1] - <a href="https://caniuse.com/http2" rel="nofollow">https://caniuse.com/http2</a>
> /commercial IP from legitimate users<p>No, because legitimate users do not just use residential and "commercial" IPs. Like me, right now
Yes but it’s not cheap. Maxmind and ipinfo etc sell a tier that tells you this information, then you can 403 based on it.
But the price is nuts like $40,000 a year.
See my comment in the parent - there are cheaper options, don't use maxmind!
Open source works just fine for this - take a look at geoacumen-country<p><a href="https://github.com/geoacumen/geoacumen-country" rel="nofollow">https://github.com/geoacumen/geoacumen-country</a>
I work for IPinfo. We offer IPinfo Lite for free. With a little bit of time in identifying the ASNs, you can implement a decent way to block a good number of bots fairly easily using the free data alone.
You don't need to spend anywhere near $40k a year to get that info... You don't even need to spend $1
Focsec.com IP database for offline use (datacenters, VPNs, proxies, bots) runs around $1k/month for internal-only use.
Yeah, that's exactly what these visits are: faked user agents that fail IP verification or Web Bot Auth. What's interesting is the surge across so many websites in the last week.
Same for the origin IP address. The fiber leaving your country is tapped, and those people can inject packets with any origin IP that they want. Your ISP has no way to check if their peer actually received a certain packet from a certain country or not.<p>From a technical perspective, all this "china/russia" attribution is built on a quite shaky foundation. As a sysadmin you'd never know if it would be the British crown attacking your European company instead.<p>Not minimizing nation state cyber crime here, but the packet goes through many hands with different incentives.
Problem here is there are not single fibers attaching (most) countries, but a bunch of them. If you control both the ingress and egress for some particular users it's possible, but if you don't then your probing packing may end up back in China with a lot of evidence of backscatter.
Very similar experience here. Started July 30, sustained through August 6, when it started a significant ramp-up in volume (5x or so).<p>Most of the traffic is originating in GCP. We're seeing ~70k req/min sustained from Google Cloud IP space (AS396982). Reported to GCP Abuse, they've been non-responsive so far.<p>The main distinguishing factor is the reuse of a bunch of legit AI-training bot UserAgent strings. It's clear that the traffic is under the same centralized control because of how it changes volume across thousands of IP addresses simultaneously.
I'm not sure what to blame yet, but here's traffic on a tiny side site, all from JS-capable clients: <a href="https://i.imgur.com/tdexrEI.png" rel="nofollow">https://i.imgur.com/tdexrEI.png</a>
Fork found in kitchen. This is nothing new. Don't have mass vulnerabilities and you have nothing to fear from mass vulnerability scanners.
Why would you voluntarily pretend to be a AI bot, when those have already a much higher chance of being blocked? Seems holly unproductive.<p>Best hypothesis I can come up with is to somehow make the AI companies look bad, but they seem to be doing an excellent job at that themselves already by scraping everyone hundreds of times per hour over and over.
Because businesses dont want them blocked, that would be a very stupid thing for most of them to do given its becoming a vital traffic source now that people are using chatbots instead of google.
Googlebot and other web scrapers are how you get visible, how you get adwords, ways to boost your traffic, etc.<p>bots hitting your site aren't problems per se
Most websites don't have an incentive to block AI bots to their main sites. Think businesses, government and community websites, nonprofits, etc.
I recently blogged about some Cloudflare Workers I developed to combat this type of traffic: <a href="https://code.backwater.systems/blog/#2026-06-29T23:40:00.000Z" rel="nofollow">https://code.backwater.systems/blog/#2026-06-29T23:40:00.000...</a>
Fake Googlebot visits are #1 in website logs I've been working on. At the beginning I was fighting with them using Cloudflare ASN block rules or their managed Bot Fight mode but it appeared to be not only pointless, but also harmful for my websites.
Bot Fight mode randomly started blocking real Bing / Google / OpenAI crawlers what wasted crawling budget and discouraged crawlers to revisit updated pages.<p>Sometimes it's better to not fight with bots actively but harden environment and only react for the worst offenders.
Just in case any of the authors read HN, I'm getting a pretty crazy rendering bug on this page, where a bunch of the contents are redrawing up and down by a few pixels. It seemed to go away with resizing the width a few times, but I didn't look into it too hard. My page width was probably small on first draw. Incredibly distracting though and hard to read with the text moving. Using latest chrome, and it occurred on more than one page refresh. I didn't dig in beyond that though.
Interesting thought: what if the idea of an open internet is over.<p>What if we're now moving into a world of strictly KYC. The same way "The Facebook" generated massive revenue by creating a KYC world.
Why would some of these ignore robots.txt <i>some</i> of the time?
How about them apples... ai bots use faked browser user agents, so people start pretending to be ai instead...
Someone is <i>always</i> running mass vulnerability scans. That's a "water is wet" state of the Internet.
Definitely, the point here though is there is a stat sig surge in the chart in the last week, across thousands of websites. At least a surge in this particular spoofing pattern.
I think this is more of a "if you left your AI tools exposed someone is looking for them" change. Hacking someone else's agents sounds like a great way to spend less on your own tokens.
[dead]
Man, this "someone" guy sounds like a real jerk!
Sorry, my bad.
No Small Actors.
Or some thing!
Looks like Google has started rolling out this Web Bot Auth thing which seems like something that should gain adoption or become an open standard. <a href="https://developers.google.com/crawling/docs/crawlers-fetchers/web-bot-auth" rel="nofollow">https://developers.google.com/crawling/docs/crawlers-fetcher...</a><p>Seems like the crawler companies would be incentivized to not want to take responsibility for people spoofing their user agents.
This kind of stuff is getting pretty wild, even for using something like Cloudflare it seems like a good idea to have another layer behind it that's non-cloudflare for when vulnerabilities are discovered.
[dead]