SQUIP, een nieuwe aanval die AMD-processors aantast en leidt tot datalekken

een groep van iOnderzoekers van de Technische Universiteit van Graz (Oostenrijk), voorheen bekend van de ontwikkeling van de MDS-, NetSpectre-, Throwhammer- en ZombieLoad-aanvallen, heeft een nieuwe zijkanaalaanval onthuld (CVE-2021-46778) in de wachtrij van de AMD-processorplanner die wordt gebruikt om de uitvoering van instructies in verschillende uitvoeringseenheden van de CPU te plannen.

De aanval, genaamd SQUIP, maakt het mogelijk om de gegevens die in de berekeningen worden gebruikt in een ander proces te bepalen of virtuele machine of organiseer een verborgen communicatiekanaal tussen processen of virtuele machines waarmee gegevens kunnen worden uitgewisseld zonder tussenkomst van de systeemtoegangscontrolemechanismen.

De AMD CPU's gebaseerd op 1e, 2e en 3e Zen-microarchitecturen generatie (AMD Ryzen 2000-5000, AMD Ryzen Threadripper, AMD Athlon 3000, AMD EPYC) Zijn aangetast wanneer Simultaneous Multithreading (SMT)-technologie wordt gebruikt.

Moderne CPU's gebruiken een superscalar ontwerp, waarbij meerdere instructies tegelijkertijd worden uitgevoerd om de prestaties te maximaliseren. Deze CPU's verwerken instructies in een pijplijn door verschillende fasen: (1) ophalen, (2) decoderen, (3) programmeren/uitvoeren en (4) ophalen.

De aanval is gebaseerd op het evalueren van het niveau van optreden van twist (conflictniveau) in verschillende plannerwachtrijen en wordt gedaan door het meten van vertragingen bij het starten van controlebewerkingen die worden uitgevoerd in een andere SMT-thread op dezelfde fysieke CPU. Om de inhoud te analyseren, werd de Prime+Probe-methode gebruikt, waarbij de wachtrij wordt gevuld met een reeks referentiewaarden en de wijzigingen worden bepaald door de toegangstijd ervoor te meten op het moment van opnieuw laden.

De programma-/uitvoerfase kan instructies in de verkeerde volgorde verwerken om het parallellisme op instructieniveau te maximaliseren. We beschrijven elk van deze fasen kort:

-Zoeken. De CPU zoekt naar de volgende instructie die moet worden uitgevoerd vanuit de L1i-cache. 
-Decoderen. Om een ​​efficiënte uitvoering mogelijk te maken, worden de verkregen instructies (macrobewerkingen) gedecodeerd in een of meer eenvoudigere microbewerkingen (µops) en in een µop wachtrij geplaatst. Deze µops worden ingevoerd in de backend, waar ze worden gepland en uitgevoerd.
-Plannen/Uitvoeren. De planner(s) houden bij welke µops gereed zijn voor uitvoering (beschikbare inputs hebben) en plannen deze dynamisch (buiten gebruik) naar de beschikbare uitvoeringseenheden. Een CPU-kern heeft meerdere uitvoeringseenheden en kan meerdere rekenkundige en logische eenheden (ALU's), vertakkingsuitvoeringseenheden (BRU's), adresgeneratie-eenheden (AGU's) hebben.

Tijdens het experiment onderzoekers konden de 4096-bits privé-RSA-sleutel volledig opnieuw maken gebruikt om digitale handtekeningen te maken met behulp van de cryptografische bibliotheek mbedTLS 3.0, die het Montgomery-algoritme gebruikt om een ​​getal te verhogen tot een vermogensmodulus. Er waren 50.500 sporen nodig om de sleutel te bepalen.

De totale aanvalstijd duurde 38 minuten. Er worden aanvalsvarianten gedemonstreerd die zorgen voor een lek tussen verschillende processen en virtuele machines die worden aangestuurd door de KVM-hypervisor. Het is ook aangetoond dat de methode kan worden gebruikt om geheime gegevensoverdracht tussen virtuele machines te orkestreren met een snelheid van 0,89 Mbit/s en tussen processen met een snelheid van 2,70 Mbit/s met een foutenpercentage van minder dan 0,8, XNUMX%.

De CPU-kern is verdeeld in meerdere logische kernen, of threads, die onafhankelijke instructiestromen uitvoeren maar bronnen delen, zoals de L1i-cache. ops van deze threads delen ook dynamisch uitvoeringseenheden om een ​​hoger totaal gebruik mogelijk te maken. De verdeling van verschillende delen van de kernel.
Het wordt gedaan door middel van concurrerende uitwisseling. AMD Zen-architecturen staan ​​twee threads toe
per kern. Deze threads kunnen afkomstig zijn van een enkel programma of van verschillende programma's, zoals beheerd door het besturingssysteem.

Intel-processors zijn niet gevoelig aanval omdat ze een enkele planningswachtrij gebruiken, terwijl kwetsbare AMD-processors afzonderlijke wachtrijen gebruiken voor elke uitvoeringseenheid.

Als een oplossing om het lekken van informatie te blokkeren, AMD aanbevolen dat ontwikkelaars gebruik algoritmen die wiskundige berekeningen altijd in constante tijd uitvoeren, ongeacht de aard van de gegevens die worden verwerkt, en voorkomen ook forking op basis van geheime gegevens.

Tot slot, als u geïnteresseerd bent om er meer over te weten, kunt u de details raadplegen in de volgende koppeling.


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.