Proposal for a new method to block
distributed denial-of-service (DOS) attacks.
John L. Sokol
Nature of the problem.
Distributed denial-of-service (DOS) attacks crippled the Internet in February 2000 according to the "FBI investigations and other information," the National Infrastructure Protection Center (NIPC).
Over the past few years these attacks have been getting more frequent and persistent with no technical fixes known at this time.
Hackers have been hijacking innocent third parties computers using a variety of virus, worms and Trojans such as Trin00, Tribal Flood Net, TFN2K, MStream, Stacheldraht network.vbs and Trinity v3.† These programs can turn a desktop system into a ďzombieĒ computer.† These zombie systems behave normally but monitor an IRC (Internet Relay Chat) channel, website or listen for a command packet waiting for itís hacker to point to a victim.†† These systems, tens of thousands of them, under the remote control by the hacker can then launch massive denial-of-service attacks.
These attacks can be any kind of attack from syn and smurf, using illegitimate raw-packet attacks to confuse a servers TCP/IP stack, but these can be filtered.
Even more dangerous are the new attacks that flood millions of legitimate http requests or transmit 100 MBps of UDP packets down a customers T3 line. These packets appear legitimate in all aspects, but their quantity make filtering or manually blocking them at the victimís ISP useless. Even without spoofing addresses there are thousand of addresses that the upstream backbone providers would need to block. Even more difficult is these attacks are now against incoming routers. This fills the incoming Internet connection but packets never leave router making impossible to use an analysis tool (like tcpdump) to examine the offending packets.
Tracking these packets back to their source has not helped because most of the time it some broadband DSL or cable modem customer that it not very knowledgeable about computers and was totally unaware that there computer was taking place in an attack. For every end user who system is cleaned of the hacking software there are another 10 getting infected.
Soon with Windows XP making spoofed packet easier then ever tracking these packets back to their origins will be next to impossible with the current infrastructure.
Cures such as Firewalls, and anti-virus software are effective when used correctly but this is often not the case as demonstrated by the large numbers of these attacks currently taking place. Something more is needed.
ISP and Broadband providers need to implement source address filtering; blocking an end used system from spoofing or lying about its IP address.
Proposal for a new protocol.
A new protocol needs to be implemented on the ingress routers and bridges where end users connect to the Internet. This is in these DSL Modems, Cable Modems or routers just above, or in the terminal server themselves.
This protocol should also be implemented in the core or ingress/egress routers of the backbone but it may not be viable due to performance issues.
The Basic idea is to use the IP ROUTER ALERT Option RFC2113 in the IP header to send a message to all router along a path.† Like RSVP, but instead of establishing a QOS reservation allowing packets a higher priority through the network, this would do the reverse. This would notify routers along the path to temporarily block packets toward the victim ISPís address block.
There would need to be 3 basic parts and strong precautions to prevent malicious uses of this service that would be just as bad at the DOS this is intended to remedy.
Router Alert is to send a single datagram packet, hop-by-hop towards the destination address; Routers that donít know about the protocol just ignore it and pass it forward.† Routers that are aware of the protocol can receive and block the packet, then resend an altered form towards the destination or it or send message back to the source. And also take an action based on that packet.
Part 1, Send a Router Alert packet, message back to the source address of the offending packet. Routers in the middle can then block these packets along the path. Each router accepting the packet block can send a Router Alert encoded message back eliminating the blocks from the router closer to the victim possible there by reducing the number of block addresses in core routers. This last part has security issues since we donít want the attacking servers to be able to un-block itís own attack.
Part 2, In the case of spoofed source addresses, Like 127.0.0.1 a packet is send just 1 hop up to begin to trace the origins back to their true source.† This is done by asking the intermediate routers to record the router the packet arrived from (from Arp or the inbound interface, or tunneling protocol). The recorded information can then be place in the header like the record route option on a ping packet (RFC 791).† This can then allow the victim system to trace the packet 1 hop farther back with each bogus packet.
Upon reaching the end of cooperative routers the blocking packet can then be sent. Those backbones not responding to these traces will be eating the cost for this extra bandwidth but the victim connection will not be.† So it would be in the best interest for a backbone to offer this servers to itís customers and support the protocol all the way to the peering points because it reduced their traffic.
Part 3, The routers should open a TCP connection or some verified UDP to verify the source address of the victims system is the one really requesting the blocking of packets.† Itís very important that not just anyone can block packets going to a specific ISP or Host.† This could also be optional for running a trace where only the destination address of the packets could receive the trace origin of packets coming to it.