Rust kalebet diantara basa utama pikeun pangembangan platform Android

Google parantos ngumumkeun kalebet basa pamrograman Rust diantara basa anu diidinan pikeun ngembangkeun platform Android. Kompiler basa Rust kalebet dina tangkal sumber Android dina taun 2019, tapi dukungan pikeun basa ieu tetep ékspérimén. Sababaraha komponén Rust munggaran anu direncanakeun pikeun Android kalebet palaksanaan anyar mékanisme komunikasi antarprosés Binder sareng tumpukan Bluetooth.

Perkenalan Rust dilaksanakeun salaku bagian tina proyék pikeun nguatkeun kaamanan, ngamajukeun téknik pamrograman anu aman sareng ningkatkeun efisiensi ngaidentipikasi masalah nalika damel sareng mémori dina Android. Perhatoskeun yén sakitar 70% tina sadaya kerentanan bahaya anu diidentifikasi dina Android disababkeun ku kasalahan nalika damel sareng mémori. Ngagunakeun Rust, nu museurkeun kana kaamanan memori sareng manajemén memori otomatis, bakal ngurangan résiko vulnerabilities disababkeun ku kasalahan memori kayaning aksés sanggeus bébas tur overruns panyangga.

Karat maksakeun kaamanan memori dina waktos kompilasi ngaliwatan pamariksaan rujukan, kapamilikan obyék sareng tracking hirupna obyék (skop), sareng ku cara ngevaluasi kabeneran aksés mémori nalika waktos jalan. Karat ogé nyadiakeun panyalindungan ngalawan overflows integer, merlukeun nilai variabel bisa initialized saméméh pamakéan, boga penanganan kasalahan hadé dina perpustakaan baku, ngagunakeun konsép rujukan immutable sarta variabel sacara standar, sarta nawarkeun ketikan statik kuat pikeun ngaleutikan kasalahan logis.

Dina Android, kaamanan mémori disayogikeun dina basa anu parantos dirojong Kotlin sareng Java, tapi aranjeunna henteu cocog pikeun ngembangkeun komponén sistem kusabab overhead anu luhur. Karat ngamungkinkeun pikeun ngahontal prestasi anu caket sareng basa C sareng C ++, anu ngamungkinkeun éta dianggo pikeun ngembangkeun bagian-tingkat platform sareng komponén-komponén pikeun berinteraksi sareng hardware.

Pikeun mastikeun kaamanan kode C sareng C++, Android nganggo isolasi sandbox, analisis statik, sareng uji fuzzing. Kamampuhan isolasi sandbox diwatesan sareng parantos ngahontal wates kamampuanana (fragméntasi salajengna kana prosés henteu praktis tina sudut pandang konsumsi sumberdaya). Watesan pamakéan sandbox ngawengku waragad overhead badag sarta ngaronjat konsumsi memori disababkeun ku kabutuhan spawn prosés anyar, kitu ogé reureuh tambahan pakait sareng pamakéan IPC.

Dina waktu nu sarua, sandbox teu ngaleungitkeun kerentanan dina kode, tapi ngan ngurangan resiko na complicates serangan, saprak eksploitasi merlukeun idéntifikasi teu hiji, tapi sababaraha vulnerabilities. Métode dumasar kana tés kode diwatesan ku kituna pikeun ngaidentipikasi kasalahan, perlu nyiptakeun kaayaan pikeun manifestasi masalah. Henteu mungkin pikeun nutupan sadaya pilihan anu mungkin, janten seueur kasalahan anu teu ditingali.

Pikeun prosés sistem dina Android, Google taat kana "aturan dua", numutkeun nu mana wae kode nu ditambahkeun kudu minuhan euweuh leuwih ti dua tina tilu kaayaan: gawé bareng data input unvalidated, ngagunakeun basa pamrograman aman (C/C++), jeung ngajalankeun tanpa isolasi sandbox ketat (ngabogaan hak husus elevated). Aturan ieu nunjukkeun yén kode pikeun ngolah data éksternal kedah diréduksi jadi hak husus minimal (terasing) atanapi ditulis dina basa program anu aman.

Google teu boga tujuan pikeun nulis balik kode C / C ++ aya dina Rust, tapi ngarencanakeun ngagunakeun basa ieu pikeun ngembangkeun kode anyar. Masuk akal ngagunakeun Rust pikeun kodeu anyar sabab, sacara statistik, kalolobaan bug muncul dina kode anu anyar atanapi nembe dirobih. Khususna, sakitar 50% kasalahan mémori anu dideteksi dina Android dideteksi dina kode anu ditulis kirang ti sataun katukang.

Rust kalebet diantara basa utama pikeun pangembangan platform Android


sumber: opennet.ru

Tambahkeun komentar