Ubuntu utilise-t-il des fonctionnalités de sécurité comme DEP et ALSR?

11

Je lis souvent que des fonctionnalités telles que DEP (Data Execution Prevention) et ASLR (Address Space Layout Randomization) sont fournies sur Windows. Sous Windows, vous disposez d'un certain contrôle sur l'activation de DEP pour les programmes 32 bits.

  • Ces fonctionnalités sont-elles disponibles dans Ubuntu
  • Y a-t-il quelque chose que nous devons faire pour activer ces fonctionnalités?
hhlp
la source

Réponses:

20

Oui pour les deux. Ils sont activés par défaut; vous n'avez rien à faire pour l'activer. Une réponse plus longue suit ...

DEP est utilisé par défaut dans Ubuntu. Cela se fait via le bit NX si le CPU le prend en charge, ou émulé via la segmentation de la mémoire si le CPU ne le prend pas en charge. Pour plus de détails, voir l' élément de fonctionnalité de mémoire non exécutable .

ASLR est utilisé par défaut dans Ubuntu sur tous les segments de mémoire qui peuvent être déplacés (pile, bibliothèques, tas, mmap). La seule partie d'un programme qui n'est pas déplaçable par défaut est la zone de code principale (segment "texte"). Les programmes doivent être spécialement compilés en PIE (exécutable indépendant de la position) pour permettre cela. De nombreux programmes sensibles sont déjà construits de cette façon. Pour plus de détails, voir la liste

De nombreuses fonctionnalités de sécurité supplémentaires sont également disponibles par défaut dans Ubuntu. Consultez la documentation des fonctionnalités de sécurité d'Ubuntu pour la liste complète.

Kees Cook
la source
1

Le noyau Linux, par défaut, utilise des technologies similaires, mais elles sont différentes des versions de Windows. Si votre processeur a la capacité de définir le bit NX (processeurs les plus modernes), le noyau s'en servira. Il y a aussi une implémentation faible dans ASLR dans le noyau, et des plus fortes peuvent être installées, mais ne sont pas installées par défaut sur Ubuntu.

Ryan Gooler
la source
3
Je ne trouve pas de références pour le moment (l'article Wikipedia en.wikipedia.org/wiki/ASLR n'a pas les bits de comparaison d'entropie), mais ma compréhension est que Windows ASLR est plus faible que Linux. Et si vous voulez un ASLR plus lourd que le Linux par défaut, vous pouvez construire votre propre noyau le patchset PaX, qui offre une entropie plus élevée à un faible coût de compatibilité.
Kees Cook
Un bon article décomposant les différences cert.org/blogs/certcc/post.cfm?EntryID=191 bien sûr, qui ne serait pas complet avec quelques débats sur les détails: D reddit.com/r/netsec/comments/ 1xjwde /…
Univ426
0

Généralement et simplement, vous auriez besoin d'une version PAE du noyau pour cela. Pour des informations détaillées sur ce sujet, consultez ce résumé .

organiser
la source
3
PAE n'est nécessaire que pour le matériel NX. 64 bits est déjà PAE, donc 32 bits si vous n'exécutez pas de noyau PAE ou si votre matériel n'a pas le bit NX, Ubuntu émule la fonctionnalité NX en utilisant la segmentation de la mémoire.
Kees Cook
@Kees Cook: Merci pour l'info. OP a posé des questions sur le 32 bits. Sur mon système (Ubuntu 10.10 32bit) dmesgdit NX (Execute Disable) protection cannot be enabled: non-PAE kernel. D'un autre côté, lorsque j'ai exécuté des tests à partir de bazaar.launchpad.net/~ubuntu-bugcontrol/qa-regression-testing/… , nx ​​semblait être appliqué, mais pas pour les tests -pieet -rie. C'est donc un peu déroutant pour moi.
organiser
2
malheureusement, le rapport dmesg de 10.10 et versions ultérieures contient un bogue qui ne dit pas quand l'émulation NX est activée sur le matériel avec NX mais sans noyau PAE: kernel.ubuntu.com/git?p=ubuntu/…
Kees Cook
1
(Cela a été signalé comme un bug maintenant: bugs.launchpad.net/ubuntu/+source/linux/+bug/745181 )
Kees Cook