All of lore.kernel.org
 help / color / mirror / Atom feed
From: Blue Swirl <blauwirbel@gmail.com>
To: "Daniel P. Berrange" <berrange@redhat.com>,
	Paul Moore <pmoore@redhat.com>, Blue Swirl <blauwirbel@gmail.com>,
	qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [RFC] [PATCHv2 2/2] Adding basic calls to libseccomp in vl.c
Date: Mon, 18 Jun 2012 20:23:50 +0000	[thread overview]
Message-ID: <CAAu8pHvz1UXufYQVALAoU1CVcmTDUFCBJHsYVcBT2KQdsysSPw@mail.gmail.com> (raw)
In-Reply-To: <20120618201324.GC12697@bluepex.com>

On Mon, Jun 18, 2012 at 8:13 PM, Eduardo Otubo <otubo@linux.vnet.ibm.com> wrote:
> On Mon, Jun 18, 2012 at 02:55:35PM +0100, Daniel P. Berrange wrote:
>> On Mon, Jun 18, 2012 at 09:52:44AM -0400, Paul Moore wrote:
>> > On Monday, June 18, 2012 09:31:03 AM Daniel P. Berrange wrote:
>> > > On Fri, Jun 15, 2012 at 05:02:19PM -0400, Paul Moore wrote:
>> > > > On Friday, June 15, 2012 07:06:10 PM Blue Swirl wrote:
>> > > > > I think allowing execve() would render seccomp pretty much useless.
>> > > >
>> > > > Not necessarily.
>> > > >
>> > > > I'll agree that it does seem a bit odd to allow execve(), but there is
>> > > > still value in enabling seccomp to disable potentially buggy/exploitable
>> > > > syscalls. Let's not forget that we have over 300 syscalls on x86_64, not
>> > > > including the 32 bit versions, and even if we add all of the new syscalls
>> > > > suggested in this thread we are still talking about a small subset of
>> > > > syscalls.  As far as security goes, the old adage of "less is more"
>> > > > applies.
>> > >
>> > > I can sort of see this argument, but *only* if the QEMU process is being
>> > > run under a dedicated, fully unprivileged (from a DAC pov) user, completely
>> > > separate from anything else on the system.
>> > >
>> > > Or, of course, for a QEMU already confined by SELinux.
>> >
>> > Agreed ... and considering at least one major distribution takes this approach
>> > it seems like reasonable functionality to me.  Confining QEMU, either through
>> > DAC and/or MAC, when faced with potentially malicious guests is just good
>> > sense.
>>
>> Good, I'm not missing anything then. I'd suggest that future iterations
>> of these patches explicitly mention the deployment scenarios in which
>> this technology is able to offer increases security, and also describe
>> the scenarios where it will not improve things.
>
> Please correct me if I'm wrong here, but I don't understand how exactly
> whitelisting execve() is odd. The white list is inherit and passed along
> the child processes so they also need to have their own syscalls filtered
> by BPF in the kernel as stated in the Will's commit log[1] - "Filter
> programs will be inherited across fork/clone and execve." - I wonder if
> this is main point of your concern. Whitelisting execve() or not should be
> no difference from the security pov.

The helper might behave strangely (read: according to attacker's
wishes) when some of the required syscalls are not working.

> However, I agree that a possible future feature could a customized
> whitelist for each child process spawned. But for a first instance, the
> default whitelist should be enough to start seccomp support in Qemu.

It's a good way. I just wish the list weren't so open and lame to begin with.

