ASLR Nedir ve Bilgisayarınızı Nasıl Güvende Tutar?
Adres Alanı Düzeni Randomizasyonu (ASLR), ilk olarak 2001'de uygulanan işletim sistemlerinde kullanılan bir güvenlik tekniğidir. Tüm büyük işletim sistemlerinin (iOS, Android, Windows, macOS ve Linux) güncel sürümleri ASLR korumasına sahiptir. Ancak geçtiğimiz hafta, ASLR'yi atlamanın yeni bir yöntemi bulundu. Yani endişelenmen gerekiyor mu??
Programlama seviyesi düşük olanlar için, ASLR kafa karıştırıcı olabilir. Anlamak için önce sanal belleği anlamanız gerekir..
Sanal Bellek Nedir??
Sanal Bellek, birçok yararı olan bir bellek yönetimi tekniğidir, ancak öncelikle programlamayı kolaylaştırmak için oluşturulmuştur. Google Chrome, Microsoft Word ve 4 GB RAM’li bir bilgisayarda açık olan diğer bazı programların olduğunu hayal edin. Genel olarak, bu bilgisayardaki programlar 4 GB RAM'den daha fazlasını kullanır. Ancak, tüm programlar her zaman etkin olmayacak veya aynı RAM’e aynı anda erişmeniz gerekmeyecek.
İşletim sistemi çağrılan programlara bellek parçaları ayırır sayfalar. Tüm sayfaları bir kerede depolamak için yeterli RAM yoksa, en az gerekmesi muhtemel sayfalar daha yavaş (ama daha geniş) sabit sürücüde saklanır. Saklanan sayfalar gerektiğinde, şu anda RAM’de daha az gerekli sayfaların olduğu alanları değiştireceklerdir. Bu işlem disk belleği olarak adlandırılır ve adını Windows'daki pagefile.sys dosyasına verir..
Sanal bellek, programların kendi belleğini yönetmesini kolaylaştırır ve ayrıca onları daha güvenli hale getirir. Programların, diğer programların nerede veri depoladığı veya ne kadar RAM kaldığı konusunda endişelenmenize gerek yoktur. İşletim sisteminden yalnızca ek bellek isteğinde bulunabilir (veya kullanılmayan belleği geri getirebilir). Programın gördüğü tek şey, sanal adresler adı verilen özel kullanımı için tek bir sürekli bellek adresleri yığınıdır. Programın başka bir programın hafızasına bakmasına izin verilmiyor.
Bir programın belleğe erişmesi gerektiğinde, işletim sistemine sanal bir adres verir. İşletim sistemi CPU'nun bellek yönetim ünitesine (MMU) temas eder. MMU, sanal ve fiziksel adresler arasında çeviri yaparak bu bilgiyi işletim sistemine geri gönderir. Hiçbir noktada program doğrudan RAM ile etkileşime girmez.
ASLR Nedir??
Adres Alanı Düzeni Randomizasyonu (ASLR), öncelikle arabellek taşması saldırılarına karşı korumak için kullanılır. Bir arabellek taşmasında, saldırganlar işleyebileceği kadar önemsiz veri ve ardından kötü niyetli bir veri yükü tarafından bir işlevi besler. Yük, programın erişmeyi planladığı verilerin üzerine yazacaktır. Koddaki başka bir noktaya atlamak için verilen talimatlar ortak bir veri yüküdür. Örneğin, iOS 4'ü hapse atmak için kullanılan ünlü JailbreakMe yöntemi, arabellek taşması saldırısı kullandı ve Apple'ı iOS 4.3'e ASLR eklemesini istedi.
Arabellek taşması, programın her bir bölümünün bellekte nerede olduğunu bilmek için bir saldırgana ihtiyaç duyar. Bunu anlamak genellikle zor bir deneme yanılma sürecidir. Bunu belirledikten sonra bir taşıma yükü oluşturmalı ve enjekte etmek için uygun bir yer bulmalıdırlar. Saldırgan, hedef kodunun nerede olduğunu bilmiyorsa, onu kullanmak zor olabilir veya imkansız olabilir..
ASLR, programın farklı bölümlerinin konumlarını bellekte rastgele ayarlamak için sanal bellek yönetimi ile birlikte çalışır. Program her çalıştırıldığında, bileşenler (yığın, yığın ve kitaplıklar dahil) sanal bellekte farklı bir adrese taşınır. Saldırganlar artık hedeflerinin nerede olduğunu deneme yanılma yoluyla öğrenemezler, çünkü adres her zaman farklı olacaktır. Genel olarak, uygulamaların ASLR desteğiyle derlenmesi gerekir, ancak bu varsayılan hale geliyor ve Android 5.0 ve sonraki sürümlerde bile gerekli.
Öyleyse ASLR Sizi Hala Koruyor mu??
Geçen Salı, SUNY Binghamton ve California Üniversitesi, Riverside’daki araştırmacılar, Bypass ASLR’ye Jump Over ASLR: Saldırgan Şube Tahmincileri adlı bir bildiri sundu. Belge, Şube Hedef Tamponuna (BTB) saldırmanın bir yolunu göstermektedir. BTB, sonucu tahmin ederek ifadeler varsa hızlanan işlemcinin bir parçasıdır. Yazarların yöntemini kullanarak çalışan bir programda bilinen branş talimatlarının yerlerini belirlemek mümkündür. Söz konusu saldırı, Intel Haswell işlemcili bir Linux makinede gerçekleştirildi (ilk olarak 2013'te piyasaya sürüldü), ancak büyük olasılıkla herhangi bir modern işletim sistemine ve işlemciye uygulanabilir.
Bu, mutlaka umutsuzluğa kapılmamalısın dedi. Rapor, donanım ve işletim sistemi geliştiricilerin bu tehdidi hafifletebilmesi için birkaç yol önerdi. Daha yeni, ince taneli ASLR teknikleri, saldırgandan daha fazla çaba gerektirir ve entropi miktarının (rastgelelik) arttırılması, Üzerinden Atlama saldırısını olanaksız kılabilir. Büyük olasılıkla, daha yeni işletim sistemleri ve işlemciler bu saldırıya karşı bağışıklık kazanacak.
Öyleyse ne kaldı sen yapmak? Jump Over bypass yeni ve henüz vahşi doğada tespit edilmedi. Saldırganlar bundan yararlanırsa, kusur bir saldırganın cihazınızda neden olabileceği olası hasarı artıracaktır. Bu erişim seviyesi benzeri görülmemiş; Microsoft ve Apple, ASLR'yi yalnızca 2007 ve daha sonra yayımlanan işletim sistemlerinde uyguladı. Bu saldırı tarzı sıradan hale gelse bile, Windows XP'nin günlerinde olduğundan daha kötü olmayacaksınız..
Saldırganların herhangi bir zarar vermek için kodlarını cihazınıza almak zorunda olduğunu unutmayın. Bu kusur, size enfekte olmaları için onlara ilave bir yol sağlamaz. Her zaman olduğu gibi, en iyi güvenlik uygulamalarını izlemelisiniz. Antivirüs kullanın, kabataslak web sitelerinden ve programlardan uzak durun ve yazılımınızı güncel tutun. Bu adımları izleyerek ve kötü niyetli oyuncuları bilgisayardan uzak tutarak, hiç olmadığı kadar güvende olacaksın.
Resim Kredisi: Steve / Flickr