Nieuwe, kritische side-channel aanval ontdekt: LVI-LFB (Load Value Injection in Line Fill Buffers)

Bitdefender-onderzoekers hebben opnieuw een proof of concept geïdentificeerd en ontwikkeld voor een nieuwe side-channel aanval.

De aanval, genaamd LVI-LFB (Load Value Injection in Line Fill Buffers), stelt een aanvaller in staat om kwaadaardige waarden te injecteren in bepaalde micro-architecturale structuren, die vervolgens door het slachtoffer worden gebruikt. Dit kan leiden tot onthulling van geheime, beschermde gegevens op verschillende toegangsniveaus.

Deze nieuwe aanval (CVE-2020-0551) treft nieuwere Intel CPU's die speculatieve uitvoering toepassen.

Beknopt overzicht

Bij het streven naar steeds snellere CPU's hebben leveranciers verschillende versies van speculatieve code-uitvoering geïmplementeerd. Bij deze techniek maakt de CPU gefundeerde aannames over programmainstructies die mogelijk nodig kunnen zijn, nog voordat vaststaat dat ze ook daadwerkelijk uitgevoerd moeten worden. Deze zogeheten speculatieve uitvoering kan sporen achterlaten in de cache, die door aanvallers gebruikt kunnen worden om data te exfiltreren uit geprivilegieerd kernelgeheugen.

Wat het onderzoek naar dergelijke aanvallen baanbrekend maakt in vergelijking met cyberaanvallen tegen meer traditionele kwetsbaarheden, is dat het doordringt tot de kern van de werking van moderne CPU's. Om gedegen onderzoek te kunnen doen, moeten onderzoeksteams een compleet begrip hebben van de interne CPU-componenten (branch-voorspelling, out-of-order uitvoering, speculatieve uitvoering, pijplijnen en caches), interne functies van het besturingssysteem (systeemaanroepen, afhandeling van interrupts en uitzonderingen, KPTI) en aanvallen op side-channels en speculatieve uitvoering in het algemeen.

Impact

Deze nieuwe aanval kan vooral veel schade aanrichten in multi-tenant omgevingen met een groot aantal werklasten, die worden uitgevoerd op hardware die gemeenschappelijk wordt gebruikt door verschillende werklastgroepen binnen een organisatie of van meerdere organisaties, zoals bij publieke en private clouds. Dit komt doordat, zoals het PoC laat zien, het in principe mogelijk is dat een minder geprivilegieerd proces onder controle van een aanvaller de control flow van een proces met hogere privileges speculatief kan kapen, indien aan bepaalde voorwaarden is voldaan.

Het meest voor de hand liggende risico is diefstal van vertrouwelijke gegevens die beschermd zouden moeten worden door beveiligingsbegrenzingen op het niveau van hardware, hypervisors en besturingssystemen. Deze informatie kan van alles zijn, van encryptiesleutels tot wachtwoorden en andere informatie die een aanvaller zou kunnen exfiltreren of gebruiken om nog meer controle over een doelwitsysteem te krijgen.

Hoe de LVI-LFB-aanval werd ontdekt en onthuld

Deze nieuwe aanvalstechniek wordt Load Value Injection genoemd. De CVE die eraan is toegewezen is CVE-2020-0551.

Onderzoekers hebben eerder alleen vanuit één richting naar MDS (Microarchitectural Data Sampling) gekeken: daarbij krijgt het slachtoffer toegang tot het geheim, dat vervolgens in de MDS-buffers wordt geladen, waarna de aanvaller de inhoud van de MDS-buffers exfiltreert door een laadinstructie te geven waarvoor microcode-assistentie nodig is (bijvoorbeeld door een ongeldig adres te lezen). De MDS-buffers kunnen echter ook andersom worden misbruikt: als een aanvaller de MDS-buffers bewerkt met een bepaalde waarde ('spraying'), kan een slachtoffer die waarde mogelijk speculatief laden wanneer een laadinstructie een dergelijke microcode-assistentie activeert (bijvoorbeeld wanneer de laadinstructie een fout veroorzaakt). Door zorgvuldig te analyseren wat Spectre is en wat MDS is, zal iemand met een scherp oog snel de onderliggende oorzaak van de nieuwe LVI-LFB kwetsbaarheid herkennen: een indirecte geheugensprong die microcode-assistentie vereist en die uit de MDS-buffers oude waarden krijgt toegevoerd. Deze waarden kunnen door een aanvaller worden gecontroleerd en dit leidt tot speculatieve uitvoering van willekeurige code.

