Checkpoint proposéiert Safe-Linking Schutz Technik, wat et méi schwéier mécht Schwachstelle auszenotzen

Checkpoint Company presentéiert Safe-Linking Schutzmechanismus, wat et schwéier mécht Exploiten ze kreéieren déi d'Definitioun oder d'Modifikatioun vun de Pointer op Puffer manipuléieren, déi zougewisen sinn wann e Malloc Uruff ausféiert. Safe-Linking blockéiert d'Méiglechkeet fir Schwachstelle net komplett z'exploitéieren, awer mat minimalem Overhead komplizéiert et däitlech d'Schafung vu bestëmmte Kategorien vun Ausnotzen, well nieft dem exploitéierbare Pufferiwwerfluss et néideg ass eng aner Schwachstelle ze fannen déi d'Leckage vun Informatioun iwwer d'Plazéierung vun der Koup an Erënnerung.

Patches, déi Safe-Linking implementéieren, goufe virbereet fir Glibc (ptmalloc), uClibc-NG (dlmalloc), gperftools (tcmalloc) a Google TCMalloc, a ginn och proposéiert fir de Schutz am Chromium ze upgraden (an
Zënter 2012 huet Chromium schonn an der MaskPtr Schutztechnik gebaut fir dee selwechte Problem ze léisen, awer d'Léisung vu Checkpoint weist méi héich Leeschtung).
Virgeschloe Patches si scho fir d'Liwwerung an der August Verëffentlechung guttgeheescht glibc 3.32 a Safe-Linking gëtt als Standard aktivéiert. uClibc-NG ënnerstëtzt Safe-Linking erakomm abegraff an der Verëffentlechung 1.0.33 an ass als Standard aktivéiert. Ännerungen an gperftools (al tcmalloc) ugeholl, awer gëtt als Optioun an enger zukünfteg Verëffentlechung ugebueden.

Entwéckler TCMalloc (nei tcmalloc) refuséiert ze akzeptéieren Ännerung, zitéiert schwéier Leeschtungsverschlechterung an d'Notzung fir extensiv Tester ze addéieren fir regelméisseg ze kontrolléieren datt alles funktionnéiert wéi erwaart. Tester vu Checkpoint Ingenieuren hunn gewisen datt d'Safe-Linking Method net zu zousätzleche Gedächtnisverbrauch féiert, an d'Performance beim Ausféieren vun Heapoperatioune gëtt am Duerchschnëtt ëm nëmmen 0.02% reduzéiert, an am schlëmmste Fall Szenario ëm 1.5% (zum Verglach, d'Overhead Käschten an der Method, déi am Chromium benotzt gëtt, ginn als "manner wéi 2%" geschat). Inklusioun
Safe-Verknëppung Resultater an 2-3 zousätzlech Assemblée Uweisungen all Kéier ausgefouert fräi () genannt, an 3-4 Uweisungen all Kéier malloc () genannt. D'Initialiséierung an d'Zoufallswäertgeneratiounsstadien auszeféieren ass net erfuerderlech.

Checkpoint proposéiert Safe-Linking Schutz Technik, wat et méi schwéier mécht Schwachstelle auszenotzen

Safe-Linking kann net nëmmen benotzt ginn fir d'Sécherheet vu verschiddene Heap-Implementatiounen ze verbesseren, awer och fir Integritéitskontrollen un all Datestrukturen ze addéieren déi eenzel verlinkte Lëschte vu Pointer benotzen, déi nieft de Puffer selwer plazéiert sinn. D'Method ass ganz einfach ze implementéieren an erfuerdert nëmmen ee Makro derbäi ze ginn an et op Pointer op den nächste Block am Code z'applizéieren (zum Beispill fir Glibc Ännerungen just e puer Zeilen Code). D'Methode kënnt op déi folgend Ännerungen:

+#definéieren PROTECT_PTR(pos, ptr) \
+ ((__typeof (ptr)) ((((size_t) pos) >> 12) ^ ((size_t) ptr)))

+#definéieren REVEAL_PTR(ptr) PROTECT_PTR (&ptr, ptr)

- nextp = p->fd;
+ nextp = REVEAL_PTR (p->fd);
...

D'Essenz vun der Method ass zoufälleg Daten aus dem ASLR Adress Randomiséierungsmechanismus (mmap_base) ze benotzen fir eenzel verlinkte Lëschte wéi Fast-Bins an TCache ze schützen. Ier Dir e Pointer op dat nächst Element an der Lëscht op de Wäert applizéiert, mécht et eng Maskkonversioun a kontrolléiert d'Säitausrichtung. De Pointer gëtt duerch d'Resultat vun der Operatioun "(L >> PAGE_SHIFT) XOR (P)" ersat, wou P de Wäert vum Zeiger ass an L d'Erënnerungsplaz ass wou de Pointer gespäichert ass.

Checkpoint proposéiert Safe-Linking Schutz Technik, wat et méi schwéier mécht Schwachstelle auszenotzen

Wann am System benotzt ASLR (Adress Space Layout Randomization) Deel vun de L Bits mat der Heap Basis Adress enthält zoufälleg Wäerter déi als Schlëssel benotzt gi fir P ze codéieren (extraitéiert duerch eng 12-Bit Verréckelung Operatioun fir 4096-Byte Säiten). Dës Manipulatioun reduzéiert de Risiko fir Zeigefanger an engem Exploit, well de Pointer net a senger ursprénglecher Form gespäichert ass an ersetzen erfuerdert Wësse vun der Heap Allocatioun. Zousätzlech enthält de Patchcode och en zousätzleche Scheck fir d'Blockausrichtung, déi en Ugräifer net erlaabt e Pointer mat engem net ausgeriichtte Wäert z'ersetzen an erfuerdert Wëssen iwwer d'Zuel vun de Bits, déi ausgeriicht sinn, wat op 64-Bit Systemer zousätzlech blockéiert erlaabt. 15 vun 16 Attacke Versich déi d'Ausrichtung net berücksichtegen.

D'Method ass effektiv fir géint Attacken ze schützen, déi deelweis Zeecher-Ëmschreiwe benotzen (niddereg Bytes änneren), komplette Zeiger ëmschreiwen (viruleiren op de Code vum Ugräifer) an d'Lëschtpositioun op enger net ausgeriicht Adress änneren. Als Beispill gëtt gewisen datt d'Benotzung vu Safe-Linking am Malloc d'Exploitatioun blockéiere kierzlech erlaabt identifizéiert vun der selwechter Schwachstelle Fuerscher CVE-2020-6007 am Philips Hue Bridge Smart Liicht, verursaacht duerch e Puffer Iwwerfloss an erlaabt Iech Kontroll iwwer den Apparat ze kréien.

Source: opennet.ru

Setzt e Commentaire