Kwetsbaarheid in Intel-processors die leiden tot gegevenslekken via kanalen van derden

Een groep onderzoekers van Chinese en Amerikaanse universiteiten heeft een nieuwe kwetsbaarheid in Intel-processors geïdentificeerd die leidt tot het lekken van informatie over het resultaat van speculatieve operaties via kanalen van derden, die bijvoorbeeld kunnen worden gebruikt om een ​​verborgen communicatiekanaal te organiseren tussen processen of detecteer lekken tijdens Meltdown-aanvallen.

De essentie van de kwetsbaarheid is dat een wijziging in het EFLAGS-processorregister, die optrad als gevolg van speculatieve uitvoering van instructies, van invloed is op de daaropvolgende uitvoeringstijd van JCC-instructies (springen wanneer aan bepaalde voorwaarden is voldaan). De speculatieve bewerkingen worden niet voltooid en het resultaat wordt verworpen, maar de verworpen EFLAGS-wijziging kan worden bepaald door de uitvoeringstijd van de JCC-instructies te analyseren. Speculatief uitgevoerde pre-jump vergelijkingsbewerkingen, als de vergelijking succesvol is, resulteren in een kleine vertraging die kan worden gemeten en gebruikt als een kenmerk om inhoud te matchen.

Kwetsbaarheid in Intel-processors die leiden tot gegevenslekken via kanalen van derden

In tegenstelling tot andere soortgelijke aanvallen via kanalen van derden, analyseert de nieuwe methode niet de verandering in de toegangstijd tot gecachete en niet-gecachete gegevens en vereist het niet de fase van het resetten van het EFLAGS-register naar de oorspronkelijke staat, wat het moeilijk maakt om detecteer en blokkeer de aanval. Als demonstratie implementeerden de onderzoekers een variant van de Meltdown-aanval, waarbij ze een nieuwe methode gebruikten om informatie te verkrijgen over het resultaat van een speculatieve operatie. De werking van de methode voor het organiseren van informatielekkage tijdens een Meltdown-aanval is met succes gedemonstreerd op systemen met Intel Core i7-6700 en i7-7700 CPU's in een omgeving met Ubuntu 22.04 en Linux 5.15 kernel. Op een systeem met een Intel i9-10980XE CPU was de aanval slechts gedeeltelijk succesvol.

De Meltdown-kwetsbaarheid is gebaseerd op het feit dat de processor tijdens de speculatieve uitvoering van instructies toegang heeft tot een privégegevensgebied en vervolgens het resultaat kan negeren, aangezien de ingestelde privileges dergelijke toegang voor het gebruikersproces verbieden. In een programma wordt een speculatief uitgevoerd blok gescheiden van de hoofdcode door een voorwaardelijke sprong, die in reële omstandigheden altijd wordt geactiveerd, maar vanwege het feit dat de voorwaardelijke instructie een berekende waarde gebruikt die de processor niet kent tijdens preventieve code uitvoering, worden alle vertakkingsopties speculatief uitgevoerd.

Aangezien in de klassieke versie van Meltdown dezelfde cache wordt gebruikt voor speculatief uitgevoerde bewerkingen als voor normaal uitgevoerde instructies, is het tijdens speculatieve uitvoering mogelijk om markeringen in de cache in te stellen die de inhoud van individuele bits in een gesloten geheugengebied weerspiegelen, en vervolgens in de normaal uitgevoerde code om hun betekenis te bepalen door analyse van de toegangstijd tot in de cache en niet in de cache opgeslagen gegevens. De nieuwe variant gebruikt de wijziging in het EFLAGS-register als markering voor een lek. In de Covert Channel-demo moduleerde één proces de gegevens die werden verzonden om de inhoud van het EFLAGS-register te wijzigen, en een ander proces ontleedde de wijziging in de uitvoeringstijd van de JCC-instructie om de gegevens die door het eerste proces waren verzonden opnieuw te creëren.

Bron: opennet.ru

Voeg een reactie