Andere mogelijke aanvalsscenario's zijn beschreven door academische onderzoekers die het probleem onafhankelijk hebben ontdekt en voor het eerst in april 2019 aan Intel hebben gerapporteerd. Bitdefender heeft het probleem op 10 februari 2020 bij Intel gemeld. In hun reactie van 25 februari heeft Intel het probleem erkend en aangekondigd dat de algemene openbaarmaking op 10 maart 2020 zou plaatsvinden.

Welke systemen zijn getroffen?


De LVI-LFB-aanval treft nieuwere Intel-CPU's die gebruik maken van speculatieve uitvoering.

Mitigatie

Mitigatiestrategieën voor hardwaregebaseerde side-channel aanvallen kunnen in verschillende categorieën worden ingedeeld, elk met een zekere mate van operationele impact op organisaties.

  1. Hardware. Deze fixes worden rechtstreeks in de hardware toegepast en zijn alleen van toepassing op generaties CPU's die zijn gebouwd nadat de kwetsbaarheden in de architectuur waren vastgesteld.
  2. Software. Dit zijn patch-implementaties die volledig softwarematig functioneren. Kernel Page Table Isolation (KPTI) is een voorbeeld van een fix die het kernelgeheugen in een geïsoleerde virtuele adresruimte beschermt, waardoor verschillende speculatieve side-channel aanvallen (zoals Meltdown) niet langer werken. Om effectief te zijn tegen app-to-app LVI-LFB is echter een nieuw type KPTI (Horizontale KPTI) vereist. Als alternatief moet het besturingssysteem ook de MDS-buffers (met name LFB's) flushen bij de overgang van een minder geprivilegieerde modus naar een meer geprivilegieerde modus, om te voorkomen dat geheugentoegang met microcode-assistentie speculatief wordt uitgevoerd met data die onder controle van aanvallers staan.
  3. Microcode. Deze mitigaties vereisen samenwerking tussen hardware en software. De hardwareleverancier levert een microcode-patch om nieuwe functionaliteit beschikbaar te stellen (bijvoorbeeld de Spectre-, L1TF- of MDS-mitigaties), die vervolgens door leverancier(s) van de hypervisor of het besturingssysteem worden gebruikt om de kwetsbaarheden te verhelpen.
  4. Functionaliteit uitschakelen. Het uitschakelen van hyperthreading is een goed idee op systemen waar beveiliging van cruciaal belang is, evenals het serialiseren van alle kritieke laadbewerkingen met behulp van de lfence-instructie. Andere mitigaties werken bijvoorbeeld met aanpassingen in compilers, om code te genereren die niet kwetsbaar is voor dit soort aanvallen.

Een andere side-channel aanval die is ontdekt door Bitdefender, de SWAPGS-aanval, kan worden gemitigeerd met behulp van Bitdefender Hypervisor Introspection.

Credits

Het Bitdefender-team voor geavanceerde research wil graag de credits geven aan de academische onderzoekers die dit probleem in april 2019 voor het eerst aan Intel hebben gemeld, en hen ook bedanken voor hun medewerking en samenwerking vóór en na de openbaarmaking van dit probleem. De academische onderzoekers zijn:

Jo Van Bulck, Daniel Moghimi, Michael Schwarz, Moritz Lipp, Marina Minkin, Daniel Genkin, Yuval Yarom, Berk Sunar, Daniel Gruss en Frank Piessens

Deze onderzoekers hebben een speciale website gemaakt en een gedetailleerd wetenschappelijk artikel geschreven, dat hier beschikbaar is:

https://lviattack.eu/ (een gedetailleerde beschrijving van het probleem)

https://lviattack.eu/lvi.pdf (een academische whitepaper)

Aanvullende informatie is ook verkrijgbaar bij Intel:

https://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-00334.html (advies)

https://software.intel.com/security-software-guidance/insights/deep-dive-load-value-injection (technische deep-dive)