Roes is ingesluit onder die hooftale vir Android-platformontwikkeling

Google het die insluiting van die Rust-programmeertaal aangekondig onder die tale wat toegelaat word vir die ontwikkeling van die Android-platform. Die Rust-taalsamesteller is in 2019 in die Android-bronboom ingesluit, maar ondersteuning vir hierdie taal het eksperimenteel gebly. Sommige van die eerste Rust-komponente wat vir Android beplan is, sluit nuwe implementerings van die Binder-tussenproseskommunikasiemeganisme en die Bluetooth-stapel in.

Die bekendstelling van Rust is uitgevoer as deel van 'n projek om sekuriteit te versterk, veilige programmeringstegnieke te bevorder en die doeltreffendheid van die identifisering van probleme te verhoog wanneer daar met geheue in Android gewerk word. Daar word opgemerk dat ongeveer 70% van alle gevaarlike kwesbaarhede wat in Android geïdentifiseer word, veroorsaak word deur foute wanneer daar met geheue gewerk word. Die gebruik van Rust, wat fokus op geheueveiligheid en outomatiese geheuebestuur, sal die risiko verminder van kwesbaarhede wat veroorsaak word deur geheuefoute soos navrye toegang en bufferoorskryding.

Rust dwing geheueveiligheid af tydens samestellingstyd deur verwysingkontrolering, objekeienaarskap en objekleeftydnasporing (bestekke), en deur die korrektheid van geheuetoegange tydens looptyd te evalueer. Roes bied ook beskerming teen heelgetal oorvloeie, vereis dat veranderlike waardes geïnisialiseer word voor gebruik, het beter fouthantering in die standaard biblioteek, gebruik die konsep van onveranderlike verwysings en veranderlikes by verstek, en bied sterk statiese tik om logiese foute te minimaliseer.

In Android word geheueveiligheid verskaf in die reeds ondersteunde tale Kotlin en Java, maar dit is nie geskik vir die ontwikkeling van stelselkomponente nie as gevolg van hoë koste. Rust maak dit moontlik om werkverrigting naby die C- en C++-tale te behaal, wat dit moontlik maak om dit te gebruik vir die ontwikkeling van laevlak-dele van die platform en komponente vir interaksie met hardeware.

Om die sekuriteit van C- en C++-kode te verseker, gebruik Android sandbox-isolasie, statiese analise en fuzzing-toetse. Die vermoëns van sandbox-isolasie is beperk en het die limiet van hul vermoëns bereik (verdere fragmentering in prosesse is onprakties vanuit die oogpunt van hulpbronverbruik). Beperkings van die gebruik van sandbox sluit in groot oorhoofse koste en verhoogde geheueverbruik wat veroorsaak word deur die behoefte om nuwe prosesse te skep, sowel as bykomende vertragings wat verband hou met die gebruik van IPC.

Terselfdertyd skakel sandbox nie kwesbaarhede in die kode uit nie, maar verminder slegs risiko's en bemoeilik die aanval, aangesien uitbuiting die identifikasie van nie een nie, maar verskeie kwesbaarhede vereis. Metodes gebaseer op kodetoetsing is beperk deurdat om foute te identifiseer, dit nodig is om toestande te skep vir die probleem om homself te manifesteer. Dit is nie moontlik om alle moontlike opsies te dek nie, so baie foute gaan ongemerk.

Vir stelselprosesse in Android voldoen Google aan die "reël van twee", waarvolgens enige bygevoegde kode nie meer as twee van drie voorwaardes moet voldoen nie: werk met ongevalideerde invoerdata, gebruik 'n onveilige programmeertaal (C/C++), en hardloop sonder streng sandbox-isolasie (met verhoogde voorregte). Hierdie reël impliseer dat die kode vir die verwerking van eksterne data óf verminder moet word tot minimale voorregte (geïsoleer) óf in 'n veilige programmeertaal geskryf moet word.

Google beoog nie om bestaande C/C++-kode in Rust te herskryf nie, maar beplan om hierdie taal te gebruik om nuwe kode te ontwikkel. Dit maak sin om Rust vir nuwe kode te gebruik, want statisties verskyn die meeste foute in nuwe of onlangs veranderde kode. In die besonder word ongeveer 50% van opgespoorde geheuefoute in Android opgespoor in kode wat minder as 'n jaar gelede geskryf is.

Roes is ingesluit onder die hooftale vir Android-platformontwikkeling


Bron: opennet.ru

Voeg 'n opmerking