[dns-operations] DNS Attack over UDP fragmentation

Yasuhiro Orange Morishita / 森下泰宏 yasuhiro at jprs.co.jp
Sun Sep 8 08:30:57 UTC 2013


Aaron-san, Haya-san, and folks,

I've found the following RFC, it's published in 2007.

  RFC 4963 - IPv4 Reassembly Errors at High Data Rates
  <http://tools.ietf.org/html/rfc4963>

And I've cited "Security Considerations" of this RFC as below:

BTW, When the RFC was I-D, it's titled "IPv4 Fragmentation Considered
Very Harmful".

  <http://tools.ietf.org/html/draft-heffner-frag-harmful-03>

So, we should have been discussing this issue before DNSSEC deployment.

-- Orange

---
7. Security Considerations

   If a malicious entity knows that a pair of hosts are communicating
   using a fragmented stream, it may be presented with an opportunity to
   corrupt the flow.  By sending "high" fragments (those with offset
   greater than zero) with a forged source address, the attacker can
   deliberately cause corruption as described above.  Exploiting this
   vulnerability requires only knowledge of the source and destination
   addresses of the flow, its protocol number, and fragment boundaries.
   It does not require knowledge of port or sequence numbers.

   If the attacker has visibility of packets on the path, the attack
   profile is similar to injecting full segments.  Using this attack
   makes blind disruptions easier and might possibly be used to cause
   degradation of service.  We believe only streams using IPv4
   fragmentation are likely vulnerable.  Because of the nature of the
   problems outlined in this document, the use of IPv4 fragmentation for
   critical applications may not be advisable, regardless of security
   concerns.
---


From: Aaron Campbell <aaron at arbor.net>
Date: Sat, 7 Sep 2013 08:27:47 -0300

> On 2013-09-06, at 1:42 PM, Robert Edmonds <edmonds at mycre.ws> wrote:
> 
> > Aaron Campbell wrote:
> >> Here is a thought, but I will defer to the protocol experts on plausibility.  The resolver knows the size of each DNS message it parses.  What if it didn't trust glue records contained within large (i.e., > 1400 bytes or so) responses?  In these cases, the resolver sends a separate query to resolve the dangling authority NS records.  This introduces overhead, but only for large replies.  It also makes a few assumptions, namely that the fragmentation point is something around 1500 bytes (and not something lower), and that the attack is only practical against the glue records, not the authority section.  May be able to play games with name compression there though… perhaps it is as least worth discussing as an additional barrier.
> > 
> > this sounds vaguely similar to unbound's "harden-referral-path" option,
> > though it applies to all lookups.
> 
> 
> I researched this, and found that it was first described here:
> 
> http://tools.ietf.org/html/draft-wijngaards-dnsext-resolver-side-mitigation-01#section-3.3
> 
> The option is currently marked "experimental" due to not being RFC standard, and performance concerns.  If the option were applied only to large responses (specifically to mitigate this type of attack), that would reduce the performance impact.
> 
> -Aaron
> _______________________________________________
> dns-operations mailing list
> dns-operations at lists.dns-oarc.net
> https://lists.dns-oarc.net/mailman/listinfo/dns-operations
> dns-jobs mailing list
> https://lists.dns-oarc.net/mailman/listinfo/dns-jobs
> 


More information about the dns-operations mailing list