[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[crispin@CSE.OGI.EDU: StackGuard-protected Linux and a New StackGuard Compiler]



Hello,

I think this is interesting for Debian in General and derived work (Debwall)
in special:


----- Forwarded message from Crispin Cowan <crispin@CSE.OGI.EDU> -----

Approved-By: aleph1@DFW.NET
Date:         Thu, 27 Aug 1998 22:26:54 -0700
Reply-To:     Crispin Cowan <crispin@CSE.OGI.EDU>
From:         Crispin Cowan <crispin@CSE.OGI.EDU>
Subject:      StackGuard-protected Linux and a New StackGuard Compiler
X-To:         security-audit@ferret.lmh.ox.ac.uk
X-cc:         immunix@cse.ogi.edu
To:           BUGTRAQ@NETSPACE.ORG
X-env-mail-from: (owner-bugtraq@NETSPACE.ORG)
X-env-rcpt-to: (<lists@lina.inka.de>)
X-lina: send to /usr/sbin/deliver (Fri, 28 Aug 1998 11:27:19 +0200 (CEST))

StackGuard is a compiler to protect programs against stack smashing
attacks.  When stack smashing exploits are deployed against
StackGuard-protected programs, the protected program halts and logs the
attack attempt in syslog, rather than yield control to the attacker's
code.

This post is to announce a new release of StackGuard, providing better
performance, and support for shared libraries.  We have re-compiled the
entire set of programs and libraries provided in the Red Hat 5.1
distribution.  In addition to providing the compiler, we are also
providing these protected programs and libraries in the form of binary
RPMs on our server:

        http://www.cse.ogi.edu/DISC/projects/immunix/StackGuard/

These 526 RPMs are drop-in replacements for the RPMs provided by
Red Hat, except that stack smashing is no longer an alternative means
of getting into the box when you forget the root password :-) There are
a few other errata covered in the README.SG file.

Note that StackGuard-protected programs are inter-operable with
un-protected shared libraries, and StackGuard-protected libraries are
inter-operable with un-protected programs.  This is a mixed blessing:
on one hand, it means that if you are concerned with glibc
vulnerabilities, you need only install the StackGuard-protected glibc
RPM.  On the other hand, if you are concerned with all shared library
vulnerabilities, the unprotected libraries will still function with
your new StackGuard-protected programs, and so you must be careful to
install all libraries used by all programs that you wish to protect.

The source code used for the re-build is the source code provided by
ftp.redhat.com as of July 13, 1998.  There were a small number of
changes that we had to make to the source to successfully re-build it,
documented in README.SG.

The StackGuard compiler itself is an enhancement to gcc 2.7.2.3, and
for the most part is a drop-in replacement for gcc.  The one major
caveat is that StackGuard protection must be turned OFF to build the
Linux kernel.  This is because the kernel knows what a function
activation record looks like to do context switching, and StackGuard
changes the format of an activation record to do the integrity check.

The support for shared libraries and the enhanced performance are
enabled by an enhancement originally proposed by der Mouse, to the
effect that a null next to a value is not possible to overflow
undetected, because string ops terminate on null.  However, some string
operations actually do copy through nulls, such as gets().  We have
enhanced der Mouse's technique so that the integrity word is a
combination of Null, CR, LF, and -1, which should cover the range of
termination symbols for C string operations.

A paper describing StackGuard appeared at the 1998 USENIX Security
Conference.  The paper is also on our web page.

Naturally, we would appreciate feedback on either security or
functionality problems with any of the RPMs that we have provided.

Crispin
-----
 Crispin Cowan, Research Assistant Professor of Computer Science, OGI
    StackGuard: protect your software against Stack Smashing Attack
       http://www.cse.ogi.edu/DISC/projects/immunix/StackGuard/

                 Support Justice:  Boycott Windows 98


----- End forwarded message -----

-- 
  (OO)      -- Bernd_Eckenfels@Wendelinusstrasse39.76646Bruchsal.de --
 ( .. )  ecki@{inka.de,linux.de,debian.org} http://home.pages.de/~eckes/
  o--o     *plush*  2048/93600EFD  eckes@irc  +497257930613  BE5-RIPE
(O____O)       If privacy is outlawed only Outlaws have privacy


Reply to: