All of lore.kernel.org
 help / color / mirror / Atom feed
From: Don Porter <porter@cs.unc.edu>
To: Sasha Levin <sashal@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>,
	Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>,
	Andi Kleen <ak@linux.intel.com>,
	linux-kernel@vger.kernel.org, bp@alien8.de, luto@kernel.org,
	hpa@zytor.com, dave.hansen@intel.com, tony.luck@intel.com,
	ravi.v.shankar@intel.com, chang.seok.bae@intel.com
Subject: Re: [PATCH v12 00/18] Enable FSGSBASE instructions
Date: Tue, 26 May 2020 18:03:35 -0400	[thread overview]
Message-ID: <7a25e82a-9ef1-f13b-be42-2d7a693592b4@cs.unc.edu> (raw)
In-Reply-To: <20200526202739.GG33628@sasha-vm>

On 5/26/20 4:27 PM, Sasha Levin wrote:
> On Tue, May 26, 2020 at 08:42:09AM -0400, Don Porter wrote:
>> On 5/22/20 8:45 PM, Thomas Gleixner wrote:
>>> let me clarify, that despite your intentions:
>>>
>>>     - there is not a single word in any paper, slide deck, documentation
>>>       etc. which mentions that loading this module and enabling FSGSBASE
>>>       behind the kernels back is a fully unpriviledged root hole.
>>>
>>>     - the module lacks a big fat warning emitted to dmesg, that this
>>>       turns the host kernel into a complete security disaster.
>>>
>>>     - the module fails to set the TAINT_CRAP flag when initialized.
>>>
>>> This shows a pretty obvious discrepancy between intention and action.
>>
>> I think there is a significant misunderstanding here.  This line of 
>> research assumes the kernel is already compromised and behaving 
>> adversarially toward a more trusted application.  Thus, the attack 
>> surface under scrutiny in these projects is between the enclave and 
>> the rest of the system.  Not that we want kernels to be rooted, or 
>> make this easier, but exploits happen in practice.
>>
>> The threat model for Graphene, and most SGX papers, is quite explicit: 
>> we assume that Intel’s CPU package, the software in the enclave, and 
>> possibly Intel’s Attestation Service (IAS) are the only trusted 
>> components.  Any other software should be assumed compromised, and one 
>> can even assume memory is physically tampered or that one has plugged 
>> in an adversarial device. It is not a question of the limitations of 
>> the kernel, the threat model assumes that the kernel is already rooted.
> 
> You really have to look beyond just what Graphene guarantees at this
> point; it does not live on it's own island and it's success isn't
> measured purely based on how well it handles it's threat model.
> 
> Yes, the threat model assumes the kernel was rooted, but you don't go
> off and set the root password to '12345678' on those machines, right?
> Attackers would be more than happy to run botnets, spam mailers, and
> host child porn on your servers if you give them the opportunity, let's
> not do that.

I think we are in agreement and have a common interest here.

>> For the community these papers are typically written to, this 
>> assumption would be well understood.  And thus it is common to see 
>> code artifacts that might emulate or even undermine security of 
>> untrusted components. Not appropriate for production use, but for the 
>> typical audience, this risk would be understood.  And, initially, when 
>> people started using Graphene, I checked who they were - almost 
>> exclusively SGX researchers who would have this context.  It has only 
>> been recently that the interest has grown to a level that these sorts 
>> of warnings need to be revised for a more general audience.  But the 
>> point that we should revise our readme and warnings for a more general 
>> audience is well taken.
> 
> I'm really worried about the disconnect between how you view the current
> state of Graphene (and the industry) vs Intel and the various cloud
> providers.
> 
> You keep suggesting that its just past the academic research state,
> while Intel and the big cloud providers are already pushing it to
> external customers.  Every one of those cloud providers has a preview/GA
> secure enclave offering.
> 

I wonder if you are conflating Graphene with SGX?  I understand that 
many cloud vendors are offering SGX in preview/GA, but there are other 
frameworks to build these offerings on, such as Intel's SGX SDK or 
Haven.  It would be news to me if every major cloud vendor were putting 
Graphene in production.

  reply	other threads:[~2020-05-26 22:03 UTC|newest]

