On Mon, 14 Jul 2003 12:37:26 -0700, Aaron Suen wrote:
> Well, my theory is that we adapt the concept of "wormhole routing" as "wormhole
> defragmentation and filtration" for pf.  Basically, wormhole routing means that
> information is stored in a routing device only until sufficient data has
> arrived to make a routing decision, then all remaining data is forwarded
> immediately as it arrives.  This works because all of the information needed to
> route a packet [almost always] arrives first.

This is a novel idea, but it leads to attacks against systems behind a
firewall.  Consider the situation:

attacker -> pf firewall -> server

Attacker sends the first fragment of a huge TCP segment, say 64k.  It has
enough information to be routed properly.  Stock pf using "fragment
reassemble" would wait until the rest of the TCP segment arrived and not
forward the TCP segment until then.

Your proposed modification would forward the fragment, causing the server to
cache the fragment until it expired or until the rest of the segment arrived.

Suppose now that the rest of the fragment never does arrive; instead the first
fragment of another huge TCP segment is sent.  Again, both the firewall and
the server must cache the fragment.  And so on; by this technique an attacker
can exhaust resources not only on the firewall, which is expected to be
hardened against such things, but also on any machine behind it, even though
those machines are supposed to be protected.

While the prospect of reducing latency is nice, I don't think the potential
vulnerabilities make this a good idea.

-- 
Kyle R. Hofmann <[EMAIL PROTECTED]>

Reply via email to