Android Rust Shift Daha Hızlı, Daha Güvenli Geliştirmeyi Sağlıyor


Android, platformun Rust’a doğru uzun vadeli geçişinin hem güvenliği hem de yazılım geliştirmeyi nasıl yeniden şekillendirdiğine dair yeni bilgiler paylaştı. Yeni veriler, bellek güvenliğine yönelik kararlı bir hamleyi ve beklenmedik şekilde Android ekosisteminde daha hızlı mühendislik döngülerini yansıtıyor.

Android ekibi, bellek güvenliği açıklarının ilk kez tüm Android açıklarının %20’sinin altına düştüğünü bildirdi. Bu veriler, hem birinci hem de üçüncü taraf bileşenlerde C, C++, Java, Kotlin ve Rust genelindeki kod katkılarını kapsar. Rapor 2025’in sonundan önce gelmesine rağmen, endüstri standardı olan 90 günlük yama penceresi, rakamların yıl sonundan önce çok fazla değişme ihtimalinin düşük olduğu anlamına geliyor.

Rust’ın benimsenmesi bu eğilimin merkezinde yer alıyor. Android ekibine göre Rust, C ve C++ ile karşılaştırıldığında bellek güvenliği güvenlik açığı yoğunluğunda 1000 kat azalma sunuyor. Ancak en şaşırtıcı sonuçlar güvenlikle sınırlı değil. Rust tabanlı değişiklikler artık 4 kat daha düşük geri alma oranına sahip ve kod incelemesine %25 daha az zaman harcıyor.

Sistem Programlamada Dengeyi Değiştirmek

Android’in geçmişte C ve C++ gibi sistem dillerine bağlılığı, Rust’un benimsenmesinin hiçbir zaman Java veya Kotlin’in yerine geçmeyeceği, ancak düşük seviyeli kontrolün gerekli olduğu durumlarda daha güvenli bir alternatif sağlayacağı anlamına geliyordu. Rust kullanımı arttıkça ve yeni C++ eklemeleri yavaş yavaş azaldıkça, birinci taraf kod eğilimleri artık Rust ve C++’ın karşılaştırılabilir hacimlerde yeni sistem düzeyinde koda katkıda bulunduğunu gösteriyor.

Bu eşitlik, mühendislik ekiplerini verim ve kararlılığa göre değerlendiren DORA çerçevesini kullanarak anlamlı performans karşılaştırmalarına olanak tanır. Hem Rust hem de C++’da çalışan Android mühendisleri, adaleti sağlamak için benzer boyutlu değişiklikler ve çakışan geliştirici havuzları kullanılarak ölçüldü.

Verim İyileştirmeleri: Daha Az Revizyon, Daha Hızlı İncelemeler

2023’e kadar uzanan veriler tutarlı modeller gösteriyor: Rust kodu, eşdeğer C++ koduna göre yaklaşık %20 daha az revizyon gerektiriyor. Rust değişiklikleri aynı zamanda inceleme için %25 daha az zaman harcıyor; bu, Android ekibinin kısmen 2023 ile 2024 arasında artan Rust uzmanlığına bağladığı bir trend.

Bu artan kazanımlar yardımcı olsa da en büyük gelişme kararlılık ölçümlerinde görülüyor.

Rust’un düşük geri alma oranı, benimsenmesi C++’ı aşsa bile düşmeye devam ediyor. Orta ve büyük değişiklikler için Rust değişiklikleri, C++’ın yaklaşık dörtte biri oranında geri alınır. Geri alma işlemleri birden fazla ekibi aksattığı, ölüm sonrası işlemleri başlattığı ve yeniden inşaları tetiklediği için bu istikrar, genel üretkenliği önemli ölçüde artırır.

2022’de yapılan bir Google anketi, mühendislerin Rust’ı incelemesi daha kolay ve doğru olma ihtimalinin daha yüksek olduğunu düşündüklerini ortaya çıkardı. Yeni veriler ampirik olarak bu algıları destekliyor.

Rust’ın Ayak İzi

Rust’ın Android’deki rolü platform kodunun ötesine geçiyor:

  • Çekirdek: Android 6.12, Rust desteğinin etkinleştirildiği ilk dağıtım çekirdeğidir ve platformun ilk üretim Rust sürücüsünü içerir. Android ayrıca Rust tabanlı bir GPU sürücüsü üzerinde Arm ve Collabora ile işbirliği yapıyor.
  • Firmware: Rust yıllardır firmware’de kullanılıyor. Android ve Arm, yüksek ayrıcalıklı aygıt yazılımı ortamlarında güvenliği artırmak için artık Rusted Firmware-A üzerinde işbirliği yapıyor.

Birinci taraf uygulamalar:

  • Nearby Presence, güvenli Bluetooth tabanlı cihaz keşfi için Rust’u kullanır.
  • RCS mesajlaşma güvenlik protokolü olan MLS, Rust’ta uygulanmıştır ve gelecekteki bir sürümde Google Mesajlar’da görünecektir.
  • Chromium, PNG, JSON ve web yazı tipi ayrıştırıcılarının yerini Rust tabanlı, bellek açısından güvenli uygulamalarla değiştirdi.

Rust’ta İlk Neredeyse Güvenlik Açığı

Android, ilk Rust tabanlı bellek güvenliği kusuru olan CrabbyAVIF’teki doğrusal arabellek taşmasını neredeyse gönderiyordu. Hiçbir zaman kamuya açıklanmadı ancak ekip, onu dahili kanallar aracılığıyla takip etmesi için CVE-2025-48530’u atadı.

Scudo’nun güçlendirilmiş ayırıcısı istismarı önledi. Scudo’nun koruma sayfaları taşmayı durdurdu ve sessiz bozulma olabilecek durumu gözle görülür bir çökmeye dönüştürdü, ancak kilitlenme raporlaması başlangıçta netlikten yoksundu. Android o zamandan beri taşmayı geliştirdi.

Güvenli olmayan riskleri daha da azaltmak için Android, Kapsamlı Rust eğitim programına güvensiz Rust hakkında yeni ve ayrıntılı bir modül ekliyor; güvenli olmayan blokların, tanımsız davranışların, güvenlik yorumlarının ve güvenli soyutlamaların doğru kullanımına odaklanıyor.

Çözüm

Android’in Rust’la olan deneyimi, bazı güvenli olmayan kodlarda bile bellek güvenliğinin önemli ölçüde arttığını gösteriyor: C/C++’da milyon satır başına yaklaşık 1000 satıra kıyasla 5 milyon satırda yalnızca bir potansiyel güvenlik açığı. Bu değişim, “hızlı hareket et ve işleri boz” yerine güvenlik ve üretkenliğin birbirini güçlendirdiği bir model getirerek, geliştirmenin güvende kalarak daha hızlı ilerlemesine olanak tanıyor.



Source link