qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Corey Bryant <coreyb@linux.vnet.ibm.com>
To: Stefan Hajnoczi <stefanha@gmail.com>
Cc: "Richa Marwaha" <rmarwah@us.ibm.com>,
	"Michael Halcrow" <mhalcrow@google.com>,
	qemu-devel@nongnu.org, "Eric Paris" <eparis@redhat.com>,
	"Paul Moore" <pmoore@redhat.com>,
	"Ashley D Lai" <adlai@us.ibm.com>, "Avi Kivity" <avi@redhat.com>,
	"Amit Shah" <amit.shah@redhat.com>,
	"Radim Krčmář" <radimkrcmar@hpx.cz>,
	"Eduardo Terrell Ferrari Otubo" <eotubo@br.ibm.com>,
	"Lee Terrell" <lterrell@us.ibm.com>,
	"George Wilson" <gcwilson@us.ibm.com>
Subject: Re: [Qemu-devel] [RFC] Device sandboxing
Date: Thu, 08 Dec 2011 09:39:34 -0500	[thread overview]
Message-ID: <4EE0CC26.4070103@linux.vnet.ibm.com> (raw)
In-Reply-To: <CAJSP0QWwY7=abHnWe=nDFwSVf-NQmogM_E7S74hL3YPE4R1n9Q@mail.gmail.com>



On 12/08/2011 04:47 AM, Stefan Hajnoczi wrote:
> On Wed, Dec 7, 2011 at 7:32 PM, Corey Bryant<coreyb@linux.vnet.ibm.com>  wrote:
>>
>>
>> On 12/07/2011 01:48 PM, Anthony Liguori wrote:
>>>
>>> On 12/07/2011 12:25 PM, Corey Bryant wrote:
>>>> * The trusted helper thread would run beside the untrusted thread,
>>>> enabling the untrusted thread to make syscalls beyond read(),
>>>> write(), exit(), and sigreturn().
>>>
>>>
>>> I assume you mean process, not thread BTW?
>>>
>>
>> I do mean thread.  When making calls on behalf of the seccomp'd thread, I
>> think there will be syscalls that must be called from the same address
>> space.  That's where the the trusted helper thread would come into play.
>
> It's worth pointing out that "isolation within the same process"
> schemes work by running the trusted thread in a very special execution
> environment.  It cannot trust memory and cannot use the stack for
> control flow.  Everything must be done in registers.
>
> This can be made to work but it's highly unportable across host
> architectures and hard to make changes to the trusted helper because
> you have to be so careful.
>
> Stefan
>

That's a good point.  And maybe we would only need the trusted thread 
for a minimal number of syscalls that must be made from the same address 
space, like mmap.  I think another approach to safely making a call on 
behalf of an untrusted thread is to pass the call and parameters to a 
trusted process which sanitizes the parameters, writes them to memory 
shared with the trusted thread (read-only from the thread side), and the 
trusted thread can make the call.

-- 
Regards,
Corey

  reply	other threads:[~2011-12-08 14:39 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-12-07 18:25 [Qemu-devel] [RFC] Device sandboxing Corey Bryant
2011-12-07 18:48 ` Anthony Liguori
2011-12-07 19:32   ` Corey Bryant
2011-12-07 19:43     ` Anthony Liguori
2011-12-07 19:52       ` Michael Halcrow
2011-12-07 20:02       ` Corey Bryant
2011-12-07 20:54       ` Eric Paris
2011-12-08  9:40         ` Stefan Hajnoczi
2011-12-11 10:50           ` Dor Laor
2011-12-12 18:54             ` Will Drewry
2011-12-08  9:47     ` Stefan Hajnoczi
2011-12-08 14:39       ` Corey Bryant [this message]
2011-12-07 21:20   ` Paul Moore
2011-12-14 17:15     ` Serge E. Hallyn
2011-12-14 23:56       ` Paul Moore
2011-12-15 14:28         ` Corey Bryant
2011-12-15 15:14           ` Serge Hallyn
2011-12-15 15:35             ` Paul Moore
2011-12-15 16:05               ` Serge Hallyn
2011-12-08 21:51 ` Blue Swirl
2011-12-12 18:30   ` Corey Bryant
2011-12-09 16:17 ` Paul Brook
2011-12-09 16:34   ` Paul Moore
2011-12-09 17:32     ` Paul Brook
2011-12-09 17:49       ` Paul Moore
2011-12-09 18:46         ` Paul Brook
2011-12-09 18:50           ` Paul Moore
2011-12-09 18:59           ` Paul Brook
2011-12-09 19:17             ` Paul Moore
2011-12-10 19:39   ` Blue Swirl
2011-12-11  9:08   ` Avi Kivity

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=4EE0CC26.4070103@linux.vnet.ibm.com \
    --to=coreyb@linux.vnet.ibm.com \
    --cc=adlai@us.ibm.com \
    --cc=amit.shah@redhat.com \
    --cc=avi@redhat.com \
    --cc=eotubo@br.ibm.com \
    --cc=eparis@redhat.com \
    --cc=gcwilson@us.ibm.com \
    --cc=lterrell@us.ibm.com \
    --cc=mhalcrow@google.com \
    --cc=pmoore@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=radimkrcmar@hpx.cz \
    --cc=rmarwah@us.ibm.com \
    --cc=stefanha@gmail.com \
    /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;
as well as URLs for NNTP newsgroup(s).