Android 21 da yangi tuzilgan kodning taxminan 13% Rustda yozilgan

Google muhandislari Android platformasiga Rust tilida ishlanmalarni qo'llab-quvvatlashni joriy etishning birinchi natijalarini sarhisob qildi. Android 13 da qo'shilgan yangi tuzilgan kodning taxminan 21% Rust-da va 79% C/C++ da yozilgan. Android platformasining dastlabki kodini ishlab chiqadigan AOSP (Android Open Source Project) omborida Keystore1.5 kriptografik kalitlar doʻkoni, UWB chiplari uchun stek (Ultra-Wideband) kabi yangi komponentlar bilan bogʻlangan taxminan 2 million qator Rust kodlari mavjud. , DNS-over-HTTP3 protokolini amalga oshirish, AVF (Android Virtualization Framework) virtualizatsiya tizimi, Bluetooth va Wi-Fi uchun eksperimental steklar.

Android 21 da yangi tuzilgan kodning taxminan 13% Rustda yozilgan

Oldin qabul qilingan xotira bilan ishlashdagi xatolar tufayli yuzaga keladigan zaifliklar xavfini kamaytirish strategiyasiga muvofiq, Rust tili hozirda asosan yangi kodni ishlab chiqishda va dasturiy ta'minotning eng zaif va hayotiy komponentlari xavfsizligini bosqichma-bosqich mustahkamlashda qo'llaniladi. Butun platformani Rust-ga o'tkazishning umumiy maqsadi yo'q va eski kod C/C++ da qoladi va undagi xatolarga qarshi kurash fuzzing testi, statik tahlil va shunga o'xshash usullarni ishlab chiqishda foydalanish orqali amalga oshiriladi. MiraclePtr turidan foydalanish (xom ko'rsatkichlar orqali bog'lash, bo'shatilgan xotira maydonlariga kirish uchun qo'shimcha tekshiruvlarni amalga oshirish), Scudo xotira ajratish tizimi (malloc/free uchun xavfsiz almashtirish) va HWAsan xotirasi bilan ishlashda xatolarni aniqlash mexanizmlari (Hardware-assisted AddressSanitizer), GWP-ASAN va KFENCE.

Android platformasidagi zaifliklar xarakteriga oid statistik ma'lumotlarga kelsak, qayd etilishicha, xotira bilan xavfli ishlaydigan yangi kod kamaygani sari, xotira bilan ishlashdagi xatolardan kelib chiqadigan zaifliklar sonining kamayishi kuzatilmoqda. Masalan, xotira muammolaridan kelib chiqadigan zaifliklar ulushi 76 yildagi 2019 foizdan 35 yilda 2022 foizgacha kamaydi. Mutlaq raqamlarda xotira bilan bog'liq zaifliklar 2019 yilda 223 ta, 2020 yilda 150 ta, 2021 yilda 100 ta va 2022 yilda 85 ta aniqlangan (barcha qayd etilgan zaifliklar C/C++ kodida bo'lgan; Rust kodida shu paytgacha shunga o'xshash muammolar mavjud emas edi. topildi). 2022 yil xotira bilan bog'liq zaifliklar hukmronlik qilishni to'xtatgan birinchi yil bo'ldi.

Android 21 da yangi tuzilgan kodning taxminan 13% Rustda yozilgan

Xotira bilan bog'liq zaifliklar odatda eng xavfli bo'lganligi sababli, umumiy statistika ham uzoqdan foydalanish mumkin bo'lgan muhim muammolar va muammolar sonining kamayishini ko'rsatadi. Shu bilan birga, xotira bilan ishlash bilan bog'liq bo'lmagan zaifliklarni aniqlash dinamikasi so'nggi 4 yil davomida taxminan bir xil darajada saqlanib qoldi - oyiga 20 ta zaiflik. Xotira bilan ishlashda xatolar tufayli yuzaga kelgan zaifliklar orasida xavfli muammolarning ulushi ham saqlanib qoladi (lekin bunday zaifliklar soni kamayganligi sababli xavfli muammolar soni ham kamayadi).

Android 21 da yangi tuzilgan kodning taxminan 13% Rustda yozilgan

Statistik ma'lumotlar, shuningdek, xotira bilan noto'g'ri ishlaydigan yangi kod miqdori va xotira bilan bog'liq zaifliklar soni (buferning to'lib ketishi, allaqachon bo'shatilgan xotiraga kirish va boshqalar) o'rtasidagi bog'liqlikni kuzatadi. Ushbu kuzatuv xavfsiz dasturlash usullarini amalga oshirishda asosiy e'tibor mavjud kodni qayta yozishdan ko'ra yangi kodni olib tashlashga qaratilishi kerak degan taxminni tasdiqlaydi, chunki aniqlangan zaifliklarning asosiy qismi yangi kodda.

Android 21 da yangi tuzilgan kodning taxminan 13% Rustda yozilgan


Manba: opennet.ru

a Izoh qo'shish