Android 21-də yeni tərtib edilmiş kodun təxminən 13%-i Rust-da yazılıb

Google-dan olan mühəndislər Android platformasına Rust dilində inkişaf dəstəyinin tətbiqinin ilk nəticələrini yekunlaşdırıblar. Android 13-də əlavə edilmiş yeni tərtib edilmiş kodun təxminən 21%-i Rust-da, 79%-i isə C/C++-da yazılıb. Android platformasının mənbə kodunu inkişaf etdirən AOSP (Android Açıq Mənbə Layihəsi) repozitoriyası, UWB çipləri üçün yığın (Ultra Genişzolaqlı) Keystore1.5 kriptoqrafik açar anbarı kimi yeni komponentlərlə əlaqəli təxminən 2 milyon sətir Rust kodu ehtiva edir. , DNS-over-HTTP3 protokolunun tətbiqi, AVF (Android Virtualization Framework) virtuallaşdırma çərçivəsi, Bluetooth və Wi-Fi üçün eksperimental yığınlar.

Android 21-də yeni tərtib edilmiş kodun təxminən 13%-i Rust-da yazılıb

Yaddaşla işləmək zamanı yaranan səhvlər nəticəsində yaranan zəiflik riskinin azaldılması üzrə əvvəllər qəbul edilmiş strategiyaya uyğun olaraq, Rust dili hazırda əsasən yeni kodun hazırlanmasında və proqram təminatının ən həssas və həyati vacib komponentlərinin təhlükəsizliyini tədricən gücləndirmək üçün istifadə olunur. Bütün platformanın Rust-a köçürülməsinin ümumi məqsədi yoxdur və köhnə kod C/C++-da qalır və oradakı səhvlərə qarşı mübarizə fuzzing testindən, statik analizdən və oxşar texnikaların işlənib hazırlanmasında istifadə etməklə həyata keçirilir. MiraclePtr növündən (xam göstəricilər üzərində bağlanma, boşaldılmış yaddaş sahələrinə daxil olmaq üçün əlavə yoxlamaların aparılması), Scudo yaddaş ayırma sistemindən (malloc/free üçün təhlükəsiz əvəzetmə) və HWAsan yaddaşı ilə işləyərkən səhv aşkarlama mexanizmlərindən (Avadanlıq tərəfindən dəstəklənən AddressSanitizer) istifadə edərək, GWP-ASAN və KFENCE.

Android platformasındakı boşluqların xarakteri ilə bağlı statistikaya gəlincə, qeyd edilir ki, yaddaşla təhlükəli işləyən yeni kod azaldıqca, yaddaşla işləyərkən səhvlərdən yaranan boşluqların sayında da azalma müşahidə olunur. Məsələn, yaddaş problemlərinin yaratdığı zəifliklərin payı 76-cu ildəki 2019%-dən 35-ci ildə 2022%-ə qədər azalıb. Mütləq rəqəmlərlə 2019-cu ildə 223, 2020-ci ildə 150, 2021-ci ildə 100 və 2022-ci ildə 85 yaddaş zəifliyi müəyyən edilib (qeyd edilən bütün boşluqlar C/C++ kodunda idi; Rust kodunda indiyədək analoji problem yoxdur. tapıldı). 2022-ci il yaddaşla bağlı zəifliklərin üstünlük təşkil etməyi dayandırdığı ilk il oldu.

Android 21-də yeni tərtib edilmiş kodun təxminən 13%-i Rust-da yazılıb

Yaddaşla əlaqəli zəifliklər adətən ən təhlükəli olduğundan, ümumi statistika da uzaqdan istifadə edilə bilən kritik problemlərin və problemlərin sayında azalma göstərir. Eyni zamanda, yaddaşla işləməyə aid olmayan zəifliklərin müəyyən edilməsi dinamikası son 4 ildə təxminən eyni səviyyədə qalıb - ayda 20 zəiflik. Yaddaşla işləyərkən səhvlər nəticəsində yaranan zəifliklər arasında təhlükəli problemlərin payı da qalır (lakin belə zəifliklərin sayı azaldığından təhlükəli problemlərin sayı da azalır).

Android 21-də yeni tərtib edilmiş kodun təxminən 13%-i Rust-da yazılıb

Statistikalar həmçinin yaddaşla təhlükəli işləyən yeni kodun miqdarı ilə yaddaşla bağlı zəifliklərin sayı (bufer daşması, artıq boşalmış yaddaşa giriş və s.) arasındakı korrelyasiyanı izləyir. Bu müşahidə, təhlükəsiz proqramlaşdırma üsullarının tətbiqi zamanı diqqətin mövcud kodu yenidən yazmaqdansa, yeni kodun silinməsinə yönəldilməsi ehtimalını təsdiqləyir, çünki müəyyən edilmiş zəifliklərin əsas hissəsi yeni koddadır.

Android 21-də yeni tərtib edilmiş kodun təxminən 13%-i Rust-da yazılıb


Mənbə: opennet.ru

Добавить комментарий