Android bellek güvenliği açıklarının sayısı azaldı ve işte nedeni


Google’ın Android kod tabanına Rust adında bellek güvenli bir programlama diliyle yeni kod yazma kararı, eski kodun (C/C++ ile yazılmış) yeniden yazılmamasına rağmen bellek güvenliği açıklarında önemli bir düşüşe yol açtı.

Android bellek güvenliği açıkları

Android kod tabanında yılda bulunan bellek güvenliği açıklarının sayısı (Kaynak: Google)

Android gelişiyor ve daha az bellek güvenliği açığına sahip

Android ekibinden Jeff Vander Stoep ve Güvenlik Temelleri’nden Alex Rebert, “Android ekibi, 2019 civarında yeni geliştirmeleri bellek güvenli dillere geçirmeyi önceliklendirmeye başladı. Bu karar, bellek güvenliği açıklarını yönetmenin artan maliyeti ve karmaşıklığından kaynaklandı” açıklamasını yaptı.

Eski kod tabanını yeniden yazmama kararı, daha önce yapılan bir simülasyona dayanıyordu; bu simülasyon da, bir güvenlik açığının ortalama yaşam süresinin yaklaşık 4 yıl olduğunu ve çoğu güvenlik açığının yeni veya yakın zamanda değiştirilmiş kodda bulunduğunu gösteren bir güvenlik açığı yaşam süresi çalışmasına dayanıyordu.

Kısacası, bellek güvenli bir dil kullanarak yeni özelliklerle daha az hatanın ortaya çıkacağına bahse girdiler. Eskileri zamanla “çürüdükçe”, bellek güvenliği açıklarının sayısının azalması bekleniyordu ve öyle de oldu.

“Çoğunluğa rağmen [Android] kod hala güvenli olmadığında (ancak, kritik olarak, giderek eskidiğinde), bellek güvenliği açıklarında büyük ve sürekli bir düşüş görüyoruz. Sonuçlar simüle ettiğimizle örtüşüyor (…) ve hatta daha da iyi, potansiyel olarak bellek güvenli olmayan kodumuzu iyileştirmeye yönelik paralel çabalarımızın bir sonucu olarak,” diye belirtti Vander Stoep ve Rebert.

“2019’da Android güvenlik açıklarının %76’sını oluşturan ve şu anda 2024’te %24’e çıkacak olan bellek güvenliği sorunları, endüstri normu olan %70’in çok altında ve düşmeye devam ediyor.”

Reaktif çözümlerden proaktif çözümlere

Yazılım üreticileri ve kullanıcılar, Google’ın belirttiği gibi “diğer güvenlik açığı türlerine göre uzaktan erişilebilir, daha çok yönlü ve kötü amaçlı olarak istismar edilme olasılığı daha yüksek” olan bellek güvenliği açıklarıyla mücadele için çeşitli çözümler arasında geçiş yaptıkça, ölçek giderek reaktif önlemlerden (yama) proaktif olanlara doğru kaydı: istismar azaltma stratejileri, temizleyiciler ve bulanıklaştırıcılar aracılığıyla güvenlik açığı keşfi ve şimdi de bellek güvenli dillerin kullanımı yoluyla güvenlik açığı önleme.

“Bu değişimin temeli, dil özellikleri, statik analiz ve API tasarımı aracılığıyla güvenlik değişmezlerini doğrudan geliştirme platformuna uygulayan Güvenli Kodlamadır. Sonuç, ölçekte sürekli güvence sağlayan, yanlışlıkla güvenlik açıkları oluşturma riskinden uzak, tasarıma göre güvenli bir ekosistemdir,” dedi Vander Stoep ve Rebert.

“Güvenli Kodlama, kod kontrol edilmeden önce hata bulmayı daha sola kaydırarak kod doğruluğunu ve geliştirici üretkenliğini artırır. Bu kaymayı geri alma oranları (beklenmeyen bir hata nedeniyle acil kod geri alma) gibi önemli metriklerde görüyoruz. Android ekibi, Rust değişikliklerinin geri alma oranının C++’ınkinin yarısından az olduğunu gözlemledi.”

Android Ekibi bu ayın başlarında Rust’ın akıllı telefon yazılımlarına kademeli olarak nasıl dahil edilebileceğine dair fikirlerini paylaşmıştı.

Hafıza açısından güvenli diller doğru yoldur

ABD Siber Güvenlik ve Altyapı Ajansı (CISA), bir süredir bellek açısından güvenli dillerin kullanılması konusunda uyarılarda bulunuyor ve yakın zamanda 172 kritik ve yaygın olarak kullanılan açık kaynaklı projenin %52’sinin bellek açısından güvenli olmayan bir dilde yazılmış kod içerdiğini tespit etti.

CISA’nın bellek açısından güvenli dillerin kullanımı yönündeki çabaları Beyaz Saray’da da yankı buldu.

Google’ın Android’e yönelik yaklaşımı, mevcut kod tabanının yeniden yazılmasından vazgeçilmesi ve birlikte çalışabilirliğin hem güvenli hem de kullanışlı hale getirilmesine odaklanılması temelinde şekilleniyor. Şirket, diğer yazılım üreticilerinin ve kuruluşların yatırımları artırma ve yeni özelliklerin sunulmasında yavaşlama endişesi duymadan benimseyebilecekleri bir yaklaşım olduğuna inanıyor.

Bellek güvenli dillere geçişte karşılaşılan çeşitli zorluklar ve değerlendirmelerle ilgilenenler, Açık Kaynak Güvenlik Vakfı (OpenSSF) Genel Müdürü Omkhar Arasaratnam ile yaptığımız güncel röportajı okumalılar.




Source link