Intel Corporation microcode-update die het probleem oplost (CVE-2019-14607), door manipulatie van de dynamische spannings- en frequentiecontrolemechanismen in de CPU schade aan de inhoud van geheugencellen te veroorzaken, inclusief in gebieden die worden gebruikt tijdens berekeningen in geĆÆsoleerde enclaves van Intel SGX. De aanval is aangeduid als Plundervolt en stelt een lokale gebruiker in staat om hun privileges binnen het systeem te verhogen, een denial-of-service te veroorzaken en toegang te krijgen tot vertrouwelijke gegevens.
De aanval vormt alleen een gevaar in de context van berekeningen in de SGX-enclaves, aangezien deze rootrechten in het systeem vereist. In de eenvoudigste gevallen kan de aanvaller vervormingen in de informatie die in de enclave wordt verwerkt, veroorzaken, maar in complexere scenario's is het niet uitgesloten dat opgeslagen vertrouwelijke sleutels die worden gebruikt voor encryptie met behulp van RSA-CRT en AES-NI-algoritmen opnieuw kunnen worden gecreƫerd. Deze techniek kan ook worden gebruikt om fouten te genereren in aanvankelijk correcte algoritmen om kwetsbaarheden bij geheugenwerking uit te lokken, bijvoorbeeld door toegang te krijgen tot gebieden buiten de toegewezen buffer.
Prototypecode voor het uitvoeren van de aanval op GitHub
De essentie van de methode ligt in het creëren van omstandigheden voor het ontstaan van onverwachte vervormingen van gegevens tijdens berekeningen in SGX, waartegen encryptie en geheugenauthenticatie in de enclave geen bescherming bieden. Vervormingen kunnen worden veroorzaakt met behulp van standaard softwareinterfaces voor het beheer van frequentie en spanning, die normaal worden gebruikt om het energieverbruik tijdens systeemidle te verlagen en maximale prestaties te activeren tijdens intensieve taken. De frequentie- en spanningskenmerken bestrijken de gehele chip en beïnvloeden ook de berekeningen in de geïsoleerde enclave.
Door spanning te variƫren, kunnen voorwaarden worden gecreƫerd waaronder de lading onvoldoende is voor de regeneratie van de geheugencel binnen de CPU, waardoor de waarde verandert. Het belangrijkste verschil met de aanval is what RowHammer allows to change the contents of individual bits in DRAM memory through cyclically reading data from neighboring cells, while Plundervolt allows for bit alteration within the CPU when data has already been loaded from memory for computation. This characteristic allows bypassing the integrity and encryption controls applied in SGX, as the values in memory remain correct but may be distorted during operations on them before the result is written back to memory.
If this altered value is used in the multiplication process during encryption, the output will yield an incorrect ciphertext. Having the ability to access the handler in SGX for encrypting their data, an attacker can accumulate statistics on the changes in the ciphertext output by invoking faults, and within minutes recover the value of the key stored in the enclave. The original text at the input and the correct ciphertext at the output are known, the key is unchanged, and the output of incorrect ciphertext indicates distortion of some bit to the opposite value.
By analyzing the accumulated pairs of correct and distorted ciphertexts obtained during various faults using differential fault analysis methods (DFA, ) it is possible likely keys used for symmetric AES encryption, and then, by analyzing the intersections of keys in different sets, determine the sought key.

Various models of Intel processors are susceptible to this issue, including Intel Core CPUs from the 6th
to the 10th generation, as well as the fifth and sixth generations of Xeon E3, the first and second generations of Intel Xeon Scalable, Xeon D,
Xeon W, and Xeon E.
Recall that the SGX technology () appeared in Intel Core processors of the sixth generation (Skylake) and een reeks instructies die het mogelijk maken om gebruikersniveau-applicaties afgesloten geheugengebieden - enclaves - toe te wijzen, waarvan de inhoud niet kan worden gelezen of gewijzigd, zelfs niet door de kernel of code die in de ring0-, SMM- en VMM-modi draait. Het overdragen van de controle aan de code in de enclave is niet mogelijk met traditionele sprongfuncties en register- of stackmanipulaties - voor het overdragen van de controle naar de enclave wordt een speciaal gemaakte nieuwe instructie gebruikt die bevoegdheden controleert. De code die in de enclave is geplaatst, kan klassieke aanroepprocedures gebruiken om functies binnen de enclave aan te roepen en een speciale instructie om externe functies aan te roepen. Om bescherming tegen hardware-aanvallen, zoals het aansluiten op het DRAM-modules, wordt geheugencryptografie van de enclave toegepast.
Bron: opennet.ru
