Er is een nieuwe klasse kwetsbaarheden in Intel-processors geïntroduceerd

Intel опубликовала informatie over nieuw kwetsbaarheid klasse in hun verwerkers - MDS (Microarchitecturale gegevensbemonstering). Net als eerdere Spectre-aanvallen kunnen nieuwe problemen leiden tot het lekken van privégegevens uit het besturingssysteem, virtuele machines en andere processen. Er wordt beweerd dat de problemen voor het eerst werden geïdentificeerd door Intel-medewerkers en partners tijdens een interne audit, waarna onafhankelijke onderzoekers informatie over soortgelijke problemen aan Intel verstrekten. AMD- en ARM-processors hebben geen last van het probleem.

Gebaseerd op geïdentificeerde problemen door onderzoekers van de Technische Universiteit van Graz (Oostenrijk) ontwikkeld Enkele praktische zijkanaalaanvallen:

  • ZombieLoad (PDF) - hiermee kunt u vertrouwelijke informatie uit andere processen, het besturingssysteem, virtuele machines en beschermde enclaves (TEE, Trusted Execution Environment) extraheren. Zo werd bijvoorbeeld de mogelijkheid gedemonstreerd om de geschiedenis van het openen van pagina's in de Tor-browser die op een andere virtuele machine draait te bepalen, evenals het bepalen van de toegangssleutels en wachtwoorden die in applicaties worden gebruikt;


  • Rýdl (PDF) - maakt het lekken van informatie mogelijk tussen verschillende geïsoleerde gebieden in Intel-processors, zoals vulbuffers, opslagbuffers en laadpoorten. Er worden voorbeelden gegeven van aanvallen die lekken vanuit andere processen, het besturingssysteem, virtuele machines en beschermde enclaves organiseren. Het laat bijvoorbeeld zien hoe je de inhoud van de root-wachtwoord-hash van /etc/shadow kunt achterhalen tijdens periodieke authenticatiepogingen (de aanval duurde 24 uur);

    Bovendien wordt een voorbeeld getoond van een aanval met JavaScript en WebAssembly bij het openen van een kwaadaardige pagina in de SpiderMonkey-engine (in moderne volwaardige browsers is een dergelijke aanval onwaarschijnlijk vanwege de beperkte timernauwkeurigheid en maatregelen ter bescherming tegen Spectre);

  • Fallout (PDF) - maakt het mogelijk om recentelijk door het besturingssysteem geschreven gegevens te lezen en de geheugenindeling van het besturingssysteem te bepalen om andere aanvallen te vereenvoudigen;
  • Doorsturen van winkel naar lek — maakt gebruik van CPU-optimalisaties voor het werken met de opslagbuffer en kan worden gebruikt om het kerneladresruimterandomisatiemechanisme (KASLR) te omzeilen, om de status van het besturingssysteem te controleren, of voor организации lekken in combinatie met gadgets gebaseerd op Spectre-methoden.

Geïdentificeerd kwetsbaarheden:

  • CVE-2018-12126 - MSBDS (Microarchitectural Store Buffer Data Sampling), herstel van de inhoud van opslagbuffers. Gebruikt bij de Fallout-aanval. De mate van gevaar wordt vastgesteld op 6.5 punten (CVSS);
  • CVE-2018-12127 - MLPDS (Microarchitectural Load Port Data Sampling), herstel van de inhoud van de laadpoort. Gebruikt bij de RIDL-aanval. CVSS 6.5;
  • CVE-2018-12130 - MFBDS (Microarchitectural Fill Buffer Data Sampling), herstel van de inhoud van de vulbuffer. Gebruikt bij ZombieLoad- en RIDL-aanvallen. CVSS 6.5;
  • CVE-2019-11091 – MDSUM (Microarchitectural Data Sampling Uncacheable Memory), herstel van niet-cachebare geheugeninhoud. Gebruikt bij de RIDL-aanval. CVSS 3.8.

Stof problemen geïdentificeerd bij het vermogen om zijkanaalanalysemethoden toe te passen op gegevens in microarchitecturale structuren waartoe applicaties niet direct toegang hebben. We hebben het over structuren op laag niveau zoals vulbuffers (Line Fill Buffer), opslagbuffers (Store Buffer) en laadpoorten (Load Port), die kleinere bouwstenen zijn dan de cache op het eerste niveau (L1D), de cache voor het laden van gegevens ( RDCL ) of L1TF (L1 Terminal Fault), en bevatten dienovereenkomstig minder informatie en worden intensiever bijgewerkt.

Er is een nieuwe klasse kwetsbaarheden in Intel-processors geïntroduceerd

