From: David Woodhouse <dwmw2@infradead.org>
To: Matthew Garrett <matthew.garrett@nebula.com>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-efi@vger.kernel.org" <linux-efi@vger.kernel.org>,
"keescook@chromium.org" <keescook@chromium.org>,
"hpa@zytor.com" <hpa@zytor.com>
Subject: Re: [PATCH V3 02/11] PCI: Lock down BAR access when module security is enabled
Date: Wed, 04 Sep 2013 19:58:29 +0100 [thread overview]
Message-ID: <1378321109.2627.9.camel@shinybook.infradead.org> (raw)
In-Reply-To: <1378314286.13193.5.camel@x230>
[-- Attachment #1: Type: text/plain, Size: 1909 bytes --]
On Wed, 2013-09-04 at 17:04 +0000, Matthew Garrett wrote:
> Do we have in-kernel API to guarantee that a given PCI device is
> actively isolated by an IOMMU such that it can't modify any host kernel
> pages that aren't explicitly intended to be writable by the device? That
> seems to be the biggest constraint.
We don't, but it's not hard to add one if we have a consensus on exactly
what it needs to mean.
> How does virt passthrough work in this case? The current situation
> appears to be that qemu just passes the BARs through to the guest, and
> it's the guest that sets things up. We'd need to be able to ensure that
> there's no way the guest driver can cause DMA into the host kernel.
We set up the IOMMU page tables so that the virtual bus addresses seen
by the PCI device are 1:1 mapped to the guest "physical" address space.
That is, what the PCI device sees as a "physical" address is equivalent
to what the guest sees as a "physical" address space. It can access
memory which belongs to that guest, and nothing else. So that should be
fine.
(Currently, the guest sees no IOMMU. There's just that permanent 1:1
mapping of all of the guest's memory so that it's visible to the device.
We may later implement a virtual IOMMU within qemu, and then we'll have
more dynamic mappings. But the principle will remain the same: PCI
devices assigned to a KVM guest can only 'see' memory pages which belong
to that guest.
> > And there are non-DMA considerations too, aren't there? What about just
> > writing some fun stuff to a memory BAR and then writing to PCI config to
> > map that BAR to an address that we can get executed by kernel code?
>
> Yes, that's why config space is locked down for now.
OK.
--
David Woodhouse Open Source Technology Centre
David.Woodhouse@intel.com Intel Corporation
[-- Attachment #2: smime.p7s --]
[-- Type: application/x-pkcs7-signature, Size: 5745 bytes --]
next prev parent reply other threads:[~2013-09-04 18:58 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-03 23:50 (unknown), Matthew Garrett
2013-09-03 23:50 ` [PATCH V3 01/11] Add secure_modules() call Matthew Garrett
[not found] ` <1378252218-18798-2-git-send-email-matthew.garrett-05XSO3Yj/JvQT0dZR+AlfA@public.gmane.org>
2013-09-04 0:45 ` James Morris
2013-09-05 2:14 ` joeyli
2013-09-03 23:50 ` [PATCH V3 02/11] PCI: Lock down BAR access when module security is enabled Matthew Garrett
[not found] ` <1378252218-18798-3-git-send-email-matthew.garrett-05XSO3Yj/JvQT0dZR+AlfA@public.gmane.org>
2013-09-04 0:45 ` James Morris
2013-09-04 16:57 ` David Woodhouse
[not found] ` <1378313861.4210.39.camel-W2I5cNIroUsVm/YvaOjsyQ@public.gmane.org>
2013-09-04 17:04 ` Matthew Garrett
2013-09-04 18:58 ` David Woodhouse [this message]
[not found] ` <1378321109.2627.9.camel-Fexsq3y4057IgHVZqg5X0TlWvGAXklZc@public.gmane.org>
2013-09-04 19:01 ` Matthew Garrett
2013-09-04 19:31 ` David Woodhouse
2013-09-03 23:50 ` [PATCH V3 03/11] x86: Lock down IO port " Matthew Garrett
2013-09-04 0:45 ` James Morris
[not found] ` <1378252218-18798-4-git-send-email-matthew.garrett-05XSO3Yj/JvQT0dZR+AlfA@public.gmane.org>
2013-09-05 3:52 ` H. Peter Anvin
[not found] ` <5227FFE8.5050102-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>
2013-09-05 3:58 ` Matthew Garrett
2013-09-05 15:36 ` H. Peter Anvin
2013-09-03 23:50 ` [PATCH V3 04/11] ACPI: Limit access to custom_method Matthew Garrett
[not found] ` <1378252218-18798-5-git-send-email-matthew.garrett-05XSO3Yj/JvQT0dZR+AlfA@public.gmane.org>
2013-09-04 0:46 ` James Morris
2013-09-03 23:50 ` [PATCH V3 05/11] asus-wmi: Restrict debugfs interface when module loading is restricted Matthew Garrett
[not found] ` <1378252218-18798-6-git-send-email-matthew.garrett-05XSO3Yj/JvQT0dZR+AlfA@public.gmane.org>
2013-09-04 0:46 ` James Morris
2013-09-03 23:50 ` [PATCH V3 06/11] Restrict /dev/mem and /dev/kmem " Matthew Garrett
[not found] ` <1378252218-18798-7-git-send-email-matthew.garrett-05XSO3Yj/JvQT0dZR+AlfA@public.gmane.org>
2013-09-04 0:47 ` James Morris
[not found] ` <1378252218-18798-1-git-send-email-matthew.garrett-05XSO3Yj/JvQT0dZR+AlfA@public.gmane.org>
2013-09-03 23:50 ` [PATCH V3 07/11] acpi: Ignore acpi_rsdp kernel parameter " Matthew Garrett
2013-09-03 23:50 ` [PATCH V3 11/11] Add option to automatically enforce module signatures when in Secure Boot mode Matthew Garrett
2013-09-05 3:13 ` joeyli
[not found] ` <1378252218-18798-12-git-send-email-matthew.garrett-05XSO3Yj/JvQT0dZR+AlfA@public.gmane.org>
2013-09-04 1:42 ` James Morris
2013-09-04 1:42 ` Matthew Garrett
2013-09-05 8:24 ` joeyli
2013-09-05 10:16 ` Matt Fleming
[not found] ` <20130905101649.GL28598-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy@public.gmane.org>
2013-09-05 12:54 ` Matthew Garrett
2013-09-04 15:53 ` Kees Cook
[not found] ` <CAGXu5jLCTU1MG4fYDzpT=TAP9DRAUuRuhZNB+edJsOzN4iXbDw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-09-04 16:05 ` Re: Josh Boyer
2013-09-03 23:50 ` [PATCH V3 08/11] kexec: Disable at runtime if the kernel enforces module loading restrictions Matthew Garrett
[not found] ` <1378252218-18798-9-git-send-email-matthew.garrett-05XSO3Yj/JvQT0dZR+AlfA@public.gmane.org>
2013-09-04 0:48 ` James Morris
2013-09-04 20:09 ` jerry.hoemann-VXdhtT5mjnY
[not found] ` <20130904200959.GE8540-dMAi7lA+vBPDUbYHzcRnttBPR1lH4CV8@public.gmane.org>
2013-09-04 20:12 ` Matthew Garrett
2013-09-04 20:14 ` Josh Boyer
2013-09-08 6:40 ` Greg KH
[not found] ` <20130908064027.GA3587-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2013-09-08 6:44 ` Matthew Garrett
2013-09-08 7:24 ` Greg KH
[not found] ` <20130908072408.GA5092-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2013-09-08 14:40 ` Matthew Garrett
2013-09-08 15:51 ` Kees Cook
[not found] ` <CAGXu5jLwCt6RtQC+kxcUC69tMydx8DO2QWDv3jK6_mOyT_iNbA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-09-08 16:18 ` Greg KH
[not found] ` <20130908161859.GA18946-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2013-09-08 16:24 ` Matthew Garrett
2013-09-08 16:39 ` Greg KH
[not found] ` <20130908163926.GA19665-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2013-09-08 16:59 ` Matthew Garrett
2013-09-08 17:22 ` Greg KH
[not found] ` <20130908172249.GB20959-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2013-09-08 17:25 ` Matthew Garrett
2013-09-08 17:11 ` James Bottomley
[not found] ` <1378660284.2429.11.camel-sFMDBYUN5F8GjUHQrlYNx2Wm91YjaHnnhRte9Li2A+AAvxtiuMwx3w@public.gmane.org>
2013-09-08 17:15 ` Matthew Garrett
2013-09-08 17:22 ` James Bottomley
[not found] ` <1378660975.2429.14.camel-sFMDBYUN5F8GjUHQrlYNx2Wm91YjaHnnhRte9Li2A+AAvxtiuMwx3w@public.gmane.org>
2013-09-08 17:27 ` Matthew Garrett
2013-09-08 17:32 ` James Bottomley
[not found] ` <1378661576.2429.16.camel-sFMDBYUN5F8GjUHQrlYNx2Wm91YjaHnnhRte9Li2A+AAvxtiuMwx3w@public.gmane.org>
2013-09-08 17:38 ` Matthew Garrett
2013-09-03 23:50 ` [PATCH V3 09/11] uswsusp: Disable when module loading is restricted Matthew Garrett
[not found] ` <1378252218-18798-10-git-send-email-matthew.garrett-05XSO3Yj/JvQT0dZR+AlfA@public.gmane.org>
2013-09-04 0:48 ` James Morris
2013-09-05 3:20 ` joeyli
2013-09-03 23:50 ` [PATCH V3 10/11] x86: Restrict MSR access " Matthew Garrett
[not found] ` <1378252218-18798-11-git-send-email-matthew.garrett-05XSO3Yj/JvQT0dZR+AlfA@public.gmane.org>
2013-09-04 0:49 ` James Morris
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=1378321109.2627.9.camel@shinybook.infradead.org \
--to=dwmw2@infradead.org \
--cc=hpa@zytor.com \
--cc=keescook@chromium.org \
--cc=linux-efi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=matthew.garrett@nebula.com \
/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).