All of lore.kernel.org
 help / color / mirror / Atom feed
* A notion
@ 2001-10-02  8:42 Justin R. Smith
  2001-10-01 21:35 ` Jose Nazario
                   ` (4 more replies)
  0 siblings, 5 replies; 9+ messages in thread
From: Justin R. Smith @ 2001-10-02  8:42 UTC (permalink / raw)
  To: selinux

It occurred to me that custom versions of software can be more secure
than standard versions because various exploits (like stack smashing,
etc.) require precise knowledge of certain sizes and distances in RAM
(for instance, the distance from the end of a buffer to the return
point...).

Isn't it possible to develop a "randomizing C compiler" that randomly
varies these distances every time it compiles a program? No two compiles
of the same source code would be exactly the same (but they would
execute the same way).

This might involve inserting small random-sized blocks of dead code, or
doing returns from subroutines through a level of indirection (i.e.,
putting the actual return at some random location in the object code
with a branch to it).

Done right, this might not degrade performance significantly.


-- 


--
You have received this message because you are subscribed to the selinux list.
If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
the words "unsubscribe selinux" without quotes as the message.

^ permalink raw reply	[flat|nested] 9+ messages in thread
* RE: A notion
@ 2001-10-01 23:46 Tim Hollebeek
  0 siblings, 0 replies; 9+ messages in thread
From: Tim Hollebeek @ 2001-10-01 23:46 UTC (permalink / raw)
  To: 'Justin R. Smith', selinux


I don't know if Crispin Cowan watches the selinux list, but this is
exactly the sort of thinking that inspired stackguard.  To paraphrase
a recent comment of his, it seems that whenever you investigate a method
of enhancing security using randomization, similar thinking will provide a
protection mechanism which will perform even better than the randomization.

> -----Original Message-----
> From: Justin R. Smith [mailto:jsmith@mcs.drexel.edu]
> Sent: Tuesday, October 02, 2001 4:43 AM
> To: selinux@tycho.nsa.gov
> Subject: A notion
> 
> 
> It occurred to me that custom versions of software can be more secure
> than standard versions because various exploits (like stack smashing,
> etc.) require precise knowledge of certain sizes and distances in RAM
> (for instance, the distance from the end of a buffer to the return
> point...).
> 
> Isn't it possible to develop a "randomizing C compiler" that randomly
> varies these distances every time it compiles a program? No 
> two compiles
> of the same source code would be exactly the same (but they would
> execute the same way).
> 
> This might involve inserting small random-sized blocks of 
> dead code, or
> doing returns from subroutines through a level of indirection (i.e.,
> putting the actual return at some random location in the object code
> with a branch to it).
> 
> Done right, this might not degrade performance significantly.
> 
> 
> -- 
> 
> 
> --
> You have received this message because you are subscribed to 
> the selinux list.
> If you no longer wish to subscribe, send mail to 
> majordomo@tycho.nsa.gov with
> the words "unsubscribe selinux" without quotes as the message.
> 

--
You have received this message because you are subscribed to the selinux list.
If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
the words "unsubscribe selinux" without quotes as the message.

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2001-10-02 15:02 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-10-02  8:42 A notion Justin R. Smith
2001-10-01 21:35 ` Jose Nazario
2001-10-01 22:47   ` Phillip H. Zakas
2001-10-01 22:43 ` Phillip H. Zakas
2001-10-01 23:58 ` Javier
2001-10-02  2:40   ` Conan Callen
2001-10-02 12:05 ` Russell Coker
2001-10-02 12:19 ` Stephen Smalley
  -- strict thread matches above, loose matches on Subject: below --
2001-10-01 23:46 Tim Hollebeek

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.