Punctul de verificare a prezentat o tehnică de siguranță Safe-Linking

Punct de control (un furnizor global de soluții de securitate IT) a lansat acum câteva zile introducerea a mecanismului de siguranță „Conectare sigură”,face dificilă crearea exploatărilor care manipulează definiția sau schimbarea indicatorilor către tampoane alocate atunci când efectuați un apel malloc.

Noul mecanism „Safe-Linking” nu blochează complet posibilitatea exploatării vulnerabilităților, dar cu o cheltuială minimă complică crearea anumitor categorii de exploatăriÎn plus față de depășirea bufferului exploatat, este necesar să se găsească o altă vulnerabilitate care să provoace informații despre locația heap-ului în memorie.

Au fost pregătite patch-uri de implementare Safe-Linking pentru Glibc (ptmalloc), uClibc-NG (dlmalloc), gperftools (tcmalloc) și Google TCMalloc, precum și o propunere de modernizare a protecției în Chromium (din 2012 Chromium a fost deja integrat cu soluții la aceeași problemă) Tehnica de protecție MaskPtr, dar soluția Checkpoint arată performanțe mai bune).

Patch-urile propuse au fost deja aprobate pentru livrare în versiunea din august a Glibc 3.32 și Safe-Linking va fi activat în mod implicit. În uClibc-NG, suportul legăturilor securizate a fost inclus în versiunea 1.0.33 și este activat în mod implicit. În gperftools (tcmalloc vechi) modificările sunt acceptate, dar vor fi oferite ca opțiune într-o versiune viitoare.

Dezvoltatorii TCMalloc au refuzat să accepte modificarea, ccu succes puternic de performanță și necesitatea de a adăuga teste avansate pentru a verifica în mod regulat dacă totul funcționează corect.

Teste efectuate de Inginerii punctelor de verificare au arătat că metoda Safe-Linking nu duce la consum suplimentar de memorie iar performanța la efectuarea operațiunilor de heap scade în medie doar cu 0.02% și, în cel mai rău caz, cu 1.5%

Activarea Safe-Linking duce la executarea a 2-3 instrucțiuni de asamblare suplimentare cu fiecare apel la free () și 3-4 instrucțiuni atunci când sună la malloc (). Nu este necesară inițializarea și generarea de valori aleatorii.

Safe-Linking poate fi utilizat nu numai pentru a spori siguranța a diferitelor implementări de heap, sino, de asemenea, pentru a adăuga verificări de integritate la orice structură de date care folosește o listă de pointeri conectați individual, situați lângă buffere.

Metoda este foarte simplu de implementat și necesită doar adăugarea unui macro și aplicați-l la indicatoarele pentru următorul bloc al codului (de exemplu, pentru Glibc doar câteva linii sunt modificate în cod).

Esența metodei este de a aplica date aleatorii din mecanismul de randomizare a adreselor ASLR (mmap_base) pentru a proteja listele legate individual, cum ar fi Fast-Bins și TCache. Înainte de a aplica valoarea indicatorului la următorul element din listă, conversia măștii și verificarea alinierii se efectuează de-a lungul marginii paginii de memorie. Pointerul este înlocuit cu rezultatul operației "(L >> PAGE_SHIFT) XOR (P)", unde P este valoarea indicatorului și L este locația din memorie unde este stocat acest pointer.

Atunci când sunt utilizate în sistemul ASLR (Address Space Layout Randomization), unele dintre L biți cu adresa de bază a heap-ului conțin valori aleatorii care sunt folosite ca cheie pentru codificarea P (sunt extrase printr-o operație de schimbare de 12 biți pentru pagini de 4096 de octeți).

O astfel de manipulare reduce riscul de a captura un pointer într-un exploit, Deoarece indicatorul nu este stocat în forma sa originală și pentru a-l înlocui, trebuie să cunoașteți informații despre locația heap-ului.

Metoda este eficientă în protejarea împotriva atacurilor care utilizează redefinirea parțială a indicatorului (deplasare de octet scăzut), rescrierea completă a indicilor (redirecționați către codul atacatorului) și schimbați poziția listei într-o direcție nealiniată.

De exemplu, se arată că utilizarea Safe-Linking în malloc ar bloca exploatarea vulnerabilității CVE-2020-6007 descoperită recent de aceiași cercetători în lumina de fundal inteligentă Philips Hue Bridge cauzată de depășirea bufferului și care permite controlul dispozitivul.

Fuente: https://research.checkpoint.com


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.