From: Stefan Hajnoczi <stefanha@gmail.com>
To: Eduardo Otubo <otubo@linux.vnet.ibm.com>
Cc: Paul Moore <pmoore@redhat.com>,
coreyb@linux.vnet.ibm.com, qemu-devel <qemu-devel@nongnu.org>,
Anthony Liguori <anthony@codemonkey.ws>
Subject: Re: [Qemu-devel] [PATCH for-1.7] seccomp: setting "-sandbox on" by default
Date: Fri, 22 Nov 2013 11:34:41 +0100 [thread overview]
Message-ID: <20131122103441.GA24388@stefanha-thinkpad.redhat.com> (raw)
In-Reply-To: <20131030100439.GD11994@stefanha-thinkpad.redhat.com>
On Wed, Oct 30, 2013 at 11:04:39AM +0100, Stefan Hajnoczi wrote:
> On Wed, Oct 23, 2013 at 12:42:34PM -0200, Eduardo Otubo wrote:
> > On 10/22/2013 11:00 AM, Anthony Liguori wrote:
> > >On Tue, Oct 22, 2013 at 12:21 PM, Eduardo Otubo
> > ><otubo@linux.vnet.ibm.com> wrote:
> > >>Inverting the way sandbox handles arguments, making possible to have no
> > >>argument and still have '-sandbox on' enabled.
> > >>
> > >>Signed-off-by: Eduardo Otubo <otubo@linux.vnet.ibm.com>
> > >>---
> > >>
> > >>The option '-sandbox on' is now used by default by virt-test[0] -- it has been
> > >>merged into the 'next' branch and will be available in the next release,
> > >>meaning we have a back support for regression tests if anything breaks because
> > >>of some missing system call not listed in the whitelist.
> > >>
> > >>This being said, I think it makes sense to have this option set to 'on' by
> > >>default in the next Qemu version. It's been a while since no missing syscall is
> > >>reported and at this point the whitelist seems to be pretty mature.
> > >>
> > >>[0] - https://github.com/autotest/virt-test/commit/50e1f7d47a94f4c770880cd8ec0f18365dcba714
> > >
> > >This breaks hot_add of a network device that uses a script= argument, correct?
> > >
> > >If so, this cannot be made default.
> >
> > Anthony, I believe you're talking about the blacklist feature. This
> > is the old whitelist that is already upstream and it does not block
> > any network device to be hot plugged.
>
> The following fails to start here (the shell hangs and ps shows QEMU is
> a <defunct> process):
>
> qemu-system-x86_64 -sandbox on -enable-kvm -m 1024 -cpu host \
> -drive if=virtio,cache=none,file=test.img
>
> It is using the GTK UI.
IMO this seccomp approach is doomed since QEMU does not practice
privilege separation. QEMU is monolithic so it's really hard to create
a meaningful sets of system calls. To avoid breaking stuff you need to
be too liberal, defeating the purpose of seccomp.
For each QEMU command-line there may be a different set of syscalls that
should be allowed/forbidden.
The existing approach clearly doesn't support the full range of options
that users specify on the command-line. So I guess the options are:
1. Don't make it the default since it breaks stuff but use it for very
specific scenarios (e.g. libvirt use cases that have been well tested).
2. Provide a kind of syscall set for various QEMU options and apply the
union of them at launch. This still seems fragile but in theory it
could work.
Stefan
next prev parent reply other threads:[~2013-11-22 10:34 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-22 11:21 [Qemu-devel] [PATCH for-1.7] seccomp: setting "-sandbox on" by default Eduardo Otubo
2013-10-22 13:00 ` Anthony Liguori
2013-10-23 14:42 ` Eduardo Otubo
2013-10-30 10:04 ` Stefan Hajnoczi
2013-11-21 15:14 ` Paolo Bonzini
2013-11-21 15:48 ` Paul Moore
2013-11-21 16:22 ` Eduardo Otubo
2013-11-22 10:39 ` Stefan Hajnoczi
2013-11-22 14:44 ` Paul Moore
2013-11-22 15:48 ` Stefan Hajnoczi
2013-11-22 16:00 ` Paul Moore
2013-12-04 9:39 ` Stefan Hajnoczi
2013-12-04 13:21 ` Eduardo Otubo
2013-12-04 14:46 ` Corey Bryant
2013-12-05 13:15 ` Stefan Hajnoczi
2013-12-05 16:12 ` Will Drewry
2013-12-06 9:13 ` Stefan Hajnoczi
2013-12-06 15:40 ` Will Drewry
2013-12-07 8:13 ` Stefan Hajnoczi
2013-11-22 10:34 ` Stefan Hajnoczi [this message]
2013-11-22 14:38 ` Paul Moore
2013-12-04 13:17 ` Eduardo Otubo
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=20131122103441.GA24388@stefanha-thinkpad.redhat.com \
--to=stefanha@gmail.com \
--cc=anthony@codemonkey.ws \
--cc=coreyb@linux.vnet.ibm.com \
--cc=otubo@linux.vnet.ibm.com \
--cc=pmoore@redhat.com \
--cc=qemu-devel@nongnu.org \
/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).