lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20080905165239.GA12645@elte.hu>
Date:	Fri, 5 Sep 2008 18:52:39 +0200
From:	Ingo Molnar <mingo@...e.hu>
To:	pageexec@...email.hu
Cc:	Benjamin Herrenschmidt <benh@...nel.crashing.org>,
	Andi Kleen <andi@...stfloor.org>,
	Arjan van de Ven <arjan@...radead.org>,
	linux-kernel@...r.kernel.org, tglx@...x.de, hpa@...or.com
Subject: Re: [patch] Add basic sanity checks to the syscall execution patch


* pageexec@...email.hu <pageexec@...email.hu> wrote:

> > i think Linux is fundamentally different here as we have the source 
> > code, and could apply the randomization technique i mentioned:
> 
> how's that supposed to work for the binary distros, i.e., the majority 
> of end users? [...]

it takes less than 10 minutes to build a full kernel on recent hardware. 
Can be done in the background after install or so.

> [...] and who would look at all the bugreports from such kernels?

yes, in this area debuggability is in straight conflict. Since we can 
assume that both attacker and owner has about the same level of access 
to the system, making the kernel less accessible to an attacker makes it 
less accessible/debuggable to the owner as well.

> > > > [ It would be nice to have a 'randomize instruction scheduling' 
> > > >   option for gcc, to make automated attacks that recognize specific 
> > > >   instruction patterns less reliable. ]
> > 
> > and every box where it matters we could have a _per box_ randomized 
> > kernel image in essence, with non-essential symbols thrown away, and 
> > with a few checks inserted in random locations - inlined and in essence 
> > unrecognizable from the general entropy of randomization.
> > 
> > Not that a randomizing compiler which inserts true, hard to eliminate 
> > entropy would be easy to implement. But once done, the cat and mouse 
> > game is over and the needle is hidden in the hay-stack. At least as long 
> > as transparent rootkits are involved.
> > 
> > a successful attack that wants to disable the checks
> 
> why do you assume that an attacker wants to do that? it's equally 
> possible, and there's even academic research on this in addition to 
> the underground cracking scene, that one simply hides the 
> modifications from the checker.
> 
> from marking your patched code as unreadable to executing it from a 
> different place than what the checker checks, there're many ways to 
> trick such checkers. as far as reality goes, it's never been game over 
> ;).

well at least in the case of Linux we have a fairly good tally of what 
kernel code is supposed to be executable at some given moment after 
bootup, and can lock that list down permanently until the next reboot, 
and give the list to the checker to verify every now and then? Such a 
verification pass certainly wouldnt be cheap though: all kernel 
pagetables have to be scanned and verified, plus all known code (a few 
megabytes typically), and the key CPU data structures.

	Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