Verwendet Ubuntu Sicherheitsfunktionen wie DEP und ALSR?

11

Ich habe oft gelesen, dass Funktionen wie DEP (Data Execution Prevention) und ASLR (Address Space Layout Randomization) unter Windows bereitgestellt werden. Unter Windows haben Sie die Möglichkeit, DEP für 32-Bit-Programme zu aktivieren.

  • Sind diese Funktionen in Ubuntu verfügbar?
  • Müssen wir etwas tun, um diese Funktionen zu aktivieren?
hhlp
quelle

Antworten:

20

Ja für beide. Sie sind standardmäßig aktiviert. Sie müssen nichts tun, um es zu aktivieren. Längere Antwort folgt ...

DEP wird in Ubuntu standardmäßig verwendet. Dies erfolgt über das NX-Bit, wenn die CPU dies unterstützt, oder über die Speichersegmentierung, wenn die CPU dies nicht unterstützt. Weitere Informationen finden Sie im Funktionselement Nicht ausführbarer Speicher .

ASLR wird in Ubuntu standardmäßig für alle Speichersegmente verwendet, die verschoben werden können (Stapel, Bibliotheken, Heap, mmap). Der einzige Teil eines Programms, der standardmäßig nicht verschoben werden kann, ist der Hauptcodebereich ("Text" -Segment). Programme müssen speziell als PIE (positionsunabhängige ausführbare Datei) kompiliert werden, um dies zu ermöglichen. Viele sensible Programme sind bereits auf diese Weise erstellt. Weitere Einzelheiten finden Sie in der Liste

Viele zusätzliche Sicherheitsfunktionen sind in Ubuntu standardmäßig verfügbar. Die vollständige Liste finden Sie in der Dokumentation zu den Ubuntu-Sicherheitsfunktionen .

Kees Cook
quelle
1

Der Linux-Kernel verwendet standardmäßig ähnliche Technologien, die sich jedoch von den Windows-Versionen unterscheiden. Wenn Ihr Prozessor das NX-Bit setzen kann (die meisten modernen CPUs), wird es vom Kernel verwendet. Es gibt auch eine schwache Implementierung in ASLR im Kernel, und stärkere können installiert werden, sind jedoch unter Ubuntu nicht standardmäßig installiert.

Ryan Gooler
quelle
3
Ich kann im Moment keine Referenzen finden (der Wikipedia-Artikel en.wikipedia.org/wiki/ASLR enthält keine Entropievergleiche), aber ich verstehe, dass Windows ASLR schwächer als Linux ist. Und wenn Sie eine leistungsstärkere ASLR als die Linux-Standardeinstellung wünschen, können Sie Ihren eigenen Kernel, das PaX-Patchset, erstellen, das eine höhere Entropie bei geringen Kompatibilitätskosten bietet.
Kees Cook
Ein guter Artikel, der die Unterschiede aufschlüsselt. Cert.org/blogs/certcc/post.cfm?EntryID=191 würde natürlich nicht mit einer Debatte über die feineren Details abgeschlossen sein: D reddit.com/r/netsec/comments/ 1xjwde /…
Univ426
0

Im Allgemeinen und einfach gesagt, benötigen Sie hierfür eine PAE-Version des Kernels. Ausführliche Informationen zu diesem Thema finden Sie in dieser Zusammenfassung .

ordnen
quelle
3
PAE wird nur für Hardware NX benötigt. 64-Bit ist bereits PAE. Wenn Sie also auf 32-Bit keinen PAE-Kernel ausführen oder Ihrer Hardware das NX-Bit fehlt, emuliert Ubuntu die NX-Funktion mithilfe der Speichersegmentierung.
Kees Cook
@ Kees Cook: Danke für die Info. OP fragte nach dem 32bit. Auf meinem System (Ubuntu 10.10 32bit) dmesgheißt es NX (Execute Disable) protection cannot be enabled: non-PAE kernel. Auf der anderen Seite schien nx erzwungen zu werden , als ich Tests von bazaar.launchpad.net/~ubuntu-bugcontrol/qa-regression-testing/… ausführte , aber nicht für die -pieund -rie-Tests. Es ist also ein bisschen verwirrend für mich.
arrangieren
2
Leider weist der dmesg-Bericht von 10.10 und höher einen Fehler auf, bei dem nicht angegeben wird, wann die NX-Emulation auf Hardware mit NX, jedoch ohne PAE-Kernel aktiviert ist
Kees Cook
1
(Dies wurde jetzt als Fehler gemeldet: bugs.launchpad.net/ubuntu/+source/linux/+bug/745181 )
Kees Cook