Sakitar 21% tina kode kompilasi anyar dina Android 13 ditulis dina Rust

Insinyur ti Google nyimpulkeun hasil mimiti ngenalkeun dukungan pikeun pangwangunan dina basa Rust kana platform Android. Dina Android 13, sakitar 21% tina kode kompilasi anyar anu ditambah ditulis dina Rust, sareng 79% dina C/C ++. Repositori AOSP (Android Open Source Project), anu ngembangkeun kode sumber platform Android, ngandung kira-kira 1.5 juta garis kode Rust anu aya hubunganana sareng komponén énggal sapertos toko konci kriptografi Keystore2, tumpukan pikeun chip UWB (Ultra-Wideband) , palaksanaan protokol DNS-over-HTTP3, kerangka virtualisasi AVF (Android Virtualization Framework), tumpukan ékspérimén pikeun Bluetooth sareng Wi-Fi.

Sakitar 21% tina kode kompilasi anyar dina Android 13 ditulis dina Rust

Luyu jeung strategi saméméhna diadopsi tina ngurangan résiko vulnerabilities disababkeun ku kasalahan dina gawé bareng memori, basa Rust ayeuna dipaké utamana dina ngembangkeun kode anyar jeung laun nguatkeun kaamanan komponén software paling rentan jeung vital. Henteu aya tujuan umum pikeun nransferkeun sadayana platform ka Rust sareng kodeu lami tetep aya dina C / C ++, sareng gelut ngalawan kasalahan di jerona dilaksanakeun ku ngagunakeun uji fuzzing, analisa statik sareng panggunaan dina pamekaran téknik anu sami. ngagunakeun tipe MiraclePtr (ngabeungkeut leuwih pointers atah, ngalakukeun cék tambahan pikeun ngakses wewengkon memori bébas), sistem alokasi memori Scudo (panggantian aman pikeun malloc / bebas) jeung mékanisme deteksi kasalahan nalika gawé bareng memori HWAsan (Hardware-ditulungan AddressSanitizer), GWP-ASAN jeung KFENCE.

Sedengkeun pikeun statistik ngeunaan sipat vulnerabilities dina platform Android, éta dicatet yén salaku kode anyar nu gawéna unsafely kalawan memori nurun, aya panurunan dina jumlah vulnerabilities disababkeun ku kasalahan nalika gawé bareng memori. Salaku conto, pangsa kerentanan anu disababkeun ku masalah memori turun tina 76% dina 2019 ka 35% dina 2022. Dina jumlah mutlak, 2019 kerentanan anu aya hubunganana sareng memori diidentifikasi dina 223, 2020 di 150, 2021 di 100, sareng 2022 di 85 (sadayana kerentanan anu kacatet aya dina kode C/C++; dina kode Rust, teu aya masalah anu sami dugi ka ayeuna henteu. kapanggih). 2022 mangrupikeun taun munggaran dimana kerentanan anu aya hubunganana sareng mémori lirén ngadominasi.

Sakitar 21% tina kode kompilasi anyar dina Android 13 ditulis dina Rust

Kusabab kerentanan anu aya hubunganana sareng memori biasana paling bahaya, statistik umum ogé nunjukkeun panurunan dina jumlah masalah kritis sareng masalah anu tiasa dieksploitasi jarak jauh. Dina waktos anu sami, dinamika ngaidentipikasi kerentanan anu henteu aya hubunganana sareng damel sareng mémori tetep dina tingkat anu sami salami 4 taun ka pengker - 20 kerentanan per bulan. Pangsa masalah bahaya diantara kerentanan anu disababkeun ku kasalahan nalika damel sareng mémori ogé tetep (tapi kumargi jumlah kerentanan sapertos kitu ngirangan, jumlah masalah bahaya ogé ngirangan).

Sakitar 21% tina kode kompilasi anyar dina Android 13 ditulis dina Rust

Statistik ogé ngalacak korelasi antara jumlah kode anyar anu dianggo teu aman sareng mémori sareng jumlah kerentanan anu aya hubunganana sareng memori (buffer overflows, aksés ka mémori anu parantos dibébaskeun, jsb.). Observasi ieu negeskeun anggapan yén fokus utama nalika nerapkeun téknik pemrograman aman kedah ngaleungitkeun kodeu énggal, tinimbang nyerat deui kode anu tos aya, sabab seueur kerentanan anu diidentifikasi aya dina kode anyar.

Sakitar 21% tina kode kompilasi anyar dina Android 13 ditulis dina Rust


sumber: opennet.ru

Tambahkeun komentar