>
> Also, as far as I understand, seccomp never meant to replace any of the
> technologies above mentioned. Using more than one layer of protection
> (SELinux, AppArmor MAC policy and/or DAC) should always be a good practice
> for the defense in depth.
>
> [1] -
> http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=e2cfabdfd075648216f99c2c03821cf3f47c1727
>
> --
> Eduardo Otubo
> Software Engineer
> Linux Technology Center
> IBM Systems & Technology Group
> Mobile: +55 19 8135 0885
> eotubo@linux.vnet.ibm.com
>

  reply	other threads:[~2012-06-18 20:24 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-13 19:20 [Qemu-devel] [RFC] [PATCHv2 0/2] Sandboxing Qemu guests with Libseccomp Eduardo Otubo
2012-06-13 19:20 ` [Qemu-devel] [RFC] [PATCHv2 1/2] Adding support for libseccomp in configure Eduardo Otubo
2012-06-13 19:45   ` Blue Swirl
2012-06-13 19:20 ` [Qemu-devel] [RFC] [PATCHv2 2/2] Adding basic calls to libseccomp in vl.c Eduardo Otubo
2012-06-13 19:56   ` Blue Swirl
2012-06-13 20:33     ` Daniel P. Berrange
2012-06-15 19:04       ` Blue Swirl
2012-06-18  8:33         ` Daniel P. Berrange
2012-06-18 15:22           ` Corey Bryant
2012-06-18 20:18             ` Blue Swirl
2012-06-18 21:53               ` Corey Bryant
     [not found]                 ` <CABqD9hYKLf9D37XsF6nvNmtJ=0wJ39Yu_A-JeWxDJ_8haBmEWA@mail.gmail.com>
     [not found]                   ` <4FE08025.6030406@linux.vnet.ibm.com>
     [not found]                     ` <CABqD9ha32FAuikpDojzO91Jg8Q6VTY340LShKzpvTx6FN_uacQ@mail.gmail.com>
2012-06-19 16:51                       ` Corey Bryant
2012-07-01 13:25                 ` Paolo Bonzini
2012-07-02  2:18                   ` Will Drewry
2012-07-02 14:20                     ` Corey Bryant
2012-06-13 20:30   ` Daniel P. Berrange
2012-06-15 19:06     ` Blue Swirl
2012-06-15 21:02       ` Paul Moore
2012-06-15 21:23         ` Blue Swirl
2012-06-15 21:36           ` Paul Moore
2012-06-16  6:46             ` Blue Swirl
2012-06-18 17:41               ` Corey Bryant
2012-06-19 11:04               ` Avi Kivity
2012-06-19 18:58                 ` Blue Swirl
2012-06-21  8:04                   ` Avi Kivity
     [not found]                     ` <4FEB7A4D.7050608@redhat.com>
     [not found]                       ` <CAAu8pHtYmoJ7WCK7LAOj_j2YU-nAgiLTg7q4qXL3Vu-kPRpZnw@mail.gmail.com>
2012-07-02 18:05                         ` Corey Bryant
2012-07-03 19:15                           ` Blue Swirl
2012-06-15 21:44           ` Eric Blake
2012-06-18  8:31         ` Daniel P. Berrange
2012-06-18  8:38           ` Daniel P. Berrange
2012-06-18 13:52           ` Paul Moore
2012-06-18 13:55             ` Daniel P. Berrange
2012-06-18 14:02               ` Paul Moore
2012-06-18 20:13               ` Eduardo Otubo
2012-06-18 20:23                 ` Blue Swirl [this message]
2012-06-18 15:29           ` Corey Bryant
2012-06-18 20:15           ` Blue Swirl
2012-06-19  9:23             ` Daniel P. Berrange
2012-06-19 18:44               ` Blue Swirl
2012-06-18  8:26       ` Daniel P. Berrange
2012-06-13 20:37   ` Daniel P. Berrange
2012-06-13 20:31 ` [Qemu-devel] [RFC] [PATCHv2 0/2] Sandboxing Qemu guests with Libseccomp Paul Moore
2012-06-14 21:59   ` [Qemu-devel] [libseccomp-discuss] " Kees Cook
2012-06-15 13:54     ` Paul Moore
2012-10-29 15:11       ` Corey Bryant
2012-10-29 15:32         ` Daniel P. Berrange
2012-10-29 15:40           ` Paul Moore
2012-10-29 15:51             ` Corey Bryant

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=CAAu8pHvz1UXufYQVALAoU1CVcmTDUFCBJHsYVcBT2KQdsysSPw@mail.gmail.com \
    --to=blauwirbel@gmail.com \
    --cc=berrange@redhat.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 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.