Rust, Android platformu geliştirmede ana diller arasında yer alıyor

Google, Rust programlama dilinin Android platformunun geliştirilmesine izin verilen diller arasına dahil edildiğini duyurdu. Rust dil derleyicisi 2019'da Android kaynak ağacına dahil edildi ancak bu dilin desteği deneysel olarak kaldı. Android'de sunulması planlanan ilk Rust bileşenlerinden bazıları, Binder süreçler arası iletişim mekanizmasının ve Bluetooth yığınının yeni uygulamalarıdır.

Rust'un tanıtımı, güvenliği güçlendirmeyi, güvenli programlama tekniklerini teşvik etmeyi ve Android'de bellekle çalışırken sorunları belirleme verimliliğini artırmayı amaçlayan bir projenin parçası olarak gerçekleştirildi. Android'de tespit edilen tüm tehlikeli güvenlik açıklarının yaklaşık %70'inin bellekle çalışırken oluşan hatalardan kaynaklandığı belirtiliyor. Bellek güvenliği ve otomatik bellek yönetimine odaklanan Rust'u kullanmak, serbest erişim sonrası erişim ve ara bellek taşmaları gibi bellek hatalarından kaynaklanan güvenlik açıkları riskini azaltacaktır.

Rust, referans kontrolü, nesne sahipliği ve nesne ömrü takibi (kapsamlar) yoluyla ve çalışma zamanında bellek erişimlerinin doğruluğunu değerlendirerek derleme zamanında bellek güvenliğini güçlendirir. Rust ayrıca tamsayı taşmalarına karşı koruma sağlar, değişken değerlerin kullanımdan önce başlatılmasını gerektirir, standart kitaplıkta daha iyi hata işleme özelliğine sahiptir, varsayılan olarak değişmez referanslar ve değişkenler kavramını kullanır ve mantıksal hataları en aza indirmek için güçlü statik yazma olanağı sunar.

Android'de halihazırda desteklenen diller Kotlin ve Java'da bellek güvenliği sağlanıyor ancak yüksek yük nedeniyle sistem bileşenleri geliştirmeye uygun değiller. Rust, C ve C++ dillerine yakın performans elde edilmesini mümkün kılarak platformun düşük seviyeli parçalarının ve donanımla etkileşime yönelik bileşenlerin geliştirilmesinde kullanılmasına olanak tanır.

Android, C ve C++ kodunun güvenliğini sağlamak için korumalı alan izolasyonunu, statik analizi ve bulanıklaştırma testini kullanır. Korumalı alan izolasyonunun yetenekleri sınırlıdır ve yeteneklerinin sınırına ulaşmıştır (süreçlere daha fazla parçalanma, kaynak tüketimi açısından pratik değildir). Korumalı alan kullanmanın sınırlamaları arasında büyük genel giderler ve yeni süreçlerin oluşturulması ihtiyacından kaynaklanan artan bellek tüketiminin yanı sıra IPC kullanımıyla ilişkili ek gecikmeler yer alır.

Aynı zamanda, sandbox koddaki güvenlik açıklarını ortadan kaldırmaz, ancak yalnızca riskleri azaltır ve saldırıyı karmaşıklaştırır, çünkü istismar bir değil birden fazla güvenlik açığının tanımlanmasını gerektirir. Kod testine dayalı yöntemler sınırlıdır, çünkü hataları tanımlamak için sorunun kendini göstermesi için koşullar yaratmanız gerekir. Olası tüm seçenekleri kapsamak mümkün olmadığından birçok hata fark edilmeden kalır.

Android'deki sistem süreçleri için Google, eklenen herhangi bir kodun şu üç koşuldan en fazla ikisini karşılamasını gerektiren "iki kuralı"na uyar: doğrulanmamış giriş verileriyle çalışma, güvenli olmayan bir programlama dili (C/C++) kullanma ve katı sanal alan yalıtımı olmadan çalışıyor (yükseltilmiş ayrıcalıklara sahip). Bu kural, harici verileri işlemeye yönelik kodun ya minimum ayrıcalıklara indirgenmesi (yalıtılmış) ya da güvenli bir programlama dilinde yazılması gerektiği anlamına gelir.

Google, Rust'ta mevcut C/C++ kodunu yeniden yazmayı amaçlamıyor ancak bu dili yeni kod geliştirmek için kullanmayı planlıyor. Yeni kod için Rust'u kullanmak mantıklıdır çünkü istatistiksel olarak çoğu hata yeni veya yakın zamanda değiştirilen kodda görünür. Özellikle Android'de tespit edilen hafıza hatalarının yaklaşık %50'si, bir yıldan daha kısa bir süre önce yazılan kodda tespit ediliyor.

Rust, Android platformu geliştirmede ana diller arasında yer alıyor


Kaynak: opennet.ru

Yorum ekle