Checkpoint presenteerde een Safe-Linking-veiligheidstechniek

Controleer punt (een wereldwijde leverancier van IT-beveiligingsoplossingen) bracht enkele dagen geleden de introductie uit van het veiligheidsmechanisme "Safe-Linking", dat maakt het moeilijk om exploits te creëren die de definitie of wijziging van pointers naar toegewezen buffers manipuleren bij het maken van een malloc-aanroep.

Het nieuwe "Safe-Linking" -mechanisme blokkeert niet volledig de mogelijkheid om kwetsbaarheden te misbruiken, maar met minimale overhead bemoeilijkt het creëren van bepaalde categorieën exploitsOmdat het naast de misbruikte bufferoverloop, een andere kwetsbaarheid moet vinden die informatie veroorzaakt over de locatie van de heap in het geheugen.

Er werden Safe-Linking-implementatiepatches voorbereid voor Glibc (ptmalloc), uClibc-NG (dlmalloc), gperftools (tcmalloc) en Google TCMalloc, evenals een voorstel om de bescherming in Chromium te moderniseren (sinds 2012 is Chromium al geïntegreerd met oplossingen voor de zelfde probleem) MaskPtr-beveiligingstechniek, maar de oplossing van Checkpoint laat betere prestaties zien).

De voorgestelde patches zijn al goedgekeurd voor levering in de augustus-release van Glibc 3.32 en Safe-Linking zal standaard ingeschakeld zijn. In uClibc-NG was ondersteuning voor beveiligde links opgenomen in versie 1.0.33 en deze is standaard ingeschakeld. In gperftools (oud tcmalloc) worden de wijzigingen geaccepteerd, maar zullen in een toekomstige release als optie worden aangeboden.

TCMalloc-ontwikkelaars weigerden de wijziging te accepteren, cmet sterke prestatiesuccessen en de noodzaak om geavanceerde tests toe te voegen om regelmatig te controleren of alles naar behoren werkt.

De tests die zijn uitgevoerd door Checkpoint-ingenieurs hebben aangetoond dat de Safe-Linking-methode niet leidt tot extra geheugengebruik en de prestaties bij het uitvoeren van heap-bewerkingen nemen gemiddeld slechts met 0.02% af, en in het ergste geval met 1.5%

Het inschakelen van Safe-Linking leidt tot de uitvoering van 2-3 aanvullende assembler-instructies bij elke aanroep naar free () en 3-4 instructies bij het aanroepen van malloc (). Start van initialisatie en genereren van willekeurige waarden is niet vereist.

Safe-Linking kan niet alleen worden gebruikt om de veiligheid te vergroten van verschillende heap-implementaties, sino ook om integriteitscontroles toe te voegen aan elke datastructuur die een lijst met individueel gekoppelde verwijzingen gebruikt die zich naast de buffers bevinden.

De methode het is heel eenvoudig te implementeren en vereist alleen het toevoegen van een macro en pas het toe op de verwijzingen naar het volgende codeblok (bijvoorbeeld voor Glibc worden slechts een paar regels in de code gewijzigd).

De essentie van de methode is om willekeurige gegevens uit het ASLR-adres-randomisatiemechanisme (mmap_base) toe te passen om individueel gekoppelde lijsten zoals Fast-Bins en TCache te beschermen. Voordat de aanwijzerwaarde wordt toegepast op het volgende item in de lijst, worden maskerconversie en uitlijningscontrole uitgevoerd langs de rand van de geheugenpagina. De aanwijzer wordt vervangen door het resultaat van de bewerking "(L >> PAGE_SHIFT) XOR (P)", waarbij P de waarde van de aanwijzer is en L de locatie in het geheugen is waar deze aanwijzer is opgeslagen.

Bij gebruik in het ASLR-systeem (Address Space Layout Randomization) bevatten sommige van de L-bits met het basisadres van de heap willekeurige waarden die worden gebruikt als een sleutel om P te coderen (ze worden geëxtraheerd door een shift-bewerking van 12 bits voor pagina's van 4096 bytes).

Dergelijke manipulatie vermindert het risico van het vangen van een aanwijzer in een exploit, Omdat de aanwijzer niet in zijn oorspronkelijke vorm wordt opgeslagen en om deze te vervangen, moet u informatie over de locatie van de heap weten.

De methode is effectief bij het beschermen tegen aanvallen waarbij gebruik wordt gemaakt van gedeeltelijke herdefinitie van de aanwijzer (lage byteverschuiving), volledige herschrijving van pointers (omleiden naar de code van de aanvaller) en herpositionering van de lijst in een niet-uitgelijnde richting.

Als voorbeeld wordt aangetoond dat het gebruik van Safe-Linking in malloc het misbruik zou blokkeren van de kwetsbaarheid CVE-2020-6007 die onlangs werd ontdekt door dezelfde onderzoekers in de slimme achtergrondverlichting van Philips Hue Bridge veroorzaakt door de bufferoverloop en het apparaat.

bron: https://research.checkpoint.com


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.