[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <877cg3fil3.fsf@redhat.com>
Date: Thu, 09 May 2024 11:19:36 +0200
From: Vitaly Kuznetsov <vkuznets@...hat.com>
To: Alexander Graf <graf@...zon.com>, Ashish Kalra <Ashish.Kalra@....com>,
tglx@...utronix.de, mingo@...hat.com, bp@...en8.de,
dave.hansen@...ux.intel.com, x86@...nel.org
Cc: rafael@...nel.org, peterz@...radead.org, adrian.hunter@...el.com,
sathyanarayanan.kuppuswamy@...ux.intel.com, jun.nakajima@...el.com,
rick.p.edgecombe@...el.com, thomas.lendacky@....com, michael.roth@....com,
seanjc@...gle.com, kai.huang@...el.com, bhe@...hat.com,
kirill.shutemov@...ux.intel.com, bdas@...hat.com, dionnaglaze@...gle.com,
anisinha@...hat.com, jroedel@...e.de, ardb@...nel.org,
kexec@...ts.infradead.org, linux-coco@...ts.linux.dev,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH v4 0/4] x86/snp: Add kexec support
Alexander Graf <graf@...zon.com> writes:
> Correct. With IMA, you even do exactly that: Enforce a signature check
> of the next binary with kexec.
>
> The problem is that you typically want to update the system because
> something is broken; most likely your original environment had a
> security issue somewhere. From a pure SEV-SNP attestation point of view,
> you can not distinguish between the patched and unpatched environment:
> Both look the same.
>
> So while kexec isn't the problem, it's the fact that you can't tell
> anyone that you're now running a fixed version of the code :).
..
>
> I'm happy for CoCo to stay smoke and mirrors :).
"Only a Sith deals in absolutes" :-)
> But I believe that if
> you want to genuinely draw a trust chain back to an AMD/Intel
> certificate, we need to come up with a good way of making updates work
> with a working trust chain so that whoever checks whether you're running
> sanctioned code is able to validate the claim.
Launch measurements are what they are, they describe the state of your
guest before it started booting. There are multiple mechanisms in Linux
which change CPL0 code already: self-modifying code like static keys,
loadable modules, runtime patching, kexec,... In case some specific
deployment requires stronger guarantees we can probably introduce
something like 'full lockdown' mode (as a compile time option, I guess)
which would disable all of the aforementioned mechanisms. It will still
not be a hard proof that the running code matches launch measurements
(because vulnerabilities/bugs may still exist) I guess but could be an
improvement.
Basically, what I wanted to argue is that kexec does not need to be
treated 'specially' for CVMs if we keep all other ways to modify kernel
code. Making these methods 'attestable' is currently a challenge indeed.
--
Vitaly
Powered by blists - more mailing lists