70% e problemeve të sigurisë në Chromium shkaktohen nga gabimet në punën me memorien.

Zhvilluesit e projektit Chromium analizuan 912 dobësi të rrezikshme dhe kritikë, të identifikuara në versionet e stabilizuara të Chrome që nga viti 2015, dhe arritën në përfundimin se 70% e tyre ishin të shkaktuara nga punimi i pa sigurt me memorien (gabime në punën me treguesit në kodin C/C++). Pjesa më e madhe e këtyre problemeve (36.1%) ishte shkaktuar nga qasjet në një bufer pas lirimit të memorjes së lidhur me të (use-after-free).

70% e problemeve të sigurisë në Chromium shkaktohen nga gabimet në punën me memorien.

Gjatë projektimit të Chromium ishte paraparë që, se në kod nuk përjashtohet shfaqja e gabimeve, ndaj një vlerësim i madh është bërë për përdorimin e izolimit sandbox për të kufizuar pasojat e shfaqjes së dobësive. Aktualisht, mundësitë e aplikimit të kësaj teknologjie kanë arritur kufirin e mundësive të saj dhe përpjesëtimi i mëtejshëm në procese nuk është i arsyeshëm nga pikëpamja e konsumit të burimeve.

Për të mbajtur sigurinë e bazës së kodit, Google gjithashtu përdor "rregullin e dy", sipas të cilit çdo kod i shtuar duhet të përfitojë jo më shumë se dy kushte nga tri: puna me të dhëna hyrëse të pa verifikuara, përdorimi i një gjuhe programimi të pasigurt (C/C++) dhe ekzekutimi me privilegje të larta. Nga ky rregull del, se kodi për trajtimin e të dhënave të jashtme duhet ose të jetë i kufizuar në privilegje minimale (izoluese), ose të jetë shkruar në një gjuhë programimi të sigurt.

Për të forcuar më tej mbrojtjen e bazës së kodit, është nisur një projekt për të parandaluar shfaqjen e gabimeve të punës me memorien në bazën e kodit. Tre qasje kryesore janë identifikuar: krijimi i bibliotekave C++ me funksione për punë të sigurt me memorien dhe zgjerimi i fushës së përdorimit të mbledhësit të mbetjeve, aplikimi i mekanizmave të mbrojtjes hardware MTE (Memory Tagging Extension) dhe shkruajtja e komponenteve në gjuhë që garantojnë punë të sigurt me memorien (Java, Kotlin, JavaScript, Rust, Swift).

Pritet që puna të përqendrohet në dy drejtime:

  • NjĂ« ndryshim tĂ« rĂ«ndĂ«sishĂ«m nĂ« procesin e zhvillimit nĂ« C++, i cili nuk pĂ«rjashton ndikime negative nĂ« performancĂ« (kontroll tĂ« shtuar tĂ« kufijve dhe mbledhje mbetjesh). NĂ« vend tĂ« treguesve raw, propozohet pĂ«rdorimi nĂ« kod tĂ« tipit MiraclePtr, duke lejon tĂ« reduktojĂ« gabimet e klasĂ«s use-after-free nĂ« crashes qĂ« nuk paraqesin njĂ« kĂ«rcĂ«nim pĂ«r sigurinĂ«, pa ndikuar ndjeshĂ«m nĂ« performancĂ«n, konsumimin e memories dhe stabilitetin.
  • PĂ«rdorimi i gjuhĂ«ve qĂ« janĂ« tĂ« dizajnuara pĂ«r tĂ« kryer verifikime tĂ« sigurta tĂ« punĂ«s me memorien gjatĂ« kompilimit (do tĂ« pĂ«rjashtojĂ« ndikimin negativ nĂ« performancĂ«, tipik pĂ«r verifikimet e tilla gjatĂ« ekzekutimit tĂ« kodit, por do tĂ« sjellĂ« edhe shpenzime tĂ« shtuara pĂ«r organizimin e ndĂ«rveprimit tĂ« kodit nĂ« njĂ« gjuhĂ« tĂ« re me kodin nĂ« C++).

Përdorimi i bibliotekave për punën e sigurt me memorien është mënyra më e thjeshtë, por edhe më pak efektive. Rishkrimi i kodit në Rust konsiderohet si rruga më efektive, por gjithashtu është një proces shumë i kushtueshëm.

70% e problemeve të sigurisë në Chromium shkaktohen nga gabimet në punën me memorien.

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster