PDA

Bekijk Volledige Versie : Re: IPv4 fragmentation --> The Rose Attack



stanislav shalunov
01/04/04, 00:35
<gandalf@digital.net> writes:

> While this discussion pertains to IPv4, IPv6 also allows fragmentation and I
> suspect IPv6 will also be affected by this attack.

IPv6 does not have en-route fragmentation and, therefore, has no
reassembly. IPv6 is not affected.

Interesting attack. Various standards require behaviors that lead to
unlimited memory usage. For example, my netkill attack shows how to
cause a TCP stack to use all memory that is available to it. The Rose
attack doesn't even use TCP to achieve a similar effect.

A mitigating strategy would be to give the IPv4 reassembly code a
certain amount of memory and, when that memory is filled, drop random
packets that are being reassembled. The data structures used to hold
fragments must allow to only hold those parts that have already
arrived. This would still allow attacks on the reassembly facility
itself (an attacker could keep the reassembly memory full and cause
the majority of legitimate fragmented packets to be dropped by the
receiver), but at least other parts of the stack and the OS would not
suffer.

--
Stanislav Shalunov http://www.internet2.edu/~shalunov/

Crist J. Clark
01/04/04, 04:25
On Wed, Mar 31, 2004 at 03:07:31PM -0500, stanislav shalunov wrote:
> <gandalf@digital.net> writes:
>
> > While this discussion pertains to IPv4, IPv6 also allows fragmentation and I
> > suspect IPv6 will also be affected by this attack.
>
> IPv6 does not have en-route fragmentation and, therefore, has no
> reassembly. IPv6 is not affected.

IPv6 does have end-station fragmentation, and therefore, it DOES have
reassebly, see Section 4.5 of RFC2460. I do not see why an IPv6
implementation would not also potentially be affected.

This is YANFA, Yet Another IP Fragmentation Attack. Teardrop, Ping O'
Death, NewTear, Boink, yada-yada. Some have exploited bugs in
reassembly code (over lapping frags, >65535-byte packets, etc.) and
others, like this, are flat out resource exhaustion DoSes.

The IP stack needs to be sane about how many datagrams it will try to
reassemble at once. This attack points out that when considering that,
you need to account for the fact a malicious attacker might eat
reassembly resources much faster than his bandwidth would seem to
indicate (two small packets can look like almost 65535). The other
approach is for the reassembly algorithm has to be careful about how
it allocates buffers for reassembly.
--
Crist J. Clark | cjclark@alum.mit.edu
| cjclark@jhu.edu
http://people.freebsd.org/~cjc/ | cjc@freebsd.org