Een nieuwe klasse kwetsbaarheden in Intel-processors geïntroduceerd

Intel Corporation heeft gepubliceerd informatie over nieuwe kwetsbaarheden in hun processoren — MDS (Microarchitectural Data Sampling). Net als eerdere Spectre-klasse aanvallen kunnen nieuwe problemen leiden tot het lekken van gevoelige informatie van het besturingssysteem, virtuele machines en andere processen. Er wordt beweerd dat de problemen aanvankelijk zijn ontdekt door medewerkers en partners van Intel tijdens een interne audit, waarna onafhankelijke onderzoekers informatie over soortgelijke problemen bij Intel hebben doorgegeven. Processoren van AMD en ARM zijn niet vatbaar voor het probleem.

Op basis van de ontdekte problemen hebben onderzoekers van de Technische Universiteit Graz (Oostenrijk) verschillende praktische aanvallen via zijkanalen ontwikkeld: ) — stelt in staat om vertrouwelijke informatie te extraheren uit andere processen, het besturingssysteem, virtuele machines en beveiligde enclaves (TEE, Trusted Execution Environment). Bijvoorbeeld, de mogelijkheid om het surfgeschiedenis in de Tor-browser, die op een andere virtuele machine draait, te bepalen is gedemonstreerd, evenals het bepalen van de toegangs- en wachtwoordsleutels die in applicaties worden gebruikt;

  • ZombieLoad (PDF) — maakt het mogelijk om informatielekken te organiseren tussen verschillende geïsoleerde gebieden in Intel-processoren, zoals vulbuffers, opslagbuffers en laadtoegangspoorten. Voorbeelden van het uitvoeren van aanvallen zijn getoond om lekken uit andere processen, het besturingssysteem, virtuele machines en beveiligde enclaves te organiseren. Bijvoorbeeld, gedemonstreerd is hoe de inhoud van de hash van het root-wachtwoord uit /etc/shadow kan worden achterhaald bij periodieke authentificatiepogingen (de aanval duurde 24 uur);


  • RIDL (PDFBovendien is een voorbeeld getoond van een aanval met JavaScript en WebAssembly bij het openen van een kwaadaardige pagina in de SpiderMonkey-engine (in moderne volledige browsers is een dergelijke aanval onwaarschijnlijk vanwege de beperkte timerprecisie en maatregelen ter bescherming tegen Spectre);

    Video afspelen

    ) — maakt het mogelijk om gegevens te lezen die onlangs door het besturingssysteem zijn geschreven en de geheugenindeling van het besturingssysteem te bepalen om het uitvoeren van andere aanvallen te vergemakkelijken;

    Video afspelen
  • Fallout (PDFStore-To-Leak Forwarding
  • — exploiteert CPU-optimaliseringen met opslagbuffers en kan worden gebruikt om het mechanisme voor randomisatie van de adresruimte van de kernel (KASLR) te omzeilen, om de status van het besturingssysteem te monitoren of voor informatie lekken in combinatie met gadgets op basis van Spectre-methoden. het organiseren Geconstateerd

Ontdekte kwetsbaarheden:

  • CVE-2018-12126 - MSBDS (Microarchitectural Store Buffer Data Sampling), herstel van de inhoud van opslagbuffers. Gebruikt in de Fallout-aanval. De gevaarsgraad is vastgesteld op 6,5 punten (CVSS);
  • CVE-2018-12127 - MLPDS (Microarchitectural Load Port Data Sampling), herstel van de inhoud van laadpoorten. Gebruikt in de RIDL-aanval. CVSS 6.5;
  • CVE-2018-12130 - MFBDS (Microarchitectural Fill Buffer Data Sampling), herstel van de inhoud van vulbuffers. Gebruikt in de aanvallen ZombieLoad en RIDL. CVSS 6.5;
  • CVE-2019-11091 - MDSUM (Microarchitectural Data Sampling Uncacheable Memory), herstel van de inhoud van niet-cachebaar geheugen. Gebruikt in de RIDL-aanval. CVSS 3.8.

Essentie Geïdentificeerde problemen met het toepassen van analysemethoden via zijkanalen op gegevens in micro-architecturale structuren, waartoe toepassingen geen directe toegang hebben. Het betreft laag-niveau structuren zoals vulbuffers (Line Fill Buffer), opslagbuffers (Store Buffer) en laadpoorten (Load Port), die kleinere componenten zijn dan Level 1-cache (L1D), Data Loading Cache (RDCL) of L1TF (L1 Terminal Fault), en derhalve minder informatie bevatten en intensiever worden bijgewerkt.

Een nieuwe klasse kwetsbaarheden in Intel-processors geïntroduceerd

Aanvallen via zijkanalen op micro-architecturale structuren zijn aanzienlijk moeilijker uit te voeren in vergelijking met methoden voor het herstellen van cache-inhoud en vereisen het volgen en analyseren van aanzienlijke datavolumes om hun relatie met specifieke geheugenadressen vast te stellen (in feite kan de aanvaller geen specifieke gegevens opzettelijk onderscheppen, maar kan gedurende lange tijd lekkages accumuleren en statistische methoden toepassen om bepaalde soorten gegevens te reconstrueren). Bovendien raakt de aanval alleen gegevens op dezelfde fysieke CPU-kern als de code van de aanvaller.

De voorgestelde methoden voor het bepalen van de inhoud van micro-architecturale structuren zijn gebaseerd op het feit dat deze structuren worden gebruikt bij speculatieve verwerking van uitzonderingen (fault) of bij load- en store-operaties.
Bij speculatieve uitvoering wordt de inhoud van interne structuren omgeleid voor verwerking in registers of cache. Speculatieve operaties worden niet voltooid en het resultaat wordt afgewezen, maar de omgeleide inhoud kan worden bepaald met behulp van analysemethoden van zijkanaalcache.

Laadpoorten worden door de processor gebruikt om gegevens uit het geheugen of de invoer-/uitvoersubsystemen te verkrijgen en om de verkregen informatie in de registers van de CPU te plaatsen. Vanwege de implementatie blijven gegevens van eerdere laadoperaties in de poorten totdat ze door nieuwe gegevens worden overschreven, wat het mogelijk maakt om indirect de status van de gegevens in de laadpoort te bepalen via manipulaties met uitsluitingen (faults) en SSE/AVX/AVX-512 instructies die meer dan 64 bits aan gegevens laden. In dergelijke situaties laten laadoperaties speculatief verouderde gegevenswaarden uit interne structuren doorschenken naar afhankelijke bewerkingen. Op een vergelijkbare manier wordt er een lek door de opslagbuffer georganiseerd, die wordt gebruikt om de schrijfsnelheid naar de CPU-cache te versnellen en die een tabel bevat van adressen, waarden en vlaggen, evenals een vulbuffer die gegevens bevat die niet in de L1-cache zijn (cache-miss), terwijl deze worden geladen vanuit caches van andere niveaus.

Een nieuwe klasse kwetsbaarheden in Intel-processors geïntroduceerd

Probleem aan modellen van Intel-processors, uitgebracht sinds 2011 (beginnende met de 6e generatie). Hardwarematige kwetsbaarheden worden geblokkeerd vanaf bepaalde modellen van de 8e en 9e generatie Intel Core en de 2e generatie Intel Xeon Scalable (dit kan worden gecontroleerd via de bit ARCH_CAP_MDS_NO in de IA32_ARCH_CAPABILITIES MSR). Kw vulnerabilities zijn ook al opgelost op het niveau van firmware, microcode en besturingssystemen. Volgens Intel bedraagt het prestatieverlies na het inschakelen van de patch voor de meeste gebruikers niet meer dan 3%. Bij het uitschakelen van Hyper-Threading kan het prestatieverlies oplopen tot 9% in de SPECint_rate_base test, tot 11% bij actieve gehele getalberekeningen en tot 19% bij het uitvoeren van server-gebaseerde Java-toepassingen (bij ingeschakelde HT is er bijna geen prestatieverlies). Patches hebben vrijwel geen invloed op de prestaties van invoer-/uitvoertaken.

In de Linux-kernel is er bescherming tegen MDS toegevoegd in de huidige updates 5.1.2, 5.0.16,
4.19.43, 4.14.119 en 4.9.176. De beschermingsmethode is gebaseerd op het wissen van de inhoud van microarchitecturale buffers op het moment van terugkeer van de kernel naar de gebruikersruimte of bij het overdragen van controle aan het gastbesturingssysteem, waarvoor de instructie VERW wordt gebruikt. Voor de werking van de beveiliging is ondersteuning voor de modus MD_CLEAR vereist, die is geïmplementeerd in de laatste microcode-update. Voor volledige bescherming wordt ook aanbevolen om Hyper-Threading uit te schakelen. Om de kwetsbaarheid van het systeem in de Linux-kernel te controleren. is toegevoegd De handler «/sys/devices/system/cpu/vulnerabilities/mds». Om verschillende modus voor kwetsbaarheidblokkering in de kernel in te schakelen, is de parameter «mds=» toegevoegd, die de waarden «full», «full,nosmt» (deactivering van Hyper-Threads), «vmwerv» en «off» kan aannemen.

Pakketupdates zijn al uitgebracht voor RHEL en Ubuntu, maar zijn voorlopig nog niet beschikbaar voor Debian, Fedora en SUSE.
De oplossing voor het blokkeren van datalekken uit virtuele machines is ook gevormd voor de Xen-hypervisor. Voor de bescherming van virtualisatiesystemen die de L1D_FLUSH-opdracht aanroepen voordat ze de controle aan een andere virtuele machine overdragen, en voor de bescherming van Intel SGX-enclaves, is een microcode-update voldoende.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster