27.02.2011 22:32, "Tóth Attila" пишет:

> More reliable? Interesting. Do you have a link about this?
> Apart from older systems 32bit will be with us at least because of the ARM
> architecture.

http://grsecurity.net/pipermail/grsecurity/2010-April/001024.html - from here:

> this is also where the similarities end :), so let's look at the bad stuff
> now. UDEREF/amd64 doesn't ensure that the (legitimate) userland accessor
> functions cannot actually access kernel memory when only userland is allowed
> (some in-kernel users of certain syscalls can temporarily access kernel memory
> as userland, and that is enforced on UDEREF/i386 but not on amd64). so if
> there's a bug where userland can trick the kernel into accessing a userland
> pointer that actually points to kernel space, it'll succeed, unlike on i386.
> 
> the other bad thing is the presence of the userland shadow area. this has
> two consequences: 1. the userland address space size is smaller under UDEREF
> (42 vs. 47 bits, with corresponding reduction of ASLR of course), 2. this
> shadow area is always mapped so kernel code accidentally accessing its range
> may not oops on it and can be exploited (such accesses can usually happen only
> if an exploit can make the kernel dereference arbitrary addresses in which
> case the presence of this area is the least of your concerns though).
> 
> what about performance? well, 'it depends', in particular it depends on the
> amount of user/kernel transitions of your workload as that's where the extra
> code really hits (it's basically a TLB flush and two CR0 writes if you have
> KERNEXEC as well, say 600 cycles + TLB repopulation time). on a simple
> compilation test i get these times:

Reply via email to