Re: [RFC] Randomness on confidential computing platforms

From: Daniel P. Berrangé
Date: Fri Jan 26 2024 - 10:58:39 EST


On Fri, Jan 26, 2024 at 03:42:12PM +0000, Reshetova, Elena wrote:
> >
> > On 26.01.24 г. 15:42 ч., Kirill A. Shutemov wrote:
> > > 4. Exit to the host/VMM with an error indication after a Confidential
> > > Computing Guest failed to obtain random input from RDRAND/RDSEED
> > > instructions after reasonable number of retries. This option allows
> > > host/VMM to take some correction action for cases when the load on
> > > RDRAND/RDSEED instructions has been put by another actor, i.e. the
> > > other guest VM. The exit to host/VMM in such cases can be made
> > > transparent for the Confidential Computing Guest in the TDX case with
> > > the assistance of the TDX module component.
> >
> > But is this really a viable solution in the face of malicious VMM? It
> > assumes that if the VMM is signaled that randomness has been exhausted
> > it will try to rectify it, what if such a signal can instead be
> > repurposed for malicious purposes? Could it perhaps be used as some sort
> > of a side channel attack ?
>
> The idea here is that it is not necessary VMM that is the cause why the
> RDRAND/RDSEED fails, so if this is the case, VMM can in theory do smth
> about the situation.
>
> We have been thinking about if it can create an additional attack vector,
> but were not able to come with one. Do you have any in mind?

A guest might exit claiming failed RDRAND when in fact no such problem
occurred, as a way to mislead the host admin into taking action against
other guests.

If the CPU performance counters could report RDRAND exhaustion directly,
then the host admin could trust that information and monitor it, but the
host shouldn't rely on the (hostile) guest software to tell it about
exhaustion.

With regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|