Il punto di controllo ha presentato una tecnica di sicurezza per il collegamento sicuro

Punto di controllo (un fornitore globale di soluzioni di sicurezza IT) rilasciato diversi giorni fa l'introduzione del meccanismo di sicurezza "Collegamento sicuro", che rende difficile creare exploit che manipolano la definizione o la modifica dei puntatori ai buffer allocati quando si effettua una chiamata malloc.

Il nuovo meccanismo «Safe-Linking» non blocca completamente la possibilità di sfruttare le vulnerabilità, ma con un sovraccarico minimo complica la creazione di alcune categorie di exploitPoiché oltre al buffer overflow sfruttato, è necessario trovare un'altra vulnerabilità che causa informazioni sulla posizione dell'heap in memoria.

Sono state preparate patch di implementazione Safe-Linking per Glibc (ptmalloc), uClibc-NG (dlmalloc), gperftools (tcmalloc) e Google TCMalloc, nonché una proposta per modernizzare la protezione in Chromium (dal 2012 Chromium è già stato integrato con soluzioni per stesso problema) Tecnica di protezione MaskPtr, ma la soluzione di Checkpoint mostra prestazioni migliori).

Le patch proposte sono già state approvate per la consegna nella versione di agosto di Glibc 3.32 e il collegamento sicuro sarà abilitato per impostazione predefinita. In uClibc-NG, il supporto per il collegamento sicuro era incluso nella versione 1.0.33 ed è abilitato per impostazione predefinita. In gperftools (vecchio tcmalloc) le modifiche sono accettate, ma saranno offerte come opzione in una versione futura.

Gli sviluppatori di TCMalloc hanno rifiutato di accettare la modifica, ccon un forte successo nelle prestazioni e la necessità di aggiungere test avanzati per verificare regolarmente che tutto funzioni correttamente.

Test effettuati da Gli ingegneri del punto di controllo hanno dimostrato che il metodo di collegamento sicuro non porta a un consumo di memoria aggiuntivo e le prestazioni quando si eseguono operazioni di heap in media diminuiscono solo dello 0.02% e nel peggiore dei casi dell'1.5%

L'abilitazione del collegamento sicuro porta all'esecuzione di 2-3 istruzioni assembler aggiuntive con ogni chiamata a free () e 3-4 istruzioni quando si chiama malloc (). L'inizio dell'inizializzazione e la generazione di valori casuali non sono necessari.

Il collegamento sicuro può essere utilizzato non solo per aumentare la sicurezza di varie implementazioni di heap, sino anche per aggiungere controlli di integrità a qualsiasi struttura di dati che utilizza un elenco di puntatori collegati individualmente situati accanto ai buffer.

Il metodo è molto semplice da implementare e richiede solo l'aggiunta di una macro e applicalo ai puntatori al blocco successivo del codice (ad esempio, per Glibc solo poche righe vengono modificate nel codice).

L'essenza del metodo è applicare dati casuali dal meccanismo di randomizzazione degli indirizzi ASLR (mmap_base) per proteggere elenchi collegati individualmente come Fast-Bins e TCache. Prima di applicare il valore del puntatore all'elemento successivo nell'elenco, la conversione della maschera e il controllo dell'allineamento vengono eseguiti lungo il bordo della pagina di memoria. Il puntatore viene sostituito con il risultato dell'operazione "(L >> PAGE_SHIFT) XOR (P)", dove P è il valore del puntatore e L è la posizione in memoria in cui è memorizzato questo puntatore.

Quando utilizzati nel sistema ASLR (Address Space Layout Randomization), alcuni dei bit L con l'indirizzo di base dell'heap contengono valori casuali che vengono utilizzati come chiave per codificare P (vengono estratti da un'operazione di spostamento di 12 bit per pagine da 4096 byte).

Tale manipolazione riduce il rischio di catturare un puntatore in un exploit, Poiché il puntatore non è memorizzato nella sua forma originale e per sostituirlo, è necessario conoscere le informazioni sulla posizione dell'heap.

Il metodo è efficace nella protezione dagli attacchi che utilizzano la ridefinizione parziale del puntatore (spostamento di byte basso), riscrittura completa dei puntatori (reindirizza al codice dell'aggressore) e cambia la posizione dell'elenco in una direzione non allineata.

A titolo di esempio, è stato dimostrato che l'uso del Safe-Linking in malloc bloccherebbe lo sfruttamento della vulnerabilità CVE-2020-6007 recentemente scoperta dagli stessi ricercatori nella retroilluminazione intelligente Philips Hue Bridge causata dal buffer overflow e consentendo il controllo il dispositivo.

fonte: https://research.checkpoint.com


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.