Ubuntu, DEP ve ALSR gibi güvenlik özelliklerini kullanıyor mu?


11

DEP (Veri Yürütme Engellemesi) ve ASLR (Adres Alanı Düzeni Rasgele Seçimi) gibi özelliklerin Windows'ta sağlandığını sık sık okurum. Windows'ta, 32 bit programlar için DEP'yi açma üzerinde bazı kontroller verilir.

  • Bu özellikler Ubuntu'da mevcut mu?
  • bu özellikleri açmak için yapmamız gereken bir şey var mı?

Yanıtlar:


20

Her ikisi için de evet. Varsayılan olarak açıktır; etkinleştirmek için hiçbir şey yapmanıza gerek yoktur. Daha uzun cevap şöyle ...

DEP, Ubuntu'da varsayılan olarak kullanılır. Bu işlem, CPU destekliyorsa NX bit veya CPU desteklemiyorsa bellek bölümleme yoluyla taklit edilir. Daha fazla ayrıntı için yürütülebilir olmayan bellek özellik öğesine bakın .

ASLR, Ubuntu'da varsayılan olarak yeniden yerleştirilebilen bellek segmentlerinde (yığın, kitaplıklar, yığın, mmap) kullanılır. Bir programın varsayılan olarak yeniden konumlandırılamayan tek bölümü ana kod alanıdır ("metin" bölümü). Programları etkinleştirmek için özel olarak PIE (konumdan bağımsız yürütülebilir) olarak derlenmesi gerekir. Birçok hassas program zaten bu şekilde oluşturulmuştur. Daha fazla ayrıntı için listeye bakın

Ubuntu'da varsayılan olarak birçok ek güvenlik özelliği de mevcuttur. Bkz Ubuntu Güvenlik belgelerine Özellikleri tam listesi için.


1

Linux çekirdeği varsayılan olarak benzer teknolojileri kullanır, ancak Windows sürümlerinden farklıdır. İşlemciniz NX bitini (en modern CPU'lar) ayarlama yeteneğine sahipse, çekirdek bunu kullanır. Çekirdekte ASLR'de zayıf bir uygulama da vardır ve daha güçlü olanlar kurulabilir, ancak varsayılan olarak Ubuntu'ya yüklenmez.


3
Şu anda referans bulamıyorum (Wikipedia makalesi en.wikipedia.org/wiki/ASLR entropi karşılaştırmasının bitlerine sahip değil), ancak benim anlayışım Windows ASLR'nin Linux'tan daha zayıf olduğu. Ve Linux varsayılanından daha ağır ASLR istiyorsanız, küçük bir uyumluluk maliyetiyle daha yüksek entropi sunan kendi çekirdeğinizi PaX yama setini oluşturabilirsiniz.
Kees Cook

Daha ince ayrıntıların tartışılmasıyla tamamlanmayacak cert.org/blogs/certcc/post.cfm?EntryID=191 farklılıklarını parçalayan iyi bir makale : D reddit.com/r/netsec/comments/ 1xjwde /…
Univ426

0

Genel olarak ve basitçe konuşursak, bunun için çekirdeğin PAE sürümüne ihtiyacınız olacaktır. Bu konu hakkında ayrıntılı bilgi için bu özete bakın .


3
PAE yalnızca donanım NX için gereklidir. 64bit zaten PAE'dir, bu nedenle bir PAE çekirdeği çalıştırmıyorsanız veya donanımınızda NX biti yoksa, 3200'de Ubuntu bellek bölümleme kullanarak NX özelliğini öykünür.
Kees Cook

@Kees Cook: Bilgi için teşekkürler. OP 32bit'i sordu. Benim sistemimde (Ubuntu 10.10 32bit) dmesgdiyor NX (Execute Disable) protection cannot be enabled: non-PAE kernel. Öte yandan, bazaar.launchpad.net/~ubuntu-bugcontrol/qa-regression-testing/… ' den testler yaptığımda nx uygulanmış gibi görünüyordu, ancak -pieve -rietestler için değil . Bu yüzden benim için biraz kafa karıştırıcı.
düzenlemek

2
ne yazık ki, 10.10 ve üstü dmesg raporunda NX öykünmesinin NX ile donanımda etkinleştirildiği ancak PAE çekirdeği olmadan söylenmediği bir hata var: kernel.ubuntu.com/git?p=ubuntu/…
Kees Cook

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.