public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
From: Anthony Liguori <anthony@codemonkey.ws>
To: Joanna Rutkowska <joanna@invisiblethingslab.com>
Cc: Avi Kivity <avi@redhat.com>, kvm@vger.kernel.org
Subject: Re: A few KVM security questions
Date: Mon, 07 Dec 2009 11:38:52 -0600	[thread overview]
Message-ID: <4B1D3DAC.80508@codemonkey.ws> (raw)
In-Reply-To: <4B1D3840.1000801@invisiblethingslab.com>

Joanna Rutkowska wrote:
> Avi Kivity wrote:
>   
>> On 12/07/2009 07:09 PM, Joanna Rutkowska wrote:
>>     
>>>> Also, you can use qemu to provide the backends to a Xen PV guest (see -M
>>>> xenpv).  The effect is that you are moving that privileged code from the
>>>> kernel (netback/blkback) to userspace (qemu -M xenpv).
>>>>
>>>> In general, KVM tends to keep code in userspace unless absolutely
>>>> necessary.  That's a fundamental difference from Xen which tends to do
>>>> the opposite.
>>>>
>>>>      
>>>>         
>>> But the difference is that in case of Xen one can *easily* move the
>>> backends to small unprivileged VMs. In that case it doesn't matter the
>>> code is in kernel mode, it's still only in an unprivileged domain.
>>>
>>>    
>>>       
>> They're not really unprivileged, one can easily program the dma
>> controller of their assigned pci card to read and write arbitrary host
>> memory.
>>
>>     
>
> That's not true if you use VT-d.
>   

I'm skeptical that VT-d in its current form provides protection against 
a malicious guest.  The first problem is interrupt delivery.  I don't 
think any hypervisor has really put much thought into mitigating 
interrupt storms as a DoS.  I think there are a number of nasty things 
that can be done here.

Even if you assume that there aren't flaws in VT-d wrt malicious guests, 
we have generations of hardware that have not been designed to be robust 
against malicious operating systems.  There are almost certainly untold 
numbers of exploitable hardware bugs that can be used to do all sorts of 
terrible things to the physical system.

VT-d protects against DMA access, but there's still plenty of things a 
malicious PCI device can do to harm the physical system.  I'm sure you 
could easily program a PCI device to flood the bus which effectively 
mounts a DoS against other domains.  There is no mechanism to arbitrate 
this today.  It's really a dramatically different model from a security 
perspective.

Regards,

Anthony Liguori

  parent reply	other threads:[~2009-12-07 17: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
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 [this message]
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=4B1D3DAC.80508@codemonkey.ws \
    --to=anthony@codemonkey.ws \
    --cc=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