linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: Carlos Bilbao <carlos.bilbao@amd.com>
Cc: "Reshetova, Elena" <elena.reshetova@intel.com>,
	"Shishkin, Alexander" <alexander.shishkin@intel.com>,
	"Shutemov, Kirill" <kirill.shutemov@intel.com>,
	"Kuppuswamy,
	Sathyanarayanan" <sathyanarayanan.kuppuswamy@intel.com>,
	"Kleen, Andi" <andi.kleen@intel.com>,
	"Hansen, Dave" <dave.hansen@intel.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Peter Zijlstra <peterz@infradead.org>,
	"Wunner, Lukas" <lukas.wunner@intel.com>,
	Mika Westerberg <mika.westerberg@linux.intel.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Jason Wang <jasowang@redhat.com>,
	"Poimboe, Josh" <jpoimboe@redhat.com>,
	"aarcange@redhat.com" <aarcange@redhat.com>,
	Cfir Cohen <cfir@google.com>, Marc Orr <marcorr@google.com>,
	"jbachmann@google.com" <jbachmann@google.com>,
	"pgonda@google.com" <pgonda@google.com>,
	"keescook@chromium.org" <keescook@chromium.org>,
	James Morris <jmorris@namei.org>,
	Michael Kelley <mikelley@microsoft.com>,
	"Lange, Jon" <jlange@microsoft.com>,
	"linux-coco@lists.linux.dev" <linux-coco@lists.linux.dev>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: Linux guest kernel threat model for Confidential Computing
Date: Wed, 8 Feb 2023 08:19:13 +0100	[thread overview]
Message-ID: <Y+NM8a2r97qNR1hu@kroah.com> (raw)
In-Reply-To: <20044cae-4fab-7ef6-02a0-5955a56e5767@amd.com>

On Tue, Feb 07, 2023 at 01:53:34PM -0600, Carlos Bilbao wrote:
> On 2/7/23 00:03, Greg Kroah-Hartman wrote:
> 
> > On Mon, Feb 06, 2023 at 06:27:48PM -0600, Carlos Bilbao wrote:
> > > On 1/25/23 6:28 AM, Reshetova, Elena wrote:
> > > > 2) One of the described in the above doc mitigations is "hardening of the enabled
> > > > code". What we mean by this, as well as techniques that are being used are
> > > > described in this document: > https://intel.github.io/ccc-linux-guest-hardening-docs/tdx-guest-hardening.html
> > > Regarding driver hardening, does anyone have a better filtering idea?
> > > 
> > > The current solution assumes the kernel command line is trusted and cannot
> > > avoid the __init() functions that waste memory.
> > That is two different things (command line trust and __init()
> > functions), so I do not understand the relationship at all here.  Please
> > explain it better.
> 
> 
> No relation other than it would be nice to have a solution that does not
> require kernel command line and that prevents __init()s.

Again, __init() has nothing to do with the kernel command line so I do
not understand the relationship here.  Have a specific example?

> > Also, why would an __init() function waste memory?  Memory usage isn't
> > an issue here, right?
> > 
> > > I don't know if the
> > > __exit() routines of the filtered devices are called, but it doesn't sound
> > > much better to allocate memory and free it right after.
> > What device has a __exit() function?  Drivers have module init/exit
> > functions but they should do nothing but register themselves with the
> > relevant busses and they are only loaded if the device is found in the
> > system.
> > 
> > And what exactly is incorrect about allocating memory and then freeing
> > it when not needed?
> 
> 
> Currently proposed device filtering does not stop the __init() functions
> from these drivers to be called. Whatever memory is allocated by
> blacklisted drivers is wasted because those drivers cannot ever be used.
> Sure, memory can be allocated and freed as soon as it is no longer needed,
> but these memory would never be needed.

Drivers are never even loaded if the hardware is not present, and a
driver init function should do nothing anyway if it is written properly,
so again, I do not understand what you are referring to here.

Again, a real example might help explain your concerns, pointers to the
code?

> More pressing concern than wasted memory, which may be unimportant, there's
> the issue of what are those driver init functions doing. For example, as
> part of device setup, MMIO regs may be involved, which we cannot trust. It's
> a lot more code to worry about from a CoCo perspective.

