Mhol Checkpoint dòigh dìon Ceangal Sàbhailte, ga dhèanamh nas duilghe brath a ghabhail air so-leòntachd

Companaidh Checkpoint air a thaisbeanadh Uidheam dìon Ceangal Sàbhailte, a tha ga dhèanamh duilich buannachdan a chruthachadh a làimhsicheas mìneachadh no atharrachadh air comharran gu bufairean a chaidh a shònrachadh nuair a thathar a’ cur an gnìomh gairm malloc. Chan eil Safe-Linking gu tur a’ cur bacadh air a’ chomas a bhith a’ gabhail brath air so-leòntachd, ach le glè bheag de chòrr tha e gu mòr a’ dèanamh duilgheadas ann a bhith a’ cruthachadh cuid de dh’ iomairtean, oir a bharrachd air an tar-shruth bufair so-ruigsinneach, feumar so-leòntachd eile a lorg a dh’ adhbhraicheas aodion fiosrachaidh mu dheidhinn. suidheachadh a' charn mar chuimhneachan.

Chaidh pìosan a chuir an gnìomh Safe-Linking ullachadh airson Glibc (ptmalloc), uClibc-NG (dlmalloc), gperftools (tcmalloc) agus Google TCMalloc, agus thathas cuideachd am moladh airson dìon àrdachadh ann an Chromium (ann an
Bho 2012, tha Chromium mu thràth air togail a-steach don dòigh dìon MaskPtr a tha ag amas air an aon dhuilgheadas fhuasgladh, ach tha am fuasgladh bho Checkpoint a’ nochdadh coileanadh nas àirde).
Chaidh na pìosan a chaidh a mholadh aontachadh mar-thà airson an lìbhrigeadh ann am brath an Lùnastal Gliocas 3.32 agus bidh Safe-Linking air a chomasachadh gu bunaiteach. Tha uClibc-NG a’ toirt taic do Safe-Linking a-steach air a ghabhail a-steach ann an sgaoileadh 1.0.33 agus tha e air a chomasachadh gu bunaiteach. Atharraichean ann an gperftools (seann tcmalloc) gabhail ris, ach thèid a thabhann mar roghainn ann am brath san àm ri teachd.

Luchd-leasachaidh TCMalloc (tcmalloc ùr) dhiùlt gabhail ris atharrachadh, ag ainmeachadh fìor ìsleachadh coileanaidh agus an fheum air deuchainnean farsaing a chuir ris gus dèanamh cinnteach gu cunbhalach gu bheil a h-uile càil ag obair mar a bhiodh dùil. Sheall deuchainnean le innleadairean Checkpoint nach eil an dòigh Safe-Linking a’ leantainn gu caitheamh cuimhne a bharrachd, agus gu bheil coileanadh nuair a bhios tu a’ coileanadh obair thùr air a lughdachadh gu cuibheasach le dìreach 0.02%, agus anns an t-suidheachadh as miosa le 1.5% (airson coimeas, tha na cosgaisean os cionn anns an dòigh a thathar a’ cleachdadh ann an Chromium air a mheas mar “nas lugha na 2%)”. In-ghabhail
Mar thoradh air Ceangal Sàbhailte thèid 2-3 stiùireadh cruinneachaidh a bharrachd a chuir an gnìomh gach uair a thèid an gairm an-asgaidh (), agus 3-4 stiùireadh gach uair a chanar malloc(). Chan eil feum air na h-ìrean tòiseachaidh agus gineadh luach air thuaiream a ruith.

Mhol Checkpoint dòigh dìon Ceangal Sàbhailte, ga dhèanamh nas duilghe brath a ghabhail air so-leòntachd

Faodar Safe-Linking a chleachdadh chan ann a-mhàin gus tèarainteachd diofar ghnìomhachadh tiùrr a leasachadh, ach cuideachd gus smachdan ionracas a chuir ri structaran dàta sam bith a bhios a’ cleachdadh liostaichean de chomharran le ceangal singilte air an cur ri taobh nam bufairean fhèin. Tha an dòigh gu math sìmplidh a chuir an gnìomh agus chan fheum ach aon macro a chuir ris agus a chuir an sàs ann an comharran chun ath bhloca sa chòd (mar eisimpleir, airson Glibc atharraichean dìreach beagan loidhnichean de chòd). Tha an dòigh-obrach an urra ris na h-atharrachaidhean a leanas:

#define PROTECT_PTR(pos, ptr) \
+ ((__typeof (ptr)) ((((size_t) pos) >> 12) ^ ((size_t) ptr)))

msgstr "sònraich REVEAL_PTR(ptr) PROTECT_PTR (&ptr, ptr)

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

Is e brìgh an dòigh-obrach dàta air thuaiream a chleachdadh bho uidheamachd air thuaiream seòladh ASLR (mmap_base) gus liostaichean le ceangal singilte leithid Fast-Bins agus TCache a dhìon. Mus cuir thu comharradh ris an ath eileamaid den liosta chun luach, bidh e a’ dèanamh tionndadh masg agus a’ sgrùdadh airson co-thaobhadh duilleag. Tha toradh na h-obrach "(L >> PAGE_SHIFT) XOR (P)" na àite a' phuing, far a bheil P mar luach a' phuing agus L 'na àite cuimhne far a bheil am puing air a stòradh.

Mhol Checkpoint dòigh dìon Ceangal Sàbhailte, ga dhèanamh nas duilghe brath a ghabhail air so-leòntachd

Nuair a thèid a chleachdadh san t-siostam ASLR (Seòladh Space Layout Randomization) ann am pàirt de na buillean L leis an t-seòladh bonn heap tha luachan air thuaiream a tha air an cleachdadh mar iuchair airson còdachadh P (air a thoirt a-mach le gnìomhachd gluasad 12-bit airson duilleagan 4096-byte). Tha an làimhseachadh seo a’ lughdachadh a’ chunnart gun tèid am puing a ghlacadh ann an brath, leis nach eil am puing air a stòradh anns a’ chruth thùsail aige agus nuair a thèid a chuir na àite feumaidh eòlas air riarachadh an tiùrr. A bharrachd air an sin, tha sgrùdadh a bharrachd anns a ’chòd paiste airson co-thaobhadh bloca, nach leig le neach-ionnsaigh luach neo-ainmichte a chuir an àite puing agus a dh’ fheumas eòlas air an àireamh de phìosan a tha co-thaobhadh, a tha air siostaman 64-bit a bharrachd a ’ceadachadh bacadh. 15 a-mach à 16 oidhirpean ionnsaigh nach eil a’ toirt aire do cho-thaobhadh .

Tha an dòigh èifeachdach airson dìon an aghaidh ionnsaighean a bhios a’ cleachdadh ath-sgrìobhadh pàirt-phuing (ag atharrachadh bytes ìosal), ath-sgrìobhadh puing iomlan (ath-stiùireadh gu còd an neach-ionnsaigh) agus ag atharrachadh suidheachadh liosta aig seòladh neo-ainmichte. Mar eisimpleir, thathas a’ sealltainn gun leigeadh cleachdadh Safe-Linking ann am malloc bacadh a chur air brath o chionn ghoirid aithnichte leis na h-aon luchd-rannsachaidh so-leòntachd CVE-2020-6007 ann an solas smart Philips Hue Bridge, air adhbhrachadh le tar-shruth bufair agus a leigeas leat smachd fhaighinn air an inneal.

Source: fosgailtenet.ru

Cuir beachd ann