Rust wyprzedził C/C++ pod względem ilości kodu dodawanego do platformy Android

Firma Google podsumowała wykorzystanie komponentów napisanych w języku Rust na platformie Android. Strategia wprowadzenia metod bezpiecznego programowania dla nowego kodu w Androidzie okazała się udana. W 2025 roku po raz pierwszy udział luk w zabezpieczeniach spowodowanych błędami w zarządzaniu pamięcią wyniósł mniej niż 20% ogólnej liczby luk. Dla porównania, w 2024 roku wskaźnik ten w Androidzie wynosił 24%, a w 2019 roku — 76%. Średni wskaźnik w branży nadal utrzymuje się na poziomie 70%.

Rust wyprzedził C/C++ pod względem ilości kodu dodawanego do platformy Android

Wykorzystanie kodu w języku Rust do opracowywania komponentów systemowych Android rozpoczęło się w 2020 roku. W 2025 roku objętość nowego kodu w Rust w Androidzie przekroczyła objętość rocznie dodawanego kodu w C i C++.

Rust wyprzedził C/C++ pod względem ilości kodu dodawanego do platformy Android

Zgromadzona statystyka potwierdza wcześniej wyrażoną hipotezę, że głównym źródłem problemów z bezpieczeństwem jest nowy kod, podczas gdy dla starego kodu obserwuje się wykładniczą zależność bezpieczeństwa od czasu — z biegiem czasu błędy w starym kodzie są wykrywane coraz rzadziej. Ostatecznie w Google zdecydowano, aby nie próbować przepisania starego kodu w językach bezpiecznych dla pamięci, a zamiast tego skupić się na wykorzystaniu takich języków do nowego kodu.

Poza kwestiami bezpieczeństwa, wdrożenie Rust pozytywnie wpłynęło na szybkość, wydajność i jakość programowania. W przypadku kodu w Rust odnotowano 4 razy mniej cofnięć zmian w wyniku wykrycia nieprzewidzianych błędów, a także 25% zmniejszenie czasu recenzji.

Rust wyprzedził C/C++ pod względem ilości kodu dodawanego do platformy Android
Rust wyprzedził C/C++ pod względem ilości kodu dodawanego do platformy Android

Przy wprowadzaniu do Androida zmian o porównywalnej wielkości, zmiany w Rust wymagają około 20% mniej rewizji niż ich odpowiedniki w C++.

Rust wyprzedził C/C++ pod względem ilości kodu dodawanego do platformy Android

Te wskaźniki można wyjaśnić uproszczeniem testowania oraz przesunięciem wykrywania błędów na wczesne etapy opracowywania, na których błędy stają się widoczne jeszcze zanim programista przystąpi do przeglądu kodu. Dodatkowo, dzięki wyeliminowaniu kosztów związanych z izolacją sandbox w kodzie Rust udało się osiągnąć poprawę wydajności.

W niedawnych projektach związanych z wykorzystaniem Rust w Androidzie odnotowano zastosowanie w jądrze Linux 6.12 pierwszego szeroko stosowanego sterownika napisanego w języku Rust, a także wykorzystanie Rust przy tworzeniu oprogramowania układowego i aplikacji. Oprócz już stosowanego w jądrze sterownika na Rust we współpracy z firmami ARM i Collabora rozwijany jest nowy sterownik GPU na tym języku. Zrealizowano na języku Rust i wykorzystywany w Google Play Services protokół Nearby Presence do wykrywania lokalnych urządzeń przez Bluetooth. W kolejnym wydaniu aplikacji Google Messages planowane jest wprowadzenie nowej implementacji protokołu MLS, napisanej na Rust. W silniku przeglądarki Chromium zastosowano napisaną na Rust analizatory dla fontów webowych, obrazów PNG i formatu JSON.

Obecnie w Androidzie napisano około 5 milionów linii kodu na Rust, w którym wykryto jedną potencjalną lukę, spowodowaną problemami z zarządzaniem pamięcią. Tak więc, gęstość takich luk w kodzie na Rust wyniosła 0,2 luki na milion linii kodu. Dla porównania, w kodzie w językach C i C++ ten wskaźnik wynosi około 1000 luk na milion linii kodu. Kluczowym źródłem problemów w Rust jest kod znajdujący się w blokach unsafe. Udział tego rodzaju kodu szacuje się na 4% całego kodu napisanego w Rust.

Wspomniana powyżej luka CVE-2025-48530 została odnaleziona w bibliotece Crabby Avif, która zawiera parser i dekoder dla formatu Avif. Problem został wykryty przez pracowników Google przed publikacją wydania i nie wpłynął na użytkowników. Luka została spowodowana błędem w bloku unsafe, co doprowadziło do przepełnienia bufora. Zauważono, że nawet gdyby błąd nie został zauważony, jego eksploatacja zostałaby zablokowana przez dostarczany w Androidzie system zarządzania pamięcią Scudo, domyślnie zastosowany w oprogramowaniu układowym dla Google Pixel i niektórych innych urządzeń.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster