Buffer ovrflow is one of the most common security bugs in software.
Hoever, imho, relying on such tools as Lucent's library is not a good
methodology. A programmer must be security-oriented when writing code. In 
the "Secure-Programming HOWTO", it says that "Paranoia is a virtue". That 
is, the programmer's role is more than just compile his code with a library 
that is supposed to defend his code from buffer overflows. He must audit his 
code for potential hazards, and write the code in such a way, that buffer 
overflows and other security
issues won't happen in the first place. Lucent's library is a welcome
addition to a set of tools that already exists in the Linux world 
(StackGuard and StackShield are just two examples). However, they
must not be relied on to provide total security.

Yosi

P.S
Speaking of StackGuard, here is a recent post I found on BugTraq that
compares Lucent's library to StackGuard:

JEFF PFOHL wrote:

>Does anyone know anything about this?
>
>  http://www.bell-labs.com/org/11356/html/security.html

Solar Designer has posted his analysis to the Linux security-audit
mailing list
   http://www2.merton.ox.ac.uk/~security/security-audit-200004/0069.html

Perry Wagle (principle StackGuard developer, cc'd) has written an
analysis comparing StackGuard to libsafe (attached).  The summary is
as follows:

      * Use StackGuard where you can, because it is safer:
      o Libsafe only wraps selected string library functions.  Buffer
        overflows affecting other library functions or user-written
        loops will not be protected
      o Libsafe attempts to wrap these functions by parsing the
        stack, but it doesn't always succeed.  In particular, libsafe
        depends on the existance of the frame pointer, and fails when
        it isn't present, as happens if the code was compiled with
        -fno_fp, or if the optimizer removed the frame pointer.

      * Use Libsafe where you cannot use StackGuard, i.e. for
        binary-only applications.

My further comment on libsafe:  the paper that the authors will be
presenting at USENIX in June presents two forms of defense ("library
intercept" and binary-rewrite (BRW)) and only the library intercept
appears to be embodied in the publicly available libsafe, which is
why libsafe only protects against overflows that use particular
string library functions.

The BRW method is a pseudo-compiler that can transform binaries into
"safe" programs by transforming the binary.  It copies program onto
the heap, inserting checks as it goes.  The copy-to-the-heap is to
make space for the additional checks.  I really like the BRW method,
and hope it becomes available.

If my understanding is mistaken, and BRW is actually in the
distributed libsafe, please correct me.

Crispin
-----
Crispin Cowan, CTO, WireX Communications, Inc.    http://wirex.com
Free Hardened Linux Distribution:                 http://immunix.org
                   JOBS!  http://immunix.org/jobs.html
________________________________________________________________________
Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com


=================================================================
To unsubscribe, send mail to [EMAIL PROTECTED] with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail [EMAIL PROTECTED]

Reply via email to