Kompania Google analizoi eficiencën e përdorimit në kodin C++ të tipit MiraclePtr (raw_ptr<T>) në vend të treguesve të zakonshëm për të mbrojtur nga dobësitë që shkaktohen nga aksesimi i hapësirave të memorie që janë çliruar tashmë (use-after-free). MiraclePtr ofron një ndërfaqe mbi treguesit, e cila bën kontrollime të shtesave dhe ndalon punën në rast se zbulohet një akses në hapësira të memorie të çliruara. Mbështetja për MiraclePtr u aktivizua automatikisht në platformat Windows dhe Android në maj 2022 (në Chrome 102), dhe në platformat ChromeOS, Linux dhe macOS në qershor 2023. Mbrojtja e bazuar në MiraclePtr në Chrome përdoret për të gjitha proceset, përveç procesit përgjegjës për vizatimin (renderer).
Pas studimit të dinamikës së dërgimit të raporteve mbi dobësitë dhe përfundimet emergjente, si dhe analizës së incidenteve të lidhura me sigurinë dhe rezultateve të testimeve fuzzing, u arrit përfundimi se implementimi i MiraclePtr ofroi mbrojtje ndaj 57% të dobësive të klasës use-after-free, falë kalimit në përdorimin e MiraclePtr për fushat e klasave dhe parametrat e thirrjeve callback. Për më tepër, përmendet se 5 nga 6 dobësitë kritike të identifikuara vitin e kaluar në degën stabile të Chrome u identifikuan përmes studimit të raporteve mbi përfundimet emergjente të lidhura me përdorimin e MiraclePtr.
Kostoja e përdorimit të MiraclePtr është rritja e konsumit të memories, pasi për treguesit kërkohet të ruhet një shtesë prej 4 byte për numëruesin e referencave. Konsumi i memories nga procesi kryesor i shfletuesit me përdorimin e MiraclePtr rritet me 5.5-8% në ndërtimet për sistemet desktop dhe me 2% në versionin për Android. Rritja mesatare e konsumit për të gjithë proceset vlerësohet në 1-3%. Për më tepër, gjatë përdorimit të MiraclePtr janë regjistruar regresione të veçanta që çojnë në ulje të performancës, por që nuk lidhen me metrikat kyçe, si koha e ngarkesës dhe vizualizimit të faqes. Nga regresionet e zbuluara, veçohet një ngecje prej 1.5% në hyrjen e parë në Chrome OS, një ngadalësim prej 1.5% në hapjen e tab-eve në platformën Android, si dhe një rritje e probabilitetit të ngecjes së hyrjes për shkak të konkurrencës në rrjedhën kryesore (rritje e probabilitetit prej 10% në percentilin 99).
Burimi: opennet.ru
