Ryð er meðal helstu tungumála fyrir þróun Android vettvangs

Google hefur tilkynnt að Rust forritunarmálið sé tekið upp á meðal þeirra tungumála sem leyft er að þróa Android vettvang. Rust tungumálaþýðandinn var innifalinn í Android upprunatrénu árið 2019, en stuðningur við þetta tungumál var áfram tilraunakennt. Sumir af fyrstu Rust íhlutunum sem fyrirhugað er að senda á Android eru nýjar útfærslur á Binder samskiptakerfi og Bluetooth stafla.

Kynning á Rust var framkvæmd sem hluti af verkefni til að efla öryggi, stuðla að öruggri forritunartækni og auka skilvirkni við að greina vandamál þegar unnið er með minni í Android. Það er tekið fram að um 70% af öllum hættulegum veikleikum sem greindir eru í Android stafa af villum þegar unnið er með minni. Notkun Rust, sem leggur áherslu á minnisöryggi og sjálfvirka minnisstjórnun, mun draga úr hættu á veikleikum af völdum minnisvillna eins og eftir-frjáls aðgangs og biðminni.

Ryð framfylgir minnisöryggi við samantektartíma með tilvísunarathugun, eignarhaldi á hlutum og mælingar á líftíma hluta (umfang) og með því að meta réttmæti minnisaðgangs á keyrslutíma. Ryð veitir einnig vörn gegn heiltöluflæði, krefst þess að breytugildi séu frumstillt fyrir notkun, hefur betri villumeðferð í stöðluðu bókasafni, notar hugmyndina um óbreytanlegar tilvísanir og breytur sjálfgefið og býður upp á sterka truflanir innsláttar til að lágmarka rökfræðilegar villur.

Í Android er minnisöryggi veitt á þegar studdum tungumálum Kotlin og Java, en þau henta ekki til að þróa kerfisíhluti vegna mikillar kostnaðar. Ryð gerir það mögulegt að ná frammistöðu nálægt C og C++ tungumálunum, sem gerir það kleift að nota það til að þróa lágstigshluta vettvangsins og íhluti til að hafa samskipti við vélbúnað.

Til að tryggja öryggi C og C++ kóða notar Android sandkassaeinangrun, kyrrstöðugreiningu og óljós prófun. Geta sandkassaeinangrunar er takmörkuð og hefur náð takmörkum getu þeirra (frekari sundrun í ferla er óframkvæmanleg frá sjónarhóli auðlindanotkunar). Takmarkanir á notkun sandkassa fela í sér stóran kostnaðarkostnað og aukna minnisnotkun sem stafar af nauðsyn þess að hleypa af stað nýjum ferlum, auk viðbótartafir í tengslum við notkun IPC.

Á sama tíma útilokar sandkassi ekki veikleika í kóðanum, heldur dregur aðeins úr áhættu og flækir árásina, þar sem misnotkun krefst auðkenningar á ekki einum, heldur nokkrum veikleikum. Aðferðir sem byggjast á kóðaprófun eru takmarkaðar að því leyti að til að greina villur þarf að skapa aðstæður til að vandamálið geri vart við sig. Það er ekki hægt að ná yfir alla mögulega valkosti, svo margar villur fara óséðar.

Fyrir kerfisferla í Android fylgir Google „reglunni um tvo“, samkvæmt því að allir viðbættir kóðar mega ekki uppfylla fleiri en tvö af þremur skilyrðum: vinna með ófullgild innsláttargögn, nota óöruggt forritunarmál (C/C++) og keyra án strangrar sandkassaeinangrunar (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.

Google stefnir ekki að því að endurskrifa núverandi C/C++ kóða í Rust, en ætlar að nota þetta tungumál til að þróa nýjan kóða. Það er skynsamlegt að nota Rust fyrir nýjan kóða vegna þess að tölfræðilega birtast flestar villur í nýjum eða nýlega breyttum kóða. Sérstaklega eru um 50% greindra minnisvillna í Android greind í kóða sem var skrifaður fyrir minna en ári síðan.

Ryð er meðal helstu tungumála fyrir þróun Android vettvangs


Heimild: opennet.ru

Bæta við athugasemd