Again, specific example?

And if you don't want a driver to be loaded, don't build it into your
kernel as Ted said.  Or better yet, use the in-kernel functionality to
prevent drivers from ever loading or binding to a device until you tell
it from userspace that it is safe to do so.

So I don't think this is a real issue unless you have pointers to code
you are concerned about.

> > So again, I don't understand the question, sorry.
> 
> Given the limitations of current approach, does anyone have any other ideas
> for filtering devices prior to their initialization?

What is wrong with the functionality we have today for this very thing?
Does it not work properly for you?  If so, why not, for what devices and
drivers and busses do you still have problems with?

thanks,

greg k-h

  parent reply	other threads:[~2023-02-08  7:19 UTC|newest]

Thread overview: 102+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-25 12:28 Linux guest kernel threat model for Confidential Computing Reshetova, Elena
2023-01-25 12:43 ` Greg Kroah-Hartman
2023-01-25 13:42   ` Dr. David Alan Gilbert
2023-01-25 14:13     ` Daniel P. Berrangé
2023-01-25 15:29       ` Dr. David Alan Gilbert
2023-01-26 14:23       ` Richard Weinberger
2023-01-26 14:58         ` Dr. David Alan Gilbert
2023-01-26 15:13           ` Richard Weinberger
2023-01-26 15:22             ` Dr. David Alan Gilbert
2023-01-26 15:55             ` Daniel P. Berrangé
2023-01-27  9:02             ` Jörg Rödel
2023-01-26 15:43         ` Daniel P. Berrangé
2023-01-27 11:23         ` Reshetova, Elena
2023-01-30 11:30       ` Christophe de Dinechin
2023-01-25 14:22     ` Greg Kroah-Hartman
2023-01-25 14:30       ` James Bottomley
2023-01-25 14:57       ` Dr. David Alan Gilbert
2023-01-25 15:16         ` Greg Kroah-Hartman
2023-01-25 15:45           ` Michael S. Tsirkin
2023-01-25 16:02             ` Kirill A. Shutemov
2023-01-25 17:47               ` Michael S. Tsirkin
2023-01-25 15:50           ` Dr. David Alan Gilbert
2023-01-25 18:47           ` Jiri Kosina
2023-01-26  9:19           ` Jörg Rödel
2023-01-25 21:53         ` Lukas Wunner
2023-01-26 10:48           ` Dr. David Alan Gilbert
2023-01-26 11:24             ` Jonathan Cameron
2023-01-26 13:32             ` Samuel Ortiz
     [not found]           ` <CAGXJix9-cXNW7EwJf0PVzj_Qmt5fmQvBX1KvXfRX5NAeEpnMvw@mail.gmail.com>
2023-01-26 10:58             ` Jonathan Cameron
2023-01-26 13:15               ` Samuel Ortiz
2023-01-26 16:07                 ` Jonathan Cameron
2023-01-27  7:02                   ` Samuel Ortiz
2023-01-26 15:44             ` Lukas Wunner
2023-01-26 16:25               ` Michael S. Tsirkin
2023-01-26 21:41                 ` Lukas Wunner
2023-01-27  7:17               ` Samuel Ortiz
2023-01-25 20:13       ` Jiri Kosina
2023-01-26 13:13       ` Reshetova, Elena
2023-01-25 15:29   ` Reshetova, Elena
2023-01-25 16:40     ` Theodore Ts'o
2023-01-26  8:08       ` Reshetova, Elena
2023-01-26 11:19     ` Leon Romanovsky
2023-01-26 11:29       ` Reshetova, Elena
2023-01-26 12:30         ` Leon Romanovsky
2023-01-26 13:28           ` Reshetova, Elena
2023-01-26 13:50             ` Leon Romanovsky
2023-01-26 20:54             ` Theodore Ts'o
2023-01-27 19:24             ` James Bottomley
2023-01-30  7:42               ` Reshetova, Elena
2023-01-30 12:40                 ` James Bottomley
2023-01-31 11:31                   ` Reshetova, Elena
2023-01-31 13:28                     ` James Bottomley
2023-01-31 15:14                       ` Christophe de Dinechin
2023-01-31 17:39                         ` Michael S. Tsirkin
2023-02-01 10:52                           ` Christophe de Dinechin Dupont de Dinechin
2023-02-01 11:01                             ` Michael S. Tsirkin
2023-02-01 13:15                               ` Christophe de Dinechin Dupont de Dinechin
2023-02-01 16:02                                 ` Michael S. Tsirkin
2023-02-01 17:13                                   ` Christophe de Dinechin
2023-02-06 18:58                                     ` Dr. David Alan Gilbert
2023-02-02  3:24                               ` Jason Wang
2023-02-01 10:24                         ` Christophe de Dinechin
2023-01-31 16:34                       ` Reshetova, Elena
2023-01-31 17:49                         ` James Bottomley
2023-02-02 14:51                     ` Jeremi Piotrowski
2023-02-03 14:05                       ` Reshetova, Elena
2023-01-27  9:32           ` Jörg Rödel
2023-01-26 13:58         ` Dr. David Alan Gilbert
2023-01-26 17:48           ` Reshetova, Elena
2023-01-26 18:06             ` Leon Romanovsky
2023-01-26 18:14               ` Dr. David Alan Gilbert
2023-01-26 16:29     ` Michael S. Tsirkin
2023-01-27  8:52       ` Reshetova, Elena
2023-01-27 10:04         ` Michael S. Tsirkin
2023-01-27 12:25           ` Reshetova, Elena
2023-01-27 14:32             ` Michael S. Tsirkin
2023-01-27 20:51             ` Carlos Bilbao
2023-01-30 11:36 ` Christophe de Dinechin
2023-01-30 12:00   ` Kirill A. Shutemov
2023-01-30 15:14     ` Michael S. Tsirkin
2023-01-31 10:06   ` Reshetova, Elena
2023-01-31 16:52     ` Christophe de Dinechin
2023-02-02 11:31       ` Reshetova, Elena
2023-02-07  0:27 ` Carlos Bilbao
2023-02-07  6:03   ` Greg Kroah-Hartman
2023-02-07 19:53     ` Carlos Bilbao
2023-02-07 21:55       ` Michael S. Tsirkin
2023-02-08  1:51       ` Theodore Ts'o
2023-02-08  9:31         ` Michael S. Tsirkin
2023-02-08 10:44           ` Reshetova, Elena
2023-02-08 10:58             ` Greg Kroah-Hartman
2023-02-08 16:19               ` Christophe de Dinechin
2023-02-08 17:29                 ` Greg Kroah-Hartman
2023-02-08 18:02                   ` Dr. David Alan Gilbert
2023-02-08 18:58                     ` Thomas Gleixner
2023-02-09 19:48                       ` Dr. David Alan Gilbert
2023-02-08 13:00             ` Michael S. Tsirkin
2023-02-08 13:42             ` Theodore Ts'o
2023-02-08  7:19       ` Greg Kroah-Hartman [this message]
2023-02-08 10:16       ` Reshetova, Elena
2023-02-08 13:15         ` Michael S. Tsirkin
2023-02-09 14:30           ` Reshetova, Elena

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=Y+NM8a2r97qNR1hu@kroah.com \
    --to=gregkh@linuxfoundation.org \
    --cc=aarcange@redhat.com \
    --cc=alexander.shishkin@intel.com \
    --cc=andi.kleen@intel.com \
    --cc=carlos.bilbao@amd.com \
    --cc=cfir@google.com \
    --cc=dave.hansen@intel.com \
    --cc=elena.reshetova@intel.com \
    --cc=jasowang@redhat.com \
    --cc=jbachmann@google.com \
    --cc=jlange@microsoft.com \
    --cc=jmorris@namei.org \
    --cc=jpoimboe@redhat.com \
    --cc=keescook@chromium.org \
    --cc=kirill.shutemov@intel.com \
    --cc=linux-coco@lists.linux.dev \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lukas.wunner@intel.com \
    --cc=marcorr@google.com \
    --cc=mika.westerberg@linux.intel.com \
    --cc=mikelley@microsoft.com \
    --cc=mst@redhat.com \
    --cc=peterz@infradead.org \
    --cc=pgonda@google.com \
    --cc=sathyanarayanan.kuppuswamy@intel.com \
    --cc=tglx@linutronix.de \
    /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).