Er is een aanvalsmethode voorgesteld om op afstand geheugenfragmenten op de server te bepalen

Een groep onderzoekers van de Technische Universiteit van Graz (Oostenrijk), voorheen bekend van het ontwikkelen van de MDS-, NetSpectre-, Throwhammer- en ZombieLoad-aanvallen, heeft een nieuwe zijkanaalaanvalmethode (CVE-2021-3714) gepubliceerd tegen het Memory-Deduplication-mechanisme , waarmee u de aanwezigheid van bepaalde gegevens in het geheugen kunt bepalen, een byte-voor-byte-lek van de geheugeninhoud kunt organiseren of de geheugenindeling kunt bepalen om de adresgebaseerde randomisatie (ASLR)-beveiliging te omzeilen. De nieuwe methode verschilt van eerder gedemonstreerde varianten van aanvallen op het deduplicatiemechanisme door een aanval uit te voeren vanaf een externe host met als criterium de verandering in responstijd op verzoeken die via de HTTP/1- en HTTP/2-protocollen naar de aanvaller worden verzonden. De mogelijkheid om de aanval uit te voeren is aangetoond voor servers gebaseerd op Linux en Windows.

Aanvallen op het geheugendeduplicatiemechanisme gebruiken het verschil in de verwerkingstijd van een schrijfbewerking als een kanaal om informatie te lekken in situaties waarin een verandering in gegevens leidt tot het klonen van een gededupliceerde geheugenpagina met behulp van het Copy-On-Write (COW)-mechanisme . Tijdens de werking detecteert de kernel identieke geheugenpagina's van verschillende processen en voegt deze samen, waarbij identieke geheugenpagina's in één enkel gebied van fysiek geheugen worden geplaatst om slechts één kopie op te slaan. Wanneer een van de processen gegevens probeert te wijzigen die zijn gekoppeld aan gededupliceerde pagina's, treedt er een uitzondering (paginafout) op en wordt met behulp van het Copy-On-Write-mechanisme automatisch een afzonderlijke kopie van de geheugenpagina gemaakt, die aan het proces wordt toegewezen. Er wordt extra tijd besteed aan het voltooien van de kopie, wat een teken kan zijn dat gegevenswijzigingen een ander proces verstoren.

Onderzoekers hebben aangetoond dat de vertragingen die het gevolg zijn van het COW-mechanisme niet alleen lokaal kunnen worden vastgelegd, maar ook door veranderingen in de responstijden via het netwerk te analyseren. Er zijn verschillende methoden voorgesteld om de inhoud van het geheugen van een externe host te bepalen door de uitvoeringstijd van verzoeken via de HTTP/1- en HTTP/2-protocollen te analyseren. Om geselecteerde sjablonen op te slaan, worden standaard webapplicaties gebruikt die de ontvangen informatie in verzoeken in het geheugen opslaan.

Het algemene principe van de aanval komt neer op het vullen van een geheugenpagina op de server met gegevens die mogelijk de inhoud herhalen van een geheugenpagina die al op de server bestaat. De aanvaller wacht vervolgens op de tijd die de kernel nodig heeft om de geheugenpagina te ontdubbelen en samen te voegen, wijzigt vervolgens de gecontroleerde dubbele gegevens en evalueert de responstijd om te bepalen of de treffer succesvol was.

Er is een aanvalsmethode voorgesteld om op afstand geheugenfragmenten op de server te bepalen

Tijdens de experimenten bedroeg de maximale informatieleksnelheid 34.41 bytes per uur bij aanvallen via een wereldwijd netwerk en 302.16 bytes per uur bij aanvallen via een lokaal netwerk, wat sneller is dan andere methoden voor het extraheren van gegevens via kanalen van derden (bijvoorbeeld bij een NetSpectre-aanval is de gegevensoverdrachtsnelheid 7.5 bytes om één uur).

Er zijn drie werkende aanvalsopties voorgesteld. Met de eerste optie kunt u bepalen welke gegevens zich in het geheugen bevinden van de webserver die gebruik maakt van Memcached. De aanval komt neer op het laden van bepaalde datasets in Memcached-opslag, het wissen van het gededupliceerde blok, het herschrijven van hetzelfde element en het creëren van een voorwaarde voor COW-kopiëren door de inhoud van het blok te wijzigen. Tijdens het experiment met Memcached was het mogelijk om in 166.51 seconden te bepalen welke versie van libc was geïnstalleerd op een systeem dat op een virtuele machine draaide.

De tweede optie maakte het mogelijk om de inhoud van records in het MariaDB DBMS te achterhalen, bij gebruik van InnoDB-opslag, door de inhoud byte voor byte opnieuw te creëren. De aanval wordt uitgevoerd door speciaal aangepaste verzoeken te verzenden, wat resulteert in mismatches van één byte in geheugenpagina's en door de responstijd te analyseren om te bepalen of de inschatting over de inhoud van de byte juist was. De snelheid van een dergelijk lek is laag en bedraagt ​​1.5 bytes per uur bij een aanval vanaf een lokaal netwerk. Het voordeel van de methode is dat deze kan worden gebruikt om onbekende geheugeninhoud te herstellen.

De derde optie maakte het mogelijk om het KASLR-beveiligingsmechanisme in 4 minuten volledig te omzeilen en informatie te verkrijgen over de geheugenoffset van het kernelimage van de virtuele machine, in een situatie waarin het offset-adres zich op een geheugenpagina bevindt waarin andere gegevens niet veranderen. De aanval werd uitgevoerd vanaf een host die zich 14 hops van het aangevallen systeem bevond. Er wordt beloofd dat codevoorbeelden voor het implementeren van de gepresenteerde aanvallen op GitHub zullen worden gepubliceerd.

Bron: opennet.ru

Voeg een reactie