From: Ingo Molnar <mingo@elte.hu>
To: pageexec@freemail.hu
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>,
Andi Kleen <andi@firstfloor.org>,
Arjan van de Ven <arjan@infradead.org>,
linux-kernel@vger.kernel.org, tglx@tglx.de, hpa@zytor.com
Subject: Re: [patch] Add basic sanity checks to the syscall execution patch
Date: Fri, 5 Sep 2008 18:52:39 +0200 [thread overview]
Message-ID: <20080905165239.GA12645@elte.hu> (raw)
In-Reply-To: <48C15D0A.6363.4324231@pageexec.freemail.hu>
* pageexec@freemail.hu <pageexec@freemail.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
next prev parent reply other threads:[~2008-09-05 16:53 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-09-04 2:51 [patch] Add basic sanity checks to the syscall execution patch Arjan van de Ven
2008-09-04 12:01 ` Andi Kleen
2008-09-04 12:34 ` Alan Cox
2008-09-04 13:06 ` Andi Kleen
2008-09-04 12:44 ` Arjan van de Ven
2008-09-05 9:43 ` pageexec
2008-09-05 10:14 ` Benjamin Herrenschmidt
2008-09-05 10:49 ` pageexec
2008-09-05 10:57 ` Benjamin Herrenschmidt
2008-09-05 11:42 ` Ingo Molnar
2008-09-05 12:00 ` pageexec
2008-09-05 15:42 ` Ingo Molnar
2008-09-05 16:23 ` pageexec
2008-09-05 16:52 ` Ingo Molnar [this message]
2008-09-05 17:26 ` Andi Kleen
2008-09-05 19:42 ` pageexec
2008-09-05 20:48 ` Andi Kleen
2008-09-05 19:37 ` pageexec
2008-09-06 15:42 ` Ingo Molnar
2008-09-07 0:17 ` pageexec
2008-09-05 12:01 ` Andi Kleen
2008-09-05 20:41 ` Willy Tarreau
2008-09-06 15:45 ` Ingo Molnar
2008-09-06 16:34 ` Jeroen van Rijn
2008-09-07 12:53 ` Pavel Machek
2008-09-05 16:05 ` Arjan van de Ven
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20080905165239.GA12645@elte.hu \
--to=mingo@elte.hu \
--cc=andi@firstfloor.org \
--cc=arjan@infradead.org \
--cc=benh@kernel.crashing.org \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=pageexec@freemail.hu \
--cc=tglx@tglx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox