web-dev-qa-db-fra.com

Possibilité de changer le mot de passe de l'utilisateur root (vulnérabilité?)

J'étudie pour mon examen RHCSA, et l'un des sujets est la possibilité de "changer un mot de passe d'utilisateur root oublié". C'est un objectif d'examen officiel et a même documentation officielle Redhat .

Comment est-ce pas une vulnérabilité de sécurité flagrante? La possibilité de changer le mot de passe d'un utilisateur root ne devrait-elle pas exister? Je comprends que vous devez avoir un accès physique à une machine (ce qui le rend plus difficile à implémenter), mais pourquoi même avoir un mot de passe s'il peut simplement être modifié comme ça? Existe-t-il un moyen de désactiver cette "fonctionnalité" afin qu'elle ne puisse pas être modifiée de GRUB comme ceci?

Pouvez-vous faire cela dans toutes les autres distributions Linux? Ou est-ce une capacité exclusive de Redhat?

32
Tobin Shields

Vous avez à peu près cloué sur la tête lorsque vous avez dit que vous avez besoin d'un accès physique à la machine.

Si vous avez un accès physique, vous n'avez pas besoin pour passer par les étapes officielles de réinitialisation du mot de passe root, car vous pouvez retourner directement les bits sur le disque dur, si vous savez ce que vous faites. C'est-à-dire que vous pouvez démarrer un système d'exploitation de récupération à partir d'un DVD ou d'un lecteur flash et monter le lecteur de cette façon pour obtenir un accès complet en lecture/écriture à l'intégralité du disque.

Le chiffrement du disque atténuera le risque, mais ne le supprime pas entièrement * mais rend les attaques beaucoup plus compliquées. Il est préférable de supposer qu'un attaquant disposant d'un accès physique sera en mesure d'influencer tous les aspects de l'appareil à temps.

Comme il est supposé que les attaquants disposant d'un accès physique obtiendront toujours un accès privilégié à leur compte, il n'y a aucun intérêt à mettre les administrateurs légitimes en difficulté supplémentaire s'ils perdent leur mot de passe.

Chaque distribution Linux que j'ai utilisée a cette fonctionnalité, bien qu'il soit possible que certaines des distributions destinées à un public plus paranoïaque puissent désactiver cela.

De plus, c'est une fonctionnalité standard dans BSD Unixes, testée pour l'examen CCNA il y a au moins 15 ans quand je l'ai prise pour les appareils Cisco, et il est assez trivial de réinitialiser les mots de passe sur une machine Windows si elle n'est pas explicitement sécurisée.

* L'attaquant pourrait par exemple ajouter un noyau avec porte dérobée ou initrd dans le /boot répertoire, qui doit être non chiffré car le chargeur de démarrage doit être capable de lire le noyau et les fichiers initrd.

61
Ghedipunk

Comment est-ce pas une vulnérabilité de sécurité flagrante?

C'est. L'accès physique à votre système est la vulnérabilité ultime.

Existe-t-il un moyen de désactiver cette "fonctionnalité" afin qu'elle ne puisse pas être modifiée de GRUB comme ceci?

Pouvez-vous faire cela dans toutes les autres distributions Linux? Ou est-ce une capacité exclusive de Redhat?

Prenez conscience de ce qui se passe ici:

Votre système d'exploitation ne fonctionne même pas encore lorsque l'attaquant prend le contrôle de votre système.

Alors que GRUB vient empaqueté avec Linux, il n'en fait pas partie intégrante, et en fait, l'attaquant pourrait remplacer = GRUB avec un autre chargeur de démarrage sans que le système d'exploitation soit le plus sage.

Il ne s'agit donc pas autant de la vulnérabilité de votre système d'exploitation. Il s'agit de votre OS, tout OS vraiment, ayant été retiré de l'équation .

Même si votre disque dur est chiffré, l'utilisateur doit saisir le mot de passe avant le démarrage réel. Avec un accès physique à votre système, rien n'empêche l'attaquant, par ex. installer un enregistreur de frappe (matériel ou logiciel) pour obtenir ce mot de passe lors de sa prochaine saisie.

Puisqu'il n'y a pratiquement aucun moyen de se défendre contre un attaquant ayant un accès physique à votre machine, les systèmes d'exploitation génériques ne prennent pas la peine de compliquer la tâche d'un attaquant avec de tels privilèges. Vous avez déjà perdu le combat à ce stade.

Quelqu'un avec un accès physique est, en fait, un utilisateur root.

27
DevSolar