Apakah Ubuntu menggunakan fitur keamanan seperti DEP dan ALSR?

11

Saya sering membaca bahwa fitur seperti DEP (Pencegahan Eksekusi Data) dan ASLR (Address Space Layout Randomization) disediakan pada Windows. Pada Windows, Anda diberikan kontrol untuk menyalakan DEP untuk program 32-bit.

  • Apakah fitur ini tersedia di Ubuntu
  • adakah yang perlu kita lakukan untuk mengaktifkan fitur ini?
hhlp
sumber

Jawaban:

20

Ya untuk keduanya. Mereka aktif secara default; Anda tidak perlu melakukan apa pun untuk mengaktifkannya. Jawaban yang lebih panjang mengikuti ...

DEP digunakan secara default di Ubuntu. Ini dilakukan melalui bit NX jika CPU mendukungnya, atau ditiru melalui segmentasi memori jika CPU tidak mendukungnya. Untuk detail lebih lanjut, lihat item fitur memori yang tidak dapat dieksekusi .

ASLR digunakan secara default di Ubuntu pada setiap segmen memori yang dapat dipindahkan (stack, libraries, heap, mmap). Satu-satunya bagian dari program yang tidak dapat dipindahkan secara default adalah area kode utama (segmen "teks"). Program perlu dikompilasi secara khusus sebagai PIE (posisi independen yang dapat dieksekusi) untuk mengaktifkan ini. Banyak program sensitif sudah dibangun dengan cara ini. Untuk detail lebih lanjut, lihat daftar

Banyak fitur keamanan tambahan juga tersedia secara default di Ubuntu. Lihat dokumentasi Fitur Keamanan Ubuntu untuk daftar lengkap.

Kees Cook
sumber
1

Kernel Linux, secara default, memang menggunakan teknologi serupa, namun berbeda dari versi Windows. Jika prosesor Anda memiliki kemampuan untuk mengatur bit NX (kebanyakan CPU modern), maka kernel akan menggunakannya. Ada juga implementasi yang lemah di ASLR di kernel, dan yang lebih kuat dapat diinstal, tetapi tidak diinstal secara default di Ubuntu.

Ryan Gooler
sumber
3
Saya tidak dapat menemukan referensi saat ini (artikel Wikipedia en.wikipedia.org/wiki/ASLR tidak memiliki bit perbandingan entropi), tetapi pemahaman saya adalah bahwa Windows ASLR lebih lemah daripada Linux. Dan jika Anda ingin ASLR tugas lebih berat daripada standar Linux, Anda dapat membangun kernel Anda sendiri PaX patchset, yang menawarkan entropi lebih tinggi dengan biaya kompatibilitas yang kecil.
Kees Cook
Artikel yang bagus meruntuhkan perbedaan cert.org/blogs/certcc/post.cfm?EntryID=191 tentu saja, itu tidak akan lengkap dengan beberapa perdebatan tentang rincian yang lebih baik: D reddit.com/r/netsec/comments/ 1xjwde / ...
Univ426
0

Secara umum dan hanya berbicara, Anda akan memerlukan versi kernel PAE untuk ini. Untuk informasi terperinci tentang topik ini lihat ringkasan ini .

mengatur
sumber
3
PAE hanya diperlukan untuk perangkat keras NX. 64bit sudah PAE, jadi pada 32bit jika Anda tidak menjalankan kernel PAE, atau perangkat keras Anda tidak memiliki bit NX, Ubuntu mengemulasi fitur NX menggunakan segmentasi memori.
Kees Cook
@Kees Cook: Terima kasih atas informasinya. OP bertanya tentang 32bit. Di sistem saya (ubuntu 10.10 32bit) dmesgmengatakan NX (Execute Disable) protection cannot be enabled: non-PAE kernel. Di sisi lain, ketika saya menjalankan tes dari bazaar.launchpad.net/~ubuntu-bugcontrol/qa-regress-testing/… , nx ​​tampaknya ditegakkan, tetapi tidak untuk -piedan -rietes. Jadi agak membingungkan bagi saya.
atur
2
sayangnya, 10.10 dan kemudian, laporan dmesg memiliki bug di mana ia tidak mengatakan kapan emulasi NX diaktifkan pada perangkat keras dengan NX tetapi tanpa kernel PAE: kernel.ubuntu.com/git?p=ubuntu/…
Kees Cook
1
(Ini telah dilaporkan sebagai bug sekarang: bugs.launchpad.net/ubuntu/+source/linux/+bug/745181 )
Kees Cook