IPv4 fragmentation --> The Rose Attack
Greetings and Salutations:
While this discussion pertains to IPv4, IPv6 also allows fragmentation and I
suspect IPv6 will also be affected by this attack.
I have created what I believe is a unique fragmented attack ("Rose Attack")
that I would like to inform the community about. It seems to affect most IP
devices. Since cell phones, IPSec & satellite use fragmented packets this
attack is pertinent to the Internet of today.
The attack is simple. Two parts of a fragmented packet are sent to the
machine being attacked. The first fragment (payload 32 bytes long) is the
initial offset zero fragment of a SYN packet. The final (second) fragment
of the SYN packet is also 32 bytes in size, but is set to an offset of 64800
bytes into the datagram.
During my testing, I alternated this two fragment pattern rotating between
ICMP, TCP, UDP, ICMP, etc. All test fragments used the same source IP
address and fragment ID.
Since this attack does not require a response from the target system,
the source IP address can be spoofed, thus hiding the attacker's true
location. Also note the source and destination ports do not matter as the
packet is never validated at the layer four level, it never gets past layer
three. The devices accept the packets no matter what port is used.
Of the machines I have had access to, this attack has caused any number of
the following problems:
1) Causes the CPU to spike, thus exhausting processor resources.
2) Legitimate fragmented packets are dropped intermittently (unfragmented
packets get through fine)
3) Legitimate fragmented packets are no longer accepted by the machine under
attack (unfragmented packets get through fine) until the fragmentation time
exceeded timers expire.
4) Devices like Cisco routers can have Buffer overflow, i.e. packets are
dropped at high packet rates if there aren't enough buffers allocated.
The following devices were tested and showed some or all of the above
symptoms:
1) Microsoft Windows 2000
2) Mandrake Linux 9.2
2) Cisco 2621XM
3) PIX Firewall
4) Mac OS/X V10.2.8 (FreeBSD 5?)
The following vendors have been notified of this condition prior to the
release of this announcement:
1) Microsoft
2) Cisco (2621XM only)
3) Linux
This can also be used in active fingerprinting as some OS's return a
"Fragmentation Reassembly Time exceeded", some do not, some return the first
fragments as assembly time exceeded, some return later packets.
For the original discussion (excerpt from my larger SANS GCFW paper
http://www.giac.org/practical/GCFW/William_Hollis_GCFW.pdf ) please see:
http://gandalf.home.digital.net/Rose.rtf
I have "cleaned up" the procedure since the original discussion. For the
test procedure to test this attack using Windows computers and suggestions
on how to mitigate this attack please see:
http://gandalf.home.digital.net/TestProc.txt
For the support files please see:
http://gandalf.home.digital.net/nemITUrnd.xls
http://gandalf.home.digital.net/Picmpdata.txt
http://gandalf.home.digital.net/Ptcpdata.txt
http://gandalf.home.digital.net/Pudpdata.txt
You will need WinPCap (of course)
WinPcap_3_0.exe
http://www.packetfactory.net/projects/nemesis/
nemesis-1.4beta3.zip on website
NetWox
http://www.laurentconstantin.com/en/netw/netwox/
I used:
netwox-5.11.0-bin_windows.tgz
The suggested software solution to this attack is to:
1) Allocate X*64k buffers upon NIC card initialization. Assuming X=200
buffers this would equate to approximately 12 Mb
2) Flush fragmented buffers in a FIFO fashion.
3) Do not reassemble buffers until all have been received, then use the CPU
to reassemble the buffers.
I would like to thank Chris Brenton for his help / input on this attack.
Your comments on this attack are appreciated.
Ken
---------------------------------------------------------------
Do not meddle in the affairs of wizards for they are subtle and
quick to anger.
Ken Hollis - Gandalf The White - gandalf@xxxxxxxxxxx - O- TINLC
WWW Page - http://digital.net/~gandalf/
Trace E-Mail forgery - http://digital.net/~gandalf/spamfaq.html
Trolls crossposts - http://digital.net/~gandalf/trollfaq.html