Thread overview: 76+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-11  4:52 [PATCH v12 00/18] Enable FSGSBASE instructions Sasha Levin
2020-05-11  4:52 ` [PATCH v12 01/18] x86/ptrace: Prevent ptrace from clearing the FS/GS selector Sasha Levin
2020-05-11  4:52 ` [PATCH v12 02/18] selftests/x86/fsgsbase: Test GS selector on ptracer-induced GS base write Sasha Levin
2020-05-11  4:52 ` [PATCH v12 03/18] x86/cpu: Add 'unsafe_fsgsbase' to enable CR4.FSGSBASE Sasha Levin
2020-05-11  4:52 ` [PATCH v12 04/18] x86/entry/64: Clean up paranoid exit Sasha Levin
2020-05-11  4:52 ` [PATCH v12 05/18] x86/entry/64: Switch CR3 before SWAPGS in paranoid entry Sasha Levin
2020-05-11  4:52 ` [PATCH v12 06/18] x86/entry/64: Introduce the FIND_PERCPU_BASE macro Sasha Levin
2020-05-11  4:53 ` [PATCH v12 07/18] x86/entry/64: Handle FSGSBASE enabled paranoid entry/exit Sasha Levin
2020-05-11  4:53 ` [PATCH v12 08/18] x86/entry/64: Document GSBASE handling in the paranoid path Sasha Levin
2020-05-11  4:53 ` [PATCH v12 09/18] x86/fsgsbase/64: Add intrinsics for FSGSBASE instructions Sasha Levin
2020-05-11  4:53 ` [PATCH v12 10/18] x86/fsgsbase/64: Enable FSGSBASE instructions in helper functions Sasha Levin
2020-05-18 18:20   ` Thomas Gleixner
2020-05-18 20:24     ` Sasha Levin
2020-05-18 22:59       ` Thomas Gleixner
2020-05-19 12:20       ` David Laight
2020-05-19 14:48         ` Thomas Gleixner
2020-05-20  9:13           ` David Laight
2020-05-11  4:53 ` [PATCH v12 11/18] x86/fsgsbase/64: Use FSGSBASE in switch_to() if available Sasha Levin
2020-05-11  4:53 ` [PATCH v12 12/18] x86/fsgsbase/64: move save_fsgs to header file Sasha Levin
2020-05-11  4:53 ` [PATCH v12 13/18] x86/fsgsbase/64: Use FSGSBASE instructions on thread copy and ptrace Sasha Levin
2020-05-11  4:53 ` [PATCH v12 14/18] x86/speculation/swapgs: Check FSGSBASE in enabling SWAPGS mitigation Sasha Levin
2020-05-11  4:53 ` [PATCH v12 15/18] selftests/x86/fsgsbase: Test ptracer-induced GS base write with FSGSBASE Sasha Levin
2020-05-11  4:53 ` [PATCH v12 16/18] x86/fsgsbase/64: Enable FSGSBASE on 64bit by default and add a chicken bit Sasha Levin
2020-05-11  4:53 ` [PATCH v12 17/18] x86/elf: Enumerate kernel FSGSBASE capability in AT_HWCAP2 Sasha Levin
2020-05-11  4:53 ` [PATCH v12 18/18] Documentation/x86/64: Add documentation for GS/FS addressing mode Sasha Levin
2020-05-15  9:24 ` [PATCH v12 00/18] Enable FSGSBASE instructions Jarkko Sakkinen
2020-05-15 16:40   ` Sasha Levin
2020-05-15 17:55     ` Andi Kleen
2020-05-15 23:07       ` Sasha Levin
2020-05-16 12:21       ` Jarkko Sakkinen
2020-05-16  9:50     ` Jarkko Sakkinen
2020-05-18 15:34       ` Andi Kleen
2020-05-18 20:01         ` Jarkko Sakkinen
2020-05-18 23:03           ` Thomas Gleixner
2020-05-19 16:48             ` Jarkko Sakkinen
2020-05-22 20:14               ` Don Porter
2020-05-22 20:55                 ` Dave Hansen
2020-05-23  0:45                 ` Thomas Gleixner
2020-05-24 19:45                   ` hpa
2020-05-24 21:19                     ` Sasha Levin
2020-05-24 23:44                       ` hpa
2020-05-25  7:54                       ` Richard Weinberger
2020-05-25 21:56                         ` Tony Luck
2020-05-26  8:12                         ` David Laight
2020-05-26  8:23                           ` Richard Weinberger
2020-05-27  8:31                     ` Jarkko Sakkinen
2020-05-26 12:42                   ` Don Porter
2020-05-26 20:27                     ` Sasha Levin
2020-05-26 22:03                       ` Don Porter [this message]
2020-05-26 22:51                         ` Sasha Levin
2020-05-28 17:37                           ` Don Porter
2020-05-28 10:29                     ` Thomas Gleixner
2020-05-28 17:40                       ` Don Porter
2020-05-28 18:38                         ` Andy Lutomirski
2020-05-29 15:27                           ` Wojtek Porczyk
2020-06-25 15:27                             ` Don Porter
2020-06-25 21:37                               ` Jarkko Sakkinen
2020-07-18 18:19                                 ` Don Porter
2020-07-23  3:23                                   ` Jarkko Sakkinen
2020-05-28 19:19                         ` Jarkko Sakkinen
2020-05-28 19:41                           ` Sasha Levin
2020-05-29  3:07                             ` Jarkko Sakkinen
2020-05-29  3:10                               ` Jarkko Sakkinen
2020-06-25 15:30                                 ` Don Porter
2020-06-25 21:40                                   ` Jarkko Sakkinen
2020-05-23  4:19                 ` Andi Kleen
2020-05-28 10:36                   ` Thomas Gleixner
2020-05-27  8:20                 ` Jarkko Sakkinen
2020-05-27 12:42                   ` Wojtek Porczyk
2020-05-18  9:51     ` Thomas Gleixner
2020-05-18 15:16       ` Sasha Levin
2020-05-18 18:28         ` Thomas Gleixner
2020-05-18 19:36       ` Jarkko Sakkinen
2020-05-18  6:18 ` Christoph Hellwig
2020-05-18 12:33   ` Sasha Levin
2020-05-18 14:53 ` Thomas Gleixner

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=7a25e82a-9ef1-f13b-be42-2d7a693592b4@cs.unc.edu \
    --to=porter@cs.unc.edu \
    --cc=ak@linux.intel.com \
    --cc=bp@alien8.de \
    --cc=chang.seok.bae@intel.com \
    --cc=dave.hansen@intel.com \
    --cc=hpa@zytor.com \
    --cc=jarkko.sakkinen@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luto@kernel.org \
    --cc=ravi.v.shankar@intel.com \
    --cc=sashal@kernel.org \
    --cc=tglx@linutronix.de \
    --cc=tony.luck@intel.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 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.