Checkpoint Company
Patches dy't Safe-Linking ymplementearje binne taret foar Glibc (ptmalloc), uClibc-NG (dlmalloc), gperftools (tcmalloc) en Google TCMalloc, en wurde ek foarsteld foar it opwurdearjen fan beskerming yn Chromium (yn
Sûnt 2012 hat Chromium de MaskPtr-beskermingstechnyk al ynboud, rjochte op it oplossen fan itselde probleem, mar de oplossing fan Checkpoint toant hegere prestaasjes).
Foarstelde patches binne al goedkard foar levering yn 'e augustus-útjefte
Developers
Feilich-Linking resultearret yn 2-3 ekstra assembly ynstruksjes wurde útfierd eltse kear free () wurdt neamd, en 3-4 ynstruksjes eltse kear malloc () wurdt neamd. It útfieren fan de stadia fan inisjalisaasje en generaasje fan willekeurige wearden is net fereaske.
Safe-Linking kin net allinich brûkt wurde om de feiligens fan ferskate heap-ymplementaasjes te ferbetterjen, mar ek om yntegriteitskontrôles ta te foegjen oan alle gegevensstruktueren dy't inkeld keppele listen brûke mei oanwizers pleatst neist de buffers sels. De metoade is heul ienfâldich om te ymplementearjen en fereasket allinich ien makro ta te foegjen en it oan te passen op pointers nei it folgjende blok yn 'e koade (bygelyks foar Glibc
+#define PROTECT_PTR(pos, ptr) \
+ ((__typeof (ptr)) (((((size_t) pos) >> 12) ^ ((size_t) ptr)))
+#define REVEAL_PTR(ptr) PROTECT_PTR (&ptr, ptr)
- nextp = p->fd;
+ nextp = REVEAL_PTR (p->fd);
...
De essinsje fan 'e metoade is om willekeurige gegevens te brûken fan it ASLR-adres-randomisaasjemeganisme (mmap_base) om single-keppele listen te beskermjen lykas Fast-Bins en TCache. Foardat de wearde wurdt tapast op in oanwizer nei it folgjende elemint yn 'e list, fiert it in maskerkonverzje en kontrolearret de side-ôfstimming. De oanwizer wurdt ferfongen troch it resultaat fan 'e operaasje "(L >> PAGE_SHIFT) XOR (P)", wêrby't P de wearde fan 'e oanwizer is en L de ûnthâldlokaasje is wêr't de oanwizer is opslein.
Wannear't brûkt yn it systeem
De metoade is effektyf foar it beskermjen tsjin oanfallen dy't gebrûk meitsje fan partiel werskriuwen fan oanwizers (feroarjen fan lege bytes), folsleine werskriuwen fan oanwizers (omlieden nei de koade fan 'e oanfaller) en it feroarjen fan de listposysje op in net-ôfstimd adres. As foarbyld wurdt it oantoand dat it gebrûk fan Safe-Linking yn malloc de eksploitaasje koartlyn blokkearje soe
Boarne: opennet.ru