Bellek güvenliği açıklarının kökenini ortadan kaldırmak
Paradoksal sonuç
- Bellek açısından güvenli olmayan bir dilde yazılmış kod tabanı büyürken, yeni özelliklerin bellek güvenli dillerle geliştirilmesi bellek güvenliği açıklarını büyük ölçüde azaltır
- Bunun nedeni, açıkların zaman içinde üstel olarak azalmasıdır
Matematiksel açıklama
- Açıkların yaşam süresi üstel dağılımı izler
- Açıklar ağırlıklı olarak yeni kodda ortaya çıkar ve zaman geçtikçe kod daha güvenli hale gelir
- 5 yıllık kodun açık yoğunluğu, yeni koda göre 3,4 ila 7,4 kat daha düşüktür
Android'deki gerçek örnek
- Android ekibi 2019'dan itibaren yeni geliştirmeleri bellek güvenli dillere taşımaya başladı
- 2024 itibarıyla bellek güvenliği açıklarının oranı %76'dan %24'e düştü
- Bellek güvenliği açıkları azaldıkça genel güvenlik riski de azaldı
Bellek güvenliği stratejisinin evrimi
-
- nesil: tepkisel yama — açıkları bulup düzeltme yaklaşımı
-
- nesil: proaktif azaltım — açıkların istismar edilmesini zorlaştırma yaklaşımı
-
- nesil: proaktif açık keşfi — açıkları önceden bulma yaklaşımı
-
- nesil: yüksek güvenli önleme — bellek güvenli dillere geçerek açıkların en baştan oluşmasını önleme yaklaşımı
Yüksek güvenli önlemenin avantajları
- Savunmacılar ile saldırganlar arasındaki bitmeyen yarışı keser
- Bellek güvenli dillerle güvenliği artırır ve maliyeti düşürür
- Kodun doğruluğunu ve geliştirici üretkenliğini artırır
Dersten uygulamaya
- Mevcut bellek açısından güvenli olmayan kodun tamamını atmak veya yeniden yazmak gerekmez
- Birlikte çalışabilirliği geliştirerek bellek güvenli dillere geçiş hızlandırılabilir
- Rust ile C++ ve Rust ile Kotlin arasında birlikte çalışabilirliği iyileştiren araçlar geliştiriliyor
Önceki nesillerin rolü
- Proaktif azaltım ve tespitin seçici kullanımı
- Bellek güvenli koda geçildikçe azaltım ve tespit ihtiyacı da azalır
Sonuç
- Yeni kodda bellek güvenli diller kullanmak, açıkların üstel olarak azalmasını sağlar
- Android'de 6 yılı aşkın süredir görülen tutarlı sonuçlar, bu yaklaşımın etkili olduğunu kanıtlıyor
GN⁺ özeti
- Bellek güvenliği açıklarını azaltmak için bellek güvenli dillere geçiş önemlidir
- Android ekibinin örneği, bellek güvenliği açıklarında büyük bir düşüş olduğunu gösteriyor
- Mevcut kodu tamamen yeniden yazmak yerine birlikte çalışabilirliği geliştirmek daha pratiktir
- Rust gibi bellek güvenli diller kullanmak, güvenliği ve üretkenliği aynı anda artırabilir
1 yorum
Hacker News yorumu