Zijkanaalaanvallen op microarchitecturale structuren zijn veel moeilijker uit te voeren vergeleken met methoden voor het herstellen van de cache-inhoud en vereisen het volgen en analyseren van aanzienlijke hoeveelheden gegevens om hun verbinding met bepaalde adressen in het geheugen te bepalen (in wezen kan een aanvaller niet doelbewust bepaalde gegevens onderscheppen , maar het kan tijd zijn om lekken op te stapelen en statistische methoden toe te passen om bepaalde soorten gegevens te reconstrueren). Bovendien heeft de aanval alleen invloed op gegevens op dezelfde fysieke CPU-kern als de code van de aanvaller.

De voorgestelde methoden voor het bepalen van de inhoud van microarchitecturale structuren zijn gebaseerd op het feit dat deze structuren worden gebruikt tijdens speculatieve afhandeling van uitzonderingen (fouten) of laad- en opslagoperaties.
Tijdens speculatieve uitvoering wordt de inhoud van interne structuren voor verwerking doorgestuurd naar registers of caches. Speculatieve bewerkingen worden niet voltooid en het resultaat wordt weggegooid, maar de omgeleide inhoud kan worden bepaald met behulp van side-channel cache-analysetechnieken.

Laadpoorten worden door de processor gebruikt om gegevens uit het geheugen of het I/O-subsysteem te ontvangen en de ontvangen informatie door te geven aan de CPU-registers. Dankzij de implementatiefunctie blijven gegevens van oude downloadbewerkingen in de poorten totdat ze worden overschreven door nieuwe gegevens, wat het mogelijk maakt om indirect de status van de gegevens in de downloadpoort te bepalen door uitzonderingen (fouten) en SSE/AVX/ AVX-512-instructies die meer dan 64 bits gegevens laden. Onder dergelijke omstandigheden stellen laadbewerkingen speculatief verouderde gegevenswaarden van interne structuren bloot aan afhankelijke bewerkingen. Op een vergelijkbare manier wordt een lek georganiseerd via de opslagbuffer, die wordt gebruikt om het schrijven naar de CPU-cache te versnellen en een tabel met adressen, waarden en vlaggen bevat, evenals via de vulbuffer, die gegevens bevat die staat nog niet in de L1-cache (cache-miss), voorlopig geladen vanuit caches van andere niveaus.

Er is een nieuwe klasse kwetsbaarheden in Intel-processors geïntroduceerd

probleem beïnvloedt Intel-processormodellen geproduceerd sinds 2011 (vanaf de 6e generatie). In dit geval worden hardwarekwetsbaarheden geblokkeerd vanaf sommige modellen van de 8e en 9e generatie Intel Core en 2e generatie Intel Xeon Scalable (u kunt dit controleren met behulp van de ARCH_CAP_MDS_NO bit in IA32_ARCH_CAPABILITIES MSR). Kwetsbaarheden zijn er ook al geëlimineerd op het niveau van firmware, microcode en besturingssystemen. Intel schat prestatieverlies na het activeren van de patch voor de meeste gebruikers minder dan 3%. Wanneer de Hyper-Threading-technologie is uitgeschakeld, kan de prestatievermindering oplopen tot 9% in de SPECint_rate_base-test, tot 11% in actieve integer-berekeningen en tot 19% bij het uitvoeren van Java-applicaties op de server (met HT ingeschakeld is er bijna geen prestatieverlies). De patches hebben weinig invloed op de I/O-prestaties.

De Linux-kernel beschermt tegen MDS toegevoegd in ... van vandaag updates 5.1.2, 5.0.16,
4.19.43, 4.14.119 en 4.9.176. Beschermingsmethode in opbouw over het wissen van de inhoud van microarchitecturale buffers op het moment van terugkeer van de kernel naar de gebruikersruimte of bij het overdragen van de controle naar het gastsysteem, waarvoor de VERW-instructie wordt gebruikt. Om de bescherming te laten werken, is ondersteuning nodig voor de MD_CLEAR-modus, geïmplementeerd in de nieuwste microcode-update. Voor volledige bescherming wordt ook aanbevolen om Hyper Threading uit te schakelen. Om de blootstelling van het systeem aan kwetsbaarheden in de Linux-kernel te controleren toegevoegd handler "/sys/devices/system/cpu/vulnerabilities/mds". Om de opname van verschillende modi voor het blokkeren van kwetsbaarheden te controleren, is de parameter “mds=” aan de kernel toegevoegd, die de waarden “full”, “full,nosmt” (Hyper-Threads uitschakelen), “vmwerv” en "uit".

Er zijn al pakketupdates uitgebracht voor RHEL и Ubuntu, maar zijn voorlopig niet beschikbaar Debian, Fedora и SUSE.
Een oplossing om ook datalekken van virtuele machines te blokkeren gevormd voor de Xen-hypervisor. Om virtualisatiesystemen te beschermen die de opdracht L1D_FLUSH geven voordat de besturing wordt overgedragen aan een andere virtuele machine, en om Intel SGX-enclaves te beschermen, is een microcode-update voldoende.

Bron: opennet.ru

Voeg een reactie