Ebe nlele atụpụtara usoro nchedo Safe-Linking, na-eme ka ọ sie ike karịa iji adịghị ike

Ụlọ ọrụ Checkpoint ọkọnọ Usoro nchekwa nchekwa-njikọ, nke na-eme ka o sie ike ịmepụta ihe arụrụ arụ na-emegharị nkọwa ma ọ bụ ngbanwe nke ntụnye aka na ihe nchekwa ekenyela mgbe ị na-eme oku malloc. Safe-Linking anaghị egbochi kpam kpam ohere nke iji adịghị ike eme ihe, mana n'iji obere ihe karịrị ya, ọ na-esiri ike ịmepụta ụdị ụfọdụ nke ịkpa ike, ebe ọ bụ na mgbakwunye na oke ihe nchekwa nke na-erigbu, ọ dị mkpa ịchọta adịghị ike ọzọ nke na-akpata ntanye nke ozi gbasara. ntinye nke ikpo na ebe nchekwa.

A kwadoro patches na-emejuputa Safe-Linking maka Glibc (ptmalloc), uClibc-NG (dlmalloc), gperftools (tcmalloc) na Google TCMalloc, ma akwadoro maka ịkwalite nchebe na Chromium (na).
Kemgbe 2012, Chromium abanyelarị na usoro nchekwa MaskPtr iji dozie otu nsogbu ahụ, mana ihe ngwọta sitere na Checkpoint gosipụtara arụmọrụ dị elu).
akwadolarị patches tụrụ aro maka ibuga na mwepụta Ọgọst glibc 3.32 na Safe-Linking ga-enyere ya aka na ndabara. uClibc-NG na-akwado Safe-Linking banyere gụnyere na ntọhapụ 1.0.33 ma na-akwado ya na ndabara. Mgbanwe na gperftools (tcmalloc ochie) nabatara, mana a ga-enye ya dị ka nhọrọ na ntọhapụ n'ọdịnihu.

Ndị mmepe TCMalloc (tcmalloc ọhụrụ) jụrụ ịnabata gbanwee, Na-ekwu maka mmebi arụmọrụ siri ike na mkpa ọ dị ịgbakwunye ọtụtụ ule iji chọpụta mgbe niile na ihe niile na-arụ ọrụ dị ka a tụrụ anya ya. Nlele nke ndị injinia Checkpoint gosipụtara na usoro Safe-Linking anaghị eduga na oriri nchekwa ọzọ, yana arụmọrụ mgbe ị na-arụ ọrụ ikpo ọkụ na-ebelata na nkezi site na naanị 0.02%, na n'ọnọdụ kachasị njọ site na 1.5% (maka ntụnyere, ọnụ ahịa dị n'elu). n'usoro eji eme ihe na Chromium, a na-eme atụmatụ dị ka "ihe na-erughị 2%)). Ntinye
Nsonaazụ Safe-Linking na 2-3 agbakwunyere ntuziaka mgbakọ a na-eme oge ọ bụla a na-akpọ () n'efu, yana ntụziaka 3-4 oge ọ bụla a na-akpọ malloc(). Na-agba ọsọ mmalite na usoro ọgbọ uru enweghị usoro achọrọ.

Ebe nlele atụpụtara usoro nchedo Safe-Linking, na-eme ka ọ sie ike karịa iji adịghị ike

Enwere ike iji njikọ nchekwa ọ bụghị naanị iji melite nchekwa nke mmejuputa ikpo okwu dị iche iche, kamakwa ịgbakwunye njikwa iguzosi ike n'ezi ihe na nhazi data ọ bụla na-eji ndepụta ntụnye ejikọtara ọnụ nke edobere n'akụkụ ndị na-echekwa onwe ha. Usoro a dị mfe iji mejuputa yana naanị chọrọ ịgbakwunye otu nnukwu ma tinye ya na ntụnye aka na ngọngọ na-esote na koodu ahụ (dịka ọmụmaatụ, maka Glibc. mgbanwe naanị ahịrị koodu ole na ole). Usoro a na-agbada ruo mgbanwe ndị a:

+# kọwaa PROTECT_PTR(pos, ptr) \
+ ((__typeof (ptr)) ((((size_t) pos) >> 12) ^ ((size_t) ptr)))

+# kọwaa REVEAL_PTR(ptr) PROTECT_PTR (&ptr, ptr)

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

Ihe kacha mkpa nke usoro a bụ iji data random sitere na usoro randomization ASLR (map_base) iji chebe ndepụta ejikọtara otu dị ka Fast-Bins na TCache. Tupu itinye ihe nrịbama na ihe na-esote na ndepụta ahụ na uru ahụ, ọ na-eme ntugharị nkpuchi ma na-enyocha nhazi nke ibe. A na-anọchi anya pointer site na nsonaazụ nke ọrụ "(L >> PAGE_SHIFT) XOR (P)", ebe P bụ uru nke pointer na L bụ ebe nchekwa ebe echekwara pointer.

Ebe nlele atụpụtara usoro nchedo Safe-Linking, na-eme ka ọ sie ike karịa iji adịghị ike

Mgbe ejiri ya na sistemụ ASLR (Adreesi Space Layout Randomization) akụkụ nke L ibe n'ibe nwere adrees isi okwu nwere ụkpụrụ enweghị usoro nke ejiri dị ka igodo iji tinye koodu P (nke ọrụ mgbanwe 12-bit weputara maka ibe 4096-byte). Ntughari a na-ebelata ihe ize ndụ nke ịdọrọ pointer na nrigbu, ebe ọ bụ na anaghị echekwa pointer n'ụdị mbụ ya ma dochie ya na-achọ ihe ọmụma nke oke oke. Na mgbakwunye, koodu patch ahụ nwekwara ihe nlele ọzọ maka nhazi ngọngọ, nke na-adịghị ekwe ka onye na-awakpo dochie ihe nrịbama na uru na-akwadoghị ma chọọ ịmata ọnụọgụ nke ibe n'usoro, nke na sistemụ 64-bit na-enye ohere igbochi. 15 n'ime 16 mgbalị mbuso agha na-adịghị etinye n'usoro n'ime akaụntụ.

Usoro a dị irè maka ichedo megide mwakpo ndị na-eji ntugharị akụkụ akụkụ (ịgbanwe obere bytes), idegharị pointer zuru ezu (ịtụgharị na koodu onye mwakpo) na ịgbanwe ọnọdụ ndepụta na adreesị enweghị nkwekọrịta. Dịka ọmụmaatụ, egosiri na iji Safe-Linking na malloc ga-enye ohere igbochi nrigbu n'oge na-adịbeghị anya. mara site na otu vulnerability nchoputa CVE-2020-6007 na Philips Hue Bridge smart light, nke ihe nkpuchi juputara na-enye gị ohere ijikwa ngwaọrụ ahụ.

isi: opennet.ru

Tinye a comment