[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <Pine.LNX.4.50.0308141926230.2830-100000@dzyngiel.ipartners.pl>
Date: Thu, 14 Aug 2003 19:26:47 +0200 (EEST)
From: Mariusz Woloszyn <emsi@...rtners.pl>
To: <bugtraq@...urityfocus.com>
Subject: Re: Buffer overflow prevention
On Thu, 14 Aug 2003, Stephen Clowater wrote:
> Also, you can use chpax, and turn on a non-executable stack, and with a small
> amount of voodoo (in tracking down the binarys and .so's that need the stack,
> wich typically is only a single binary or .so file, wich you can find with
> ptrace, strace, or ltrace) you can have all of your stuff run with a
> non-executeable stack, thus making stack smashing impossible. Nothing can
> execute off your stack so a malicous person can override all the addresses he
> wants, his code cant run off your stack.
>
It's been proved many times that non-executable stack adds NO security at
all.
Every single class of vulnerabilities exploitable with executable stack
can be also exploited with non-executable stack.
See for example our article (http://www.phrack.org/show.php?p=56&a=5)
which shows how to bypass a stack protector even with a non-executable
stack.
What we're discussing here is an internal structures and data protecting.
IMHO the ProPolice (http://www.research.ibm.com/trl/projects/security/ssp/),
is the best protection in this kind, even comparing to "two stack"
approach.
Beside that it's an existing, well tested and wide used (for example
OpenBSD uses it by default now).
I see no real reason why the major Linux companies are not using it for
its products.
Best regards,
--
Mariusz Woloszyn
Internet Security Specialist, GTS - Internet Partners
Powered by blists - more mailing lists