[Bro-Dev] #368: Patch for Reverse DNS Lookups and DNS TTL support

Bro Tracker bro at tracker.icir.org
Thu Jan 27 05:10:41 PST 2011


#368: Patch for Reverse DNS Lookups and DNS TTL support
--------------------------+-----------------------------
 Reporter:  thomas.other  |       Type:  Patch
   Status:  new           |   Priority:  Normal
Milestone:                |  Component:  Bro
  Version:  1.5.2         |   Keywords:  DNS TTL Resolve
--------------------------+-----------------------------
 In large networks with short DHCP lease times it may be advantageous to
 log DNS hostnames additionally to the IP of a given host.

 While support for forward DNS lookups is already built into the print
 statement in the scripting language, and the DNS manager already offers
 support for both types of queries, a new explicit resolve expression
 completes the set of DNS functions in bro.

 In order to obtain the most recent DNS zone record for a given host,
 instead of a previously received and locally cached value, the DNS manager
 must pay respect to the TTL value associated with a DNS zone record. The
 currently used resolver API (bind) offers support for TTL retrieval,
 therefore this value shall be passed on to the DNS manager where it is
 used to decide whether a new resolve request should be issued if the
 currently cached record has become stale.

 Two patches address these issues (based on SVN r7165):

   * resolve.patch:
                    * enables the use of the resolve() expression in bro
 scripts
                    * e.g. resolve("www.microsoft.com") or
 resolve(65.55.21.250)

   * dnsttls.patch:
                    * enables DNS to requery records that are older than
 the records TTL
                    * is controlled through configure flag --enable-dns-
 ttl, if omitted behavior is as if the patch wasn't applied


 Both patches have been thoroughly tested in productive environments. The
 implementation of the resolve expression declares several methods where a
 reproduction of the intended funtionality couldn't be verified a 100%. If
 a more experienced bro developer could have a look at following methods
 and provide a quick feedback it would be greatly appreciated:
 {{{
   - Expr.cc:   ResolveExpr::Simplify
   - Expr.cc:   ResolveExpr::Traverse
   - Expr.cc:   ResolveExpr::ExprDescribe
   - Expr.cc:   ResolveExpr::DoSerialize
   - Expr.cc:   ResolveExpr::DoUnserialize
 }}}
 Many thanks!

 Thomas

-- 
Ticket URL: <http://tracker.icir.org/bro/ticket/368>
Bro Tracker <http://tracker.icir.org/bro>
Bro Issue Tracker



More information about the bro-dev mailing list