[tor-relays] DoS attacks -- status update

Georg Koppen gk at torproject.org
Fri Oct 28 15:06:47 UTC 2022


Hello everyone!

It's been a while since we last provided some update on this mailing 
list about our ongoing work fighting several DoS attacks.

We can use the attached graph about detected overload over the last 
couple of months to show what is going on and what we do/plan to do 
about it.

The first noteworthy incident on that graph is the sharp rise in 
overloaded non-exit nodes since the middle of July caused by a drop of 
onionskins[1] which the relay's available CPU/memory can't handle 
anymore. There are currently two ideas we are working on to cope with 
such a flood of onionskins:

1. Developing a Proof of Work (PoW) system to has a rate-limitation knob 
rejecting the load of onionskins while letting legitimate ones 
through.[2] We still need to solve some design issues (feel free to 
help!) but hope to have that feature integrated into Tor soon.

2. Relay operators started to experiment with iptables/nftables rules 
and having the right ones available might be a good stopgap approach 
against the onionskin related DoS. We are coordinating that effort[3], 
so we have something available to propose to the wider community, which 
is kept up-to-date and limits the risks of traffic overblocking. Feel 
free to help as well with that effort.

The other noteworthy incident started around September 13 when exit 
nodes began to get overloaded (while the other DoS was and is still 
ongoing). Unfortunately, that exit related DoS is heavily impacting our 
users' experience as can be seen in our OnionPerf data[4]. While we are 
still investigating the nature of that DoS attack it turns out that 
blocking particular IP addresses with ExitPolicy rules seems to help on 
exit nodes this is tested on. The Artikel10 exit node operators provided 
even a script recently[5] to help with that (much appreciated, thanks!). 
This approach is highly experimental at this point and it might help us 
at least to come up with an actual design idea to counter that 
particular exit DoS.

Thanks,
Georg

[1] For information about overload in general and what "drop of 
onionskins" means, see: 
https://support.torproject.org/relay-operators/#relay-bridge-overloaded. 
It contains as well a guide on how to enable MetricsPort monitoring 
yourself so you see the actual metrics of your own relay.
[2] https://gitlab.torproject.org/tpo/core/tor/-/issues/40634
[3] https://gitlab.torproject.org/tpo/community/support/-/issues/40093
[4] https://metrics.torproject.org/torperf.html
[5] 
https://lists.torproject.org/pipermail/tor-relays/2022-October/020848.html
-------------- next part --------------
A non-text attachment was scrubbed...
Name: overload-general-relays-0510-1027.png
Type: image/png
Size: 82127 bytes
Desc: not available
URL: <http://lists.torproject.org/pipermail/tor-relays/attachments/20221028/1fb9574c/attachment-0001.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <http://lists.torproject.org/pipermail/tor-relays/attachments/20221028/1fb9574c/attachment-0001.sig>


More information about the tor-relays mailing list