Skip to content

Commit 83a83e9

Browse files
authored
feat(blog): a short post on how to file abuse reports (#1230)
* feat(blog): add blogpost on how to file abuse reports Signed-off-by: Xe Iaso <me@xeiaso.net> * fix(blog/abuse-reports): fix some wording to read a bit more professionally Signed-off-by: Xe Iaso <me@xeiaso.net> * Update metadata check-spelling run (push) for Xe/blog/abuse-reports Signed-off-by: check-spelling-bot <check-spelling-bot@users.noreply.github.com> on-behalf-of: @check-spelling <check-spelling-bot@check-spelling.dev> * fix(blog/abuse-reports): minor spelling and grammar fixups Signed-off-by: Xe Iaso <me@xeiaso.net> --------- Signed-off-by: Xe Iaso <me@xeiaso.net> Signed-off-by: check-spelling-bot <check-spelling-bot@users.noreply.github.com>
1 parent 531e1dd commit 83a83e9

File tree

3 files changed

+83
-1
lines changed

3 files changed

+83
-1
lines changed

.github/actions/spelling/expect.txt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ amazonbot
99
anthro
1010
anubis
1111
anubistest
12+
apnic
13+
APNICRANDNETAU
1214
Applebot
1315
archlinux
1416
asnc
@@ -144,6 +146,7 @@ headermap
144146
healthcheck
145147
healthz
146148
hec
149+
helpdesk
147150
Hetzner
148151
hmc
149152
homelab
@@ -162,6 +165,7 @@ Imagesift
162165
imgproxy
163166
impressum
164167
inbox
168+
ingressed
165169
inp
166170
internets
167171
IPTo
@@ -208,6 +212,7 @@ metrix
208212
mimi
209213
Minfilia
210214
mistralai
215+
mnt
211216
Mojeek
212217
mojeekbot
213218
mozilla
@@ -243,6 +248,7 @@ pipefail
243248
pki
244249
podkova
245250
podman
251+
Postgre
246252
poststart
247253
prebaked
248254
privkey
@@ -328,21 +334,22 @@ unifiedjs
328334
unmarshal
329335
unparseable
330336
uvx
331-
uwu
332337
UXP
333338
valkey
334339
Varis
335340
Velen
336341
vendored
337342
vhosts
338343
VKE
344+
VPS
339345
Vultr
340346
weblate
341347
webmaster
342348
webpage
343349
websecure
344350
websites
345351
Webzio
352+
whois
346353
wildbase
347354
withthothmock
348355
wolfbeast
24.4 KB
Loading
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
---
2+
slug: 2025/file-abuse-reports
3+
title: Taking steps to end abusive traffic from cloud providers
4+
description: "Learn how to effectively file abuse reports with cloud providers to stop malicious traffic at its source and protect your services from automated abuse."
5+
authors: [xe]
6+
tags: [abuse, cloud, security, networking]
7+
image: goose-pond.webp
8+
---
9+
10+
![A peaceful goose pond](./goose-pond.webp)
11+
12+
As part of Anubis's ongoing development, I've been working to reduce friction for legitimate users by minimizing unnecessary challenge pages. While this improves the user experience, it can potentially expose services to increased abuse from public cloud infrastructure. To help administrators better protect their services, I want to share my strategies for filing abuse reports with IP space owners, enabling us to address malicious scraping at its source.
13+
14+
{/* truncate */}
15+
16+
In general, there are two kinds of IP addresses:
17+
18+
- Residential IP addresses: IP addresses that are allocated to residential customers such as home internet connections and cellular data plans. These IP addresses are increasingly shared between customers due to technologies like [CGNAT](https://en.wikipedia.org/wiki/Carrier-grade_NAT).
19+
- Commercial IP addresses: IP addresses that are allocated to commercial customers such as cloud providers, VPS providers, root server providers, and other such business to business companies. These IP addresses are almost always statically allocated to one customer for a very long period of time (typically the lifetime of the server unless they are using things like dedicated IP addresses).
20+
21+
In general, filing abuse reports to residential IP addresses is a waste of time. The administrators do appreciate knowing what kinds of abusive traffic is causing grief, but many times the users of those IP addresses don't know that their computer is sending abusive traffic to your services. A lot of malware botnets that used to be used with DDOS for hire services are now being used as residential proxies. Those "free VPN apps" are almost certainly making you pay for your usage by making your computer a zombie in a botnet. At some level I really respect the hustle as they manage to sell other people's bandwidth for rates as ludicrous as $1.00 per gigabyte ingressed and egressed.
22+
23+
:::note
24+
25+
Keep in mind, I'm talking about the things you can find by searching "free VPN", not infrastructure for the public good like the Tor browser or I2P.
26+
27+
:::
28+
29+
What you should really focus on is traffic from commercial IP addresses, such as cloud providers. That's a case where the cloud customer is in direct violation of the acceptable use policy of the provider. Filing abuse reports gets the abuse team of the cloud provider to reach out to that customer and demand corrective action under threat of contractual violence.
30+
31+
## How to make an abuse report
32+
33+
In general, the best abuse reports contain the following information:
34+
35+
- Time of abusive requests.
36+
- IP address, User-Agent header, or other unique identifiers that can help the abuse team educate the customer about their misbehaving infrastructure.
37+
- Does the abusive IP address request robots.txt? If not, be sure to include that information.
38+
- A brief description of the impact to your system such as high system load, pages not rendering, or database system crashes. This helps the provider establish the fact that their customer is causing you measurable harm.
39+
- Context as to what your service is, what it does, and why they should care.
40+
41+
For example, let's say that someone was giving the Anubis docs a series of requests that caused the server to fall over and experience extended downtime. Here's what I would write to the abuse contact:
42+
43+
> Hello,
44+
>
45+
> I have received abusive traffic from one of your customers that has resulted in a denial of service to the users of the Anubis documentation website. Anubis is a web application firewall that administrators use to protect their websites against mass scraping and this documentation website helps administrators get started.
46+
>
47+
> On or about Thursday, October 30th at 04:00 UTC, A flurry of requests from the IP range `127.34.0.0/24` started to hit the `/admin/` routes, which caused unreasonable database load and ended up crashing PostgreSQL. This caused the documentation website to go down for three hours as it happened while the administrators were asleep. Based on logs, this caused 353 distinct users to not be able to load the documentation and the users filed bugs about it.
48+
>
49+
> I have attached the HTTP frontend logs for the abusive requests from your IP range. To protect our systems in the meantime while we perform additional hardening, I have blocked that IP address range in both our IP firewall and web application firewall configuration. Based on these logs, your customer seems to not have requested the standard `robots.txt` file, which includes instructions to deny access to those routes.
50+
>
51+
> Please let me know what other information you need on your end.
52+
>
53+
> Sincerely,
54+
>
55+
> [normal email signature]
56+
57+
Then in order to figure out where to send it, look the IP addresses up in the `whois` database. For example, if you want to find the abuse contact for the IP address `1.1.1.1`, use the [whois command](https://packages.debian.org/sid/whois) to find the abuse contact:
58+
59+
```
60+
$ whois 1.1.1.1 | grep -i abuse
61+
% Abuse contact for '1.1.1.0 - 1.1.1.255' is 'helpdesk@apnic.net'
62+
abuse-c: AA1412-AP
63+
remarks: All Cloudflare abuse reporting can be done via
64+
remarks: resolver-abuse@cloudflare.com
65+
abuse-mailbox: helpdesk@apnic.net
66+
role: ABUSE APNICRANDNETAU
67+
abuse-mailbox: helpdesk@apnic.net
68+
mnt-by: APNIC-ABUSE
69+
```
70+
71+
The abuse contact will be named either `abuse-c` or `abuse-mailbox`. For greatest effect, I suggest including all listed email addresses in your email to the abuse contact.
72+
73+
Once you send your email, you should expect a response within 2 business days at most. If they don't get back to you, please feel free to [contact me](https://xeiaso.net/contact/) so that the default set of Anubis rules can be edited according to patterns I'm seeing across the ecosystem.
74+
75+
Just remember that many cloud providers do not know how bad the scraping problem is. Filing abuse complaints makes it their problem. They don't want it to be their problem.

0 commit comments

Comments
 (0)