All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jacob Gorm Hansen <jacobg@diku.dk>
To: Anthony Liguori <anthony@codemonkey.ws>
Cc: xen-devel@lists.sourceforge.net
Subject: Re: Building domains as a lesser user (was Re: boot loaders for domain != 0)
Date: Thu, 03 Feb 2005 19:12:52 -0800	[thread overview]
Message-ID: <4202E834.7000506@diku.dk> (raw)
In-Reply-To: <4202DB0F.1050102@codemonkey.ws>

Anthony Liguori wrote:
> 
>> Then libext2 would have to run as a non-root user, and feed its output 
>> to a root process doing the actual domain building, assuming that 
>> there is no way of making the domain builder or libz choke on the 
>> kernel image that is...
>>
>> For real security, all this stuff has to be happen within the domU. In 
>> a perfect world, privileged code should never read user-supplied data, 
>> but given that this world is not perfect, you could relax that to not 
>> reading any variable-length user-supplied data.
>>
> I've been thinking about this and it seems to get worse and worse the 
> more I think about it.  Pushing loading off to domU isn't much better 
> because you still need to load a boot loader of some sort.  At what 
> point do we then have to implement support for loading the boot loader 
> from domU's device (in order to support exotic boot scenarios like 
> booting from a CD, BOOTP, etc.).

My system uses a two-stage process. Dom0 builds the VM from an ELF file 
which is trusted not to take the builder down, but not trusted otherwise.

You then contact the VM using TCP, and you upload your 'real' bootloader 
in there as an ELF image and it takes over the TCP connection and does 
the rest. In the Linux example the 'real' bootloader is a more complete 
ELF decoder, which is able to decode an incoming Linux kernel ELF image 
with an optional initrd.

In other cases, such as an incoming migration, the 'real' loader just 
knows how to receive pages and adjust incoming page tables. So the 
architecture itself does not care if I am loading Linux, doing a 
migration, or whatever.

The point is that the initial bootloader image is trusted not to exploit 
the domain builder, because it is written and compiled by me (the admin) 
and takes no user input before being in a domU, whereas subsequent 
'exotic' bootloaders do not have to be trusted at all.

For CD or BOOTP you could do something similar, having a small loader 
for each type of media, and a stage2 (possibly just a ported grub) that 
does all the heavy lifting.

Jacob


-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting
Tool for open source databases. Create drag-&-drop reports. Save time
by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
Download a FREE copy at http://www.intelliview.com/go/osdn_nl

  reply	other threads:[~2005-02-04  3:12 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-02-03 22:11 boot loaders for domain != 0 Ian Pratt
2005-02-04  1:09 ` Jacob Gorm Hansen
2005-02-04  2:16   ` Building domains as a lesser user (was Re: boot loaders for domain != 0) Anthony Liguori
2005-02-04  3:12     ` Jacob Gorm Hansen [this message]
2005-02-04  3:16     ` Jacob Gorm Hansen
2005-02-04  3:34       ` Anthony Liguori
2005-02-04  3:56         ` Jacob Gorm Hansen
  -- strict thread matches above, loose matches on Subject: below --
2005-02-04  2:30 Ian Pratt
2005-02-04  3:09 ` Jeremy Katz
2005-02-04  5:13   ` Ronald G. Minnich
2005-02-04  3:29 ` Anthony Liguori
2005-02-04  3:38   ` Jacob Gorm Hansen
2005-02-04  3:54     ` Anthony Liguori
2005-02-04  4:02       ` Jacob Gorm Hansen
2005-02-04 19:49   ` Adam Sulmicki
2005-02-04  9:44 Ian Pratt
2005-02-04 12:33 Ian Pratt
2005-02-04 20:48 ` Anthony Liguori

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=4202E834.7000506@diku.dk \
    --to=jacobg@diku.dk \
    --cc=anthony@codemonkey.ws \
    --cc=xen-devel@lists.sourceforge.net \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.