Unix Technical Forum

Re: plt security patch

This is a discussion on Re: plt security patch within the lucky.openbsd.tech forums, part of the OpenBSD category; --> Hi Artur, On 6 Sep 2005, at 08:34, Artur Grabowski wrote: > Hm. ok... > > I think I ...


Go Back   Unix Technical Forum > Unix Operating Systems > OpenBSD > lucky.openbsd.tech

Register FAQ Members List Calendar Search Today's Posts Mark Forums Read
  #1 (permalink)  
Old 02-22-2008, 11:46 AM
William Robertson
 
Posts: n/a
Default Re: plt security patch

Hi Artur,

On 6 Sep 2005, at 08:34, Artur Grabowski wrote:
> Hm. ok...
>
> I think I understand the idea, but I don't really understand the
> problem you're trying to solve.
>
> [snipped]


Ok, I think the confusion here is my fault, because I did not fully
explain the threat model we are trying to deal with. What we're
trying to address is when an attacker has gained control of execution
but is dealing with a IDS/IPS (e.g., systrace, or sequence-based
syscall IDSs), where the attacker is constrained in what can be
done. So, in the case of systrace, the attacker must execute an
attack using a subset of the available syscalls and argument values.
Nevertheless, we showed in a paper at USENIX Security that these kind
of advanced mimicry attacks are possible, and furthermore can be
created automatically given nothing but the vulnerable binary (the
paper is available at http://www.cs.ucsb.edu/~wkr/publications/
usenixsec05mimicry.pdf, though we didn't consider systrace
specifically). Now, this attack relied heavily on overwriting
function pointers to regain control of the vulnerable process at
certain points during execution, and of course the easy target is the
PLT, which is almost always available. So, that was the main reason
for us to look at this.

> For that reason I believe that we should kill lazy binding
> and get rid of the whole mprotect scheme. The problem with that is
> that some architectures (most notably alpha) have so buggy gcc and/or
> binutils that they don't run without lazy binding (it was easier to
> implement lazy binding than to locate the bug).
>
> Completly getting rid of lazy binding would be simpler, would actually
> remove code (which is always good) and probably make things faster
> because the whole song and dance with mprotect made things so much
> slower that the added performance from lazy binding.


Sounds reasonable, this may be the way to go depending on how
lightweight (or not) an alternate, effective solution would be.

> Another approach we've been discussing is to make a special syscall
> for
> doing those modifications, but we'll have to try a few solutions to
> see
> what works best.


So I've heard, but unfortunately I haven't heard enough to know
whether it would be sufficient to protect the linking infrastructure
from an attacker who has already gained control. Of course, it's up
to you guys as to whether you care about our threat model or not, but
as I said before, I thought I'd post the idea anyway. :-) In any
case, removing lazy binding does fix all of this.

> //art
>
> ps. I'm not sure if I like the idea of making some parts of the
> address space more equal than others.


In theory, I do. As far as I can see, ld.so should be the only code
updating the PLT, and it would seem to make sense to enforce some
kind of access control to reflect that...

--
William Robertson
Reliable Software Group, UC Santa Barbara
http://www.cs.ucsb.edu/~wkr/

Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On
Forum Jump


All times are GMT. The time now is 04:11 PM.


Powered by vBulletin® Version 3.6.5
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.2.0
www.UnixAdminTalk.com