70% öryggisvandamála í Chromium stafa af minnisvillum

Hönnuðir Chromium verkefnisins greind 912 áhættuþættir og mikilvægir veikleikar greindir í stöðugum útgáfum af Chrome síðan 2015 og komst að þeirri niðurstöðu að 70% þeirra væru af völdum minnisóöryggis (villur þegar unnið er með ábendingar í C/C++ kóða). Helmingur þessara vandamála (36.1%) stafar af aðgangi að biðminni eftir að hafa losað minnið sem tengist því (nota-eftir-frítt).

70% öryggisvandamála í Chromium stafa af minnisvillum

Þegar Chromium var hannað var það upphaflega lögð niður, að mögulegt sé að villur komi fram í kóðanum og því var lögð mikil áhersla á að nota sandkassaeinangrun til að takmarka afleiðingar veikleika. Eins og er hafa möguleikarnir á að nota þessa tækni náð takmörkum getu sinnar og frekari sundrun í ferla er óframkvæmanleg frá sjónarhóli auðlindanotkunar.

Til að viðhalda öryggi kóðagrunnsins framfylgir Google einnig "regla tveggja“, samkvæmt því að allir viðbættir kóðar mega ekki uppfylla meira en tvö af þremur skilyrðum: að vinna með óstaðfest inntaksgögn, nota óöruggt forritunarmál (C/C++) og keyra með aukin réttindi. Þessi regla felur í sér að kóði til að vinna utanaðkomandi gögn verður annaðhvort að vera minnkaður í lágmarksréttindi (einangruð) eða skrifaður á öruggu forritunarmáli.

Til að auka enn frekar öryggi kóðagrunnsins hefur verið sett af stað verkefni til að koma í veg fyrir að minnisvillur komi fram í kóðagrunninum. Það eru þrjár meginaðferðir: að búa til C++ bókasöfn með aðgerðum fyrir örugga notkun minni og stækka umfang sorphirðu með því að nota vélbúnaðarvörn MTE (Memory Tagging Extension) og ritunaríhluti á tungumálum sem tryggja örugga vinnu með minni (Java, Kotlin, JavaScript, Rust, Swift).

Gert er ráð fyrir að vinnan beinist að tveimur sviðum:

  • Veruleg breyting á C++ þróunarferlinu, sem útilokar ekki neikvæð áhrif á frammistöðu (viðbótarmarkaskoðun og sorphirðu). Í staðinn fyrir hráar ábendingar er lagt til að notuð sé gerð KraftaverkPtr, sem gerir þér kleift að draga úr villum sem hægt er að nýta eftir án notkunar í hrun sem stafar ekki af öryggisógn, án merkjanlegra neikvæðra áhrifa á afköst, minnisnotkun og stöðugleika.
  • Notkun tungumála sem eru hönnuð til að framkvæma öryggisathuganir á minni á tímasetningu (mun koma í veg fyrir neikvæð áhrif á frammistöðu sem felast í slíkum athugunum við keyrslu kóða, en mun leiða til viðbótarkostnaðar við að skipuleggja víxlverkun kóða á nýju tungumáli við kóða í C++).

Að nota minnisörugg bókasöfn er einfaldasta en jafnframt óhagkvæmasta leiðin. Endurskrifa kóða í Rust er metin sem áhrifaríkasta en líka mjög dýr leiðin.

70% öryggisvandamála í Chromium stafa af minnisvillum

Heimild: opennet.ru

Bæta við athugasemd