@Osman : As you say: The better and the more comprehensive the add on gets and the better the analytics part becomes the more
real-world edge cases naturally surface.
This is not at all a sign of bad quality and very fast release-sequences (as we have seen currently) are a sign of fast reaction. Way better than silence and having to wait for months for a new release.
However: In the meantime IP Threat Monitor has become so comprehensive that it could be helpful to have kind of a manual. What would specifically be helpful for identifying and analyzing potential hickups would be to know the order in which rules are executed. For the moment I assume something like:
whitelist -> blacklist -> ASN-block/challenge -> country-block/challenge -> protected users/search engines -> proxy-check API
To me it seems, that specifically the "protected search engine" mechanism still has some unclear issues. I still suffer from the issue with Baiduspider I mentioned earlier: It is not protected, it comes from China (which is a blocked country) and the ASNs these requests come from are also blocked - yet quite a few get through, even with the latest version, which should not be the case.
I've therefor now reinstated user agent blocking via nginx, so that these get now again filtered out before they reach the application.
Another edge case I see is one specific bot that has been annoying for years:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/601.2.4 (KHTML, like Gecko) Version/9.0.1 Safari/601.2.4 facebookexternalhit/1.1 Facebot Twitterbot/1.0
IP-Threat Manager labels it as "Facebot" and lets it pass. However: In my configuration neither Facebot nor Twitterbot are protected bots
so based on this it should not pass. But it does:
The reason for passing may be that it also labels itself as "facebookexternalhit" which is not listed in IPTM's list of protected bots.
I had however considered this list a whitelist and implicitly assumed every bot not on that list would be getting blocked - but on second thought this is not precisely described, so maybe it is not the case.
When "Protect Search Engine Bots" is enabled, only selected bots will be exempt from rate limiting, ASN blocking, and country filtering. Unselected bots will be evaluated as regular traffic.
So how is the mechanism intended to work? And where does IPTM get the bot-definitions from? It clearly does see more bots than there are in the list and many of them are blocked. On the other hand, after deactivating user agent filtering via the web server, the "known bots" add on does see quite a bunch of bots that seem to reach XF that were filtered out before and that IPTM does not seem to block.
Does it use the user agent as primary source for identifying a bot?
With "Facebot" this may run into issues. This bot is a strange beast anyway as it refers to both, facebook and twitter at the same time and then "facebot", which does sound like Facebook but is not used by them as a bot name as far as I know. Yet still IPTM labels it as "Facebood(Facebot)", which is probably wrong. The bot typically connects from client-ips, not from server ranges, and a little research brought up a lot of confusion about it's background. However: It seems that it is made and used by Apple for rendering URLs for their iMessage System (there is a
medium post from a couple of years ago where someone found this out experimentally). I find it hard to believe that this is a comprehensive explanation b/c this bot pops up far too often for that to be the only usage. And I find it a bit dirty if Apple really uses other companies bot identities for their own bot. Plus it often comes from countries where I don't have users, which makes the iMessage-theory even less likely.
However: The bot is identified most of the time but let through despite it should be blocked, same as with Baiduspider and some other bots, even when they come from countries that have been blocked anyway as here i.e. SG:
So clearly, something seems somewhat fishy regarding the bot protection mechanism.
Regarding the "Facebot" bot there may be another cause that may hit sometimes: Typically, it is embedded in a series of requests from the same IP, using a different user agent. As IPTM does work IP based for the most part it may be the case that this bot piggybacks on existing allowances for an IP sometimes. B/c sometimes it does get challenged, possibly when it comes alone (Germany is set to challenge for guests generally):

However: It should have been blocked anyway...
Other than that I still find some minor labeling issues in the analytics which make it sometimes hard to understand what has happend, even more as due to a lack of a manual it is not always clear what should happen anyway. I.e. here a guest user came via iCloud Private Relay from Germany. Germany as a country is set to "challenge", iCPR is protected. So should this guest be challenged or not, according to the ruleset?
On the other hand I do have connections via iCPR where a guest is not challenged and where a logged in user comes via iCPR thourgh the same ASN but this is only visible in detail view, not in the list view:
I do see requests from Microsoft's ASN (which is blocked) by Bingbot (which is protected) and along some requests by guests:
Detail view shows: These requests are labeled as "BingBot" in detail view, but not in list view. And from experience they are indeed requests by Bingbot, despite the user agent string does not state this:
These labeling things are all minor issues, but can make life somewhat confusing sometimes.