70% sa mga problema sa seguridad sa Chromium tungod sa mga sayup sa memorya

Mga developer sa proyekto sa Chromium gisusi 912 high-risk ug kritikal nga mga kahuyangan nga giila sa stable nga pagpagawas sa Chrome sukad sa 2015, ug nakahinapos nga ang 70% niini gipahinabo sa pagkawalay kasegurohan sa memorya (mga sayop sa pagtrabaho uban sa mga pointer sa C/C++ code). Ang katunga niini nga mga problema (36.1%) gipahinabo sa mga pag-access sa buffer human mapagawas ang panumduman nga nalangkit niini (gamit-pagkahuman-walay bayad).

70% sa mga problema sa seguridad sa Chromium tungod sa mga sayup sa memorya

Kung nagdesinyo sa Chromium kini sa sinugdanan gibutangnga posible nga ang mga sayup mahimong makita sa code, mao nga ang usa ka dako nga gibug-aton gibutang sa paggamit sa sandbox isolation aron limitahan ang mga sangputanan sa mga kahuyangan. Sa pagkakaron, ang mga posibilidad sa paggamit niini nga teknolohiya nakaabot sa limitasyon sa ilang mga kapabilidad ug ang dugang nga pagkabahin ngadto sa mga proseso dili praktikal gikan sa punto sa panglantaw sa konsumo sa kapanguhaan.

Aron mapadayon ang seguridad sa codebase, gipatuman usab sa Google ang "lagda sa duha", sumala sa diin ang bisan unsang dugang nga code kinahanglan nga magtagbo dili molapas sa duha sa tulo ka mga kondisyon: pagtrabaho uban ang wala’y balido nga data sa pag-input, gamit ang usa ka dili sigurado nga sinultian nga programming (C / C ++) ug pagdagan nga adunay taas nga mga pribilehiyo. Kini nga lagda nagpasabot nga ang kodigo sa pagproseso sa eksternal nga datos kinahanglang pakunhoran ngadto sa dyutay nga mga pribilehiyo (isolated) o isulat sa luwas nga programming language.

Aron madugangan pa ang seguridad sa base sa code, usa ka proyekto ang gilunsad aron mapugngan ang mga sayup sa memorya nga makita sa base sa code. Adunay tulo ka nag-unang mga pamaagi: paghimo sa C++ nga mga librarya nga adunay mga gimbuhaton alang sa luwas nga operasyon sa memorya ug pagpalapad sa sakup sa tigkolekta sa basura, gamit ang mga mekanismo sa pagpanalipod sa hardware Mte (Memory Tagging Extension) ug mga sangkap sa pagsulat sa mga lengguwahe nga nagsiguro sa luwas nga pagtrabaho nga adunay memorya (Java, Kotlin, JavaScript, Rust, Swift).

Gilauman nga ang trabaho masentro sa duha ka mga lugar:

  • Mahinungdanon nga pagbag-o sa proseso sa pagpauswag sa C++, nga wala iapil ang negatibo nga epekto sa pasundayag (dugang mga pagsusi sa utlanan ug pagkolekta sa basura). Imbis nga hilaw nga mga punto, gisugyot nga gamiton ang tipo MilagroPtr, nga nagtugot kanimo sa pagpakunhod sa mapahimuslanon nga paggamit-human-gawas nga mga sayop ngadto sa mga crash nga dili pose sa usa ka hulga sa seguridad, nga walay usa ka mamatikdan negatibo nga epekto sa performance, memory konsumo ug kalig-on.
  • Ang paggamit sa mga pinulongan nga gidesinyo sa paghimo sa mga pagsusi sa kaluwasan sa panumduman sa panahon sa pag-compile (magwagtang sa negatibong epekto sa pasundayag nga kinaiyanhon sa maong mga tseke atol sa pagpatuman sa code, apan mosangpot sa dugang nga gasto sa pag-organisar sa interaksyon sa code sa bag-ong pinulongan nga adunay code sa C++).

Ang paggamit sa mga librarya nga luwas sa panumduman mao ang pinakasimple, apan dili kaayo epektibo nga paagi. Ang pagsulat pag-usab sa code sa Rust gimarkahan nga labing epektibo, apan mahal usab kaayo nga paagi.

70% sa mga problema sa seguridad sa Chromium tungod sa mga sayup sa memorya

Source: opennet.ru

Idugang sa usa ka comment