[vox-tech] security

Rick Moen rick at linuxmafia.com
Sat Aug 16 08:37:46 PDT 2008


Bill Broadley wrote:

> Hmm, maybe I should have sent this mail to the list instead of the
> other one, oh well.

Again, hoping you won't take amiss my posting this quickly-written
response.  Please consider posting the mail I'm answering; you make good 
points that should really be heard by the community.

Geting to the meat of things:



Hi, short on time, but:

Quoting Bill Broadley (bill at cse.ucdavis.edu):

> Right, so tripwire runs ONLY from secure media.  How do you get august's
> 1000's of file updates securely into tripwire?

Personally, by not installing the kitchen sink or enabling a bunch of
things I don't need in the first place.

> I wonder how many services, users, and servers ranum manages.  How he avoids
> ssh....

I'm curious about that too.

> and if he's applied a bunch of bind patches lately.

*I* run BIND9, but am not proud of it.  (My home server is an example of
the cobbler's kids going barefoot.  It needs re-doing.  OTOH, even with 
some questionable choices for convenience's sake and horrible neglect,
it's turned out to do fine.)

Deployment of caching recursive-resolver nameservice is an excellent
illustrative example of Ranum's point:  You always had better
alternatives than BIND9.  (No, I'm not a DJB fan in general, but he did
happen to be right.)

To save time, let me borrow from a summary I did for _Linux Gazette_:

  So, basically, improved port randomisation in client resolvers is
  getting rolled out with newer OS kernels.

  Having access to _reliably_ random data is actually a quite difficult
  problem, and unfortunately many programmers get bitten by the results of
  trying to punt the problem, e.g., by just tapping into the OS's
  /dev/random or /dev/urandom.  The former tends to be pretty good (but
  not great) on most 'Nixes including Linux -- _but_ tend to exhaust the
  system's "entropy pool" quickly.  The latter (urandom) is an _unlocked_
  random generator that re-uses the internal pool, so it produces more
  numbers before conking out, but of lower quality.

  A cautious programmer would look at that situation, and think "Gosh, if
  my code needs reliable random data, I guess I need a decent random
  number generator library (RNG), rather than just punting to the OS."
  Which is indeed what smart nameserver authors did, a long time ago.
  Compare:

  Caching recursive resolvers:
  o  BIND9:  Wasn't smart, recently patched to compensate
  o  MaraDNS:  Author built in a custom RNG from the beginning
  o  PowerDNS Recursor:  Retrofitted a custom RNG in March 2008, after
       someone filed a security bug anticipating the Kaminsky issue
  o  djbdns/dnscache:  built in a custom RNG from the beginning, _and_
       the author made a point of warning everyone else of the pitfall
  o  Unbound:  Author built in a custom RNG from the beginning

  Caching forwarders:
  o  pdnsd:  Author built in a custom RNG from the beginning
  o  dnsmasq:  Wasn't smart, recently patched to compensate


More information about the vox-tech mailing list