Bar-koontarool ayaa la soo jeediyay farsamada ilaalinta badbaadada-isku xidhka, taasoo ka dhigaysa mid aad u adag in laga faa'iidaysto dayacanka

Shirkadda Isbaarada soo bandhigay Habka ilaalinta badbaadada-isku xidhka, taas oo adkeynaysa in la abuuro faa'iidooyin wax ka beddelaya qeexida ama wax ka beddelka tilmaamayaasha meelaha loo qoondeeyay marka la fulinayo wacitaanka malloc. Safe-Linking si buuxda uma xannibo suurtagalnimada ka faa'iidaysiga dayacanka, laakiin iyada oo ugu yar ee dusha sare ah waxay si weyn u adkeyneysaa abuurista qaybo gaar ah oo ka faa'iidaysi, sababtoo ah marka lagu daro kaydka ka faa'iidaysan kara qulqulka, waxaa lagama maarmaan ah in la helo baylah kale oo sababa daadinta macluumaadka ku saabsan meelaynta tuulmada xusuusta.

Xirmooyinka fulinaya Safe-Linking ayaa loo diyaariyay Glibc (ptmalloc), uClibc-NG (dlmalloc), gperftools (tcmalloc) iyo Google TCMalloc, waxaana sidoo kale loo soo jeediyay kor u qaadida ilaalinta Chromium
Laga soo bilaabo 2012, Chromium waxay mar hore ku dhistay farsamada ilaalinta MaskPtr ee looga golleeyahay in lagu xalliyo isla dhibaatadaas, laakiin xalka ka imanaya Checkpoint wuxuu muujinayaa waxqabad sare).
Xirmooyinka la soo jeediyay ayaa horay loo ansixiyay in la keeno Agoosto siideynta glibc 3.32 iyo Safe-linking waxa loo hawlgelin doonaa si toos ah. uClibc-NG waxay taageertaa isku xidhka badbaadada galay waxaa lagu soo daray siidaynta 1.0.33 oo si toos ah ayaa loo furay Isbeddellada gperftools (tcmalloc hore) aqbalay, laakiin waxa loo soo bandhigi doonaa ikhtiyaar ahaan siidaynta mustaqbalka.

Developers TCMalloc (tcmalloc cusub) wuu diiday inuu aqbalo beddel, iyada oo la tixraacayo hoos u dhaca waxqabadka ba'an iyo baahida loo qabo in lagu daro baaritaanno ballaaran si loo hubiyo in wax walba ay u shaqeynayaan sidii la filayay. Tijaabada ay sameeyeen injineerada Checkpoint waxay muujisay in habka Nabadgelyada-isku xidhka aanu u horseedin isticmaalka xusuusta dheeraadka ah, iyo waxqabadka marka la samaynayo hawlgallada tuullaynta ayaa la dhimay celcelis ahaan 0.02% oo keliya, xaaladdii ugu xumaydna 1.5% (marka la barbardhigo, kharashyada dulsaarka ah Habka loo isticmaalo Chromium waxa lagu qiyaasaa in uu "in ka yar 2%)." Ka mid noqoshada
Natiijooyinka isku xidhka badbaadada leh 2-3 hagitaan dheeri ah oo shirka oo la fuliyo mar kasta oo bilaash () la yiraahdo, iyo 3-4 tilmaamo mar kasta oo malloc() la yiraahdo. Ku socodsiinta bilowga bilowga iyo heerarka abuuritaanka qiimaha random looma baahna.

Bar-koontarool ayaa la soo jeediyay farsamada ilaalinta badbaadada-isku xidhka, taasoo ka dhigaysa mid aad u adag in laga faa'iidaysto dayacanka

Safe-Linking looma isticmaali karo oo kaliya in lagu wanaajiyo amniga ee fulinta tuulooyin kala duwan, laakiin sidoo kale in lagu daro kontaroolada hufnaanta qaab dhismeed kasta oo xog ah oo adeegsada liisaska hal-ku-xidhan ee tilmaamayaasha la ag dhigo kaydiyeyaasha laftooda. Habka waa mid aad u fudud in la hirgeliyo oo kaliya wuxuu u baahan yahay in lagu daro hal makro oo lagu dabaqo tilmaamayaasha ku xiga ee koodka (tusaale, Glibc is beddelaya dhowr xariiq oo kood ah). Habkani wuxuu hoos ugu dhacayaa isbeddellada soo socda:

+# qeex PROTECT_PTR (pos, ptr) \
+ ((__nooca (ptr)) ((((size_t) pos) >> 12) ^ ((size_t) ptr)))

+# qeex REVEAL_PTR(ptr) PROTECT_PTR (&ptr, ptr)

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

Nuxurka habka waa in la isticmaalo xogta random ka ASLR habka randomization ciwaanka (map_base) si loo ilaaliyo liisaska keligiis ku xidhan sida Fast-Bins iyo TCache. Ka hor inta aan qiimaha lagu dabaqin tilmaanta qaybta xigta ee liiska, waxay samaynaysaa beddelidda maaskaro waxayna hubisaa toosinta bogga. Tilmaamaha waxaa lagu beddelayaa natiijada hawlgalka "(L >> PAGE_SHIFT) XOR (P)", halkaasoo P ay tahay qiimaha tilmaame iyo L waa meesha xusuusta ee tilmaamayaasha lagu kaydiyo.

Bar-koontarool ayaa la soo jeediyay farsamada ilaalinta badbaadada-isku xidhka, taasoo ka dhigaysa mid aad u adag in laga faa'iidaysto dayacanka

Marka lagu isticmaalo nidaamka ASLR (Cinwaanka Meelaynta Layout Randomization) qayb ka mid ah L-bits oo leh ciwaanka salku waxa uu ka kooban yahay qiimayaal random ah oo loo isticmaalo fure ahaan si loo codeeyo P (oo laga soo saaray hawlgal 12-bit ah oo loogu talagalay bogag 4096-byte ah). Wax-is-daba-marintani waxay yaraynaysaa khatarta afduubka tilmaame ee ka faa'iidaysiga, mar haddii tilmaanta aan lagu kaydin qaabkeedii asalka ahaa oo beddelkeeda waxay u baahan tahay aqoonta qoondaynta tuulan. Intaa waxaa dheer, koodhka balastarku wuxuu sidoo kale ka kooban yahay hubin dheeraad ah oo loogu talagalay isku-xirnaanta xannibaadda, taas oo aan u oggolaan in weeraryahanku ku beddelo tilmaame leh qiime aan toos ahayn wuxuuna u baahan yahay aqoonta tirada jajabyada ee isku xiran, taas oo ku jirta nidaamyada 64-bit sidoo kale waxay oggolaadaan xannibaadda. 15 ka mid ah 16 isku day weerar oo aan xisaabta ku darsan.

Habka ayaa wax ku ool u ah ka ilaalinta weerarrada isticmaalaya tilmaame qayb ka mid ah dib u qorida (beddelaya bytes hoose), dhammayn dib u qorida tilmaame (dib u koodka weerarka) iyo beddelka booska liiska ee ciwaan aan toosnayn. Tusaale ahaan, waxaa la muujiyay in isticmaalka Safe-Linking ee malloc ay oggolaanayso in la joojiyo dhiig-miirashada dhawaanahan. la aqoonsaday by cilmi-baarayaasha dayacanka isku mid ah CVE-2020-6007 gudaha buundada Philips Hue iftiin caqli badan, oo uu sababay qulqulka buuxdhaafay oo kuu ogolaanaya inaad gacanta ku dhigto qalabka.

Source: opennet.ru

Add a comment