Kwetsbaarheden in eBPF, waarmee de bescherming tegen de Spectre 4-aanval kan worden omzeild.

In de Linux-kernel zijn twee kwetsbaarheden ontdekt die de eBPF-subsysteem kunnen benutten om de bescherming tegen de Spectre v4-aanval (SSB, Speculative Store Bypass) te omzeilen. Met een niet-bevoorrechte BPF-toepassing kan een aanvaller voorwaarden creëren voor de speculatieve uitvoering van bepaalde bewerkingen en de inhoud van willekeurige geheugenruimten in de kernel bepalen. De bijbehorende eBPF-subsystemen in de kernel hebben toegang gekregen tot een prototype van een exploit, die de mogelijkheid van daadwerkelijke aanvallen aantoont. De problemen zijn opgelost in de vorm van patches (1, 2), die deel uitmaken van de eerstvolgende kernel Linux-update. Updates in de distributies zijn momenteel nog niet gecreëerd (Debian, RHEL, SUSE, Arch, Fedora, Ubuntu).

De Spectre 4-aanvalsmethode is gebaseerd op het herstel van gegevens die in de processor cache zijn achtergebleven na het afwijzen van het resultaat van speculatieve uitvoeringsoperaties bij de verwerking van afwisselende schrijf- en leesoperaties met gebruik van indirecte adressering. Wanneer een leesoperatie volgt op een schrijfoperatie (bijvoorbeeld, mov [rbx + rcx], 0x0; mov rax, [rdx + rsi]), kan de offset voor het lezen al bekend zijn vanwege de uitvoering van soortgelijke operaties (leesoperaties worden veel vaker uitgevoerd en lezen kan uit de cache worden gedaan) en kan de processor speculatief het lezen eerder uitvoeren dan de schrijven, zonder te wachten tot de offset van de indirecte adressering voor de schrijven is berekend.

Als na de berekening van de offset blijkt dat er overlapping is tussen geheugenruimten voor schrijven en lezen, zal de processor simpelweg het al speculatief verkregen resultaat van de leesoperatie negeren en deze operatie herhalen. Deze eigenschap stelt de leesinstructie in staat om toegang te krijgen tot de oude waarde op een bepaald adres terwijl de schrijfoperatie nog niet is voltooid. Na het afwijzen van de mislukte speculatieve operatie blijven er sporen van de uitvoering in de cache achter, waarna een van de methoden voor het bepalen van de inhoud van de cache op basis van de verandering in toegangstijd tot gecachete en niet-gecachete gegevens kan worden toegepast.

De eerste kwetsbaarheid (CVE-2021-35477) is veroorzaakt door een tekortkoming in het controlemechanisme van BPF-programma's. Ter bescherming tegen de Spectre 4-aanval voegt de verificateur na potentieel problematische geheugenopslagbewerkingen een extra instructie toe die een nulwaarde opslaat om de sporen van de eerdere operatie te wissen. Vermoed werd dat de nul-opschrijfinstructie heel snel uitgevoerd zou worden en de speculatieve uitvoer zou blokkeren, omdat deze slechts afhankelijk is van de pointer naar het BPF-stackframe. In de praktijk bleek het echter mogelijk om voorwaarden te creëren waaronder de instructie die leidt tot speculatieve uitvoering, vóór de wissen-instructie kan worden uitgevoerd.

De tweede kwetsbaarheid (CVE-2021-3455) heeft te maken met het feit dat de BPF-verificateur bij het detecteren van potentieel gevaarlijke geheugenopslagbewerkingen, ongeïnitialiseerde gebieden van de BPF-stack niet in overweging neemt, waarvan de eerste opschrijfoperatie niet wordt beschermd. Dit kenmerk leidt tot de mogelijkheid van een speculatieve leesoperatie, die afhankelijk is van het ongeïnitialiseerde geheugen, vóór de opschrijf-instructie wordt uitgevoerd. Nieuwe geheugenruimte voor de BPF-stack wordt toegewezen zonder de inhoud van het al bestaande toegewezen geheugen te controleren, en vóór de uitvoering van het BPF-programma is er een manier om de inhoud van het geheugengebied te beheersen dat vervolgens voor de BPF-stack zal worden toegewezen.

Bron: opennet.ru

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