public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
From: Avi Kivity <avi@redhat.com>
To: Joanna Rutkowska <joanna@invisiblethingslab.com>
Cc: kvm@vger.kernel.org
Subject: Re: A few KVM security questions
Date: Mon, 07 Dec 2009 15:38:12 +0200	[thread overview]
Message-ID: <4B1D0544.9000603@redhat.com> (raw)
In-Reply-To: <4B1D0383.1080306@invisiblethingslab.com>

On 12/07/2009 03:30 PM, Joanna Rutkowska wrote:
> Avi Kivity wrote:
>
>    
>>> 1) Do you have any support for para-virtualized VMs?
>>>        
>> Yes, for example, we support paravirtualized timers and mmu for Linux.
>> These are fairly minimal compared to Xen's pv domains.
>>
>>      
> Can I run a regular Linux as PV-guest? Specifically, can I get rid of
> qemu totally, assuming I have only PV guests?
>
>    

No.  Paravirtualization just augments the standard hardware interface, 
it doesn't replace it as in Xen.

> E.g. do you have PV network and disk frontends (PV drivers), that I
> could use on guests and that do not use qemu at all?
>    

We do have PV network and disk frontends, but the backends (devices) are 
still in qemu.

>> Should be doable by assigning the NIC to a driver domain and bridging it
>> to a virtio driver; then have the driver domain's virtio device talk to
>> the ordinary guests.
>>      
> But bridging would still require to have some networking support (+net
> backends) on the host (sure, without any real NIC driver, but still),
> correct?
>    

If you were willing to hack a bit, you can use any IPC to pass the 
packets instead of the networking stack (for example, shared memory + 
eventfd for signalling).

>>> 4) Do you have some method of excluding particular PCI devices from
>>> being initialized by your host Linux? E.g. those devices that are later
>>> to be assigned to some VMs (via VT-d passthrough)?
>>>        
>> Yes, there is a stub driver that does this.
>>
>>      
> Does this stub driver sets DMA protections, so that the device in
> question cannot access any host memory?
>
> That is important, because once you assigned a device to some VM, we
> should assume the VM might have somehow compromised the device, e.g.
> reflashed the firmware of the NIC, perhaps. So, it's important to be
> able to protect the hypervisor from such devices.
>    

kvm places assigned devices in an iommu protection domain so it cannot 
attack the host.  Once the guest stops using the device, we reset it.  
If the guest is able to upload a malicious, persistent payload to the 
device, then when the device is reused whoever uses it will be 
vulnerable (whether a new guest or the host).

-- 
error compiling committee.c: too many arguments to function


  reply	other threads:[~2009-12-07 13:38 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-12-07 13:05 A few KVM security questions Joanna Rutkowska
2009-12-07 13:17 ` Avi Kivity
2009-12-07 13:30   ` Joanna Rutkowska
2009-12-07 13:38     ` Avi Kivity [this message]
2009-12-07 14:06       ` Joanna Rutkowska
2009-12-07 14:09         ` Avi Kivity
2009-12-07 16:44       ` Anthony Liguori
2009-12-07 17:09         ` Joanna Rutkowska
2009-12-07 17:13           ` Avi Kivity
2009-12-07 17:15             ` Joanna Rutkowska
2009-12-07 17:18               ` Avi Kivity
2009-12-07 17:33                 ` Joanna Rutkowska
2009-12-07 18:34                   ` Avi Kivity
2009-12-09 10:43                   ` Pasi Kärkkäinen
2009-12-07 17:38               ` Anthony Liguori
2009-12-07 17:45                 ` Joanna Rutkowska
     [not found]                 ` <20091207181556.GM4679@tyrion.haifa.ibm.com>
2009-12-07 19:58                   ` Anthony Liguori
2009-12-07 17:33           ` Anthony Liguori
2009-12-07 17:58             ` Joanna Rutkowska
2009-12-07 17:47           ` Daniel P. Berrange
2009-12-07 13:55   ` Joanna Rutkowska
2009-12-07 14:01     ` Avi Kivity
2009-12-07 16:47     ` 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=4B1D0544.9000603@redhat.com \
    --to=avi@redhat.com \
    --cc=joanna@invisiblethingslab.com \
    --cc=kvm@vger.kernel.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