Quelles vulnérabilités spécifiques suis-je en train de créer en désactivant le mot de passe sudo?

16

Voici quelques instructions sur la façon de désactiver votre sudomot de passe. Ceux-ci portent l'avertissement suivant

Si vous désactivez le sudomot de passe de votre compte, vous compromettez sérieusement la sécurité de votre ordinateur. Toute personne assise sur votre compte connecté sans surveillance aura un rootaccès complet et les exploits à distance deviendront beaucoup plus faciles pour les crackers malveillants.

Je ne m'inquiète pas que les gens aient physiquement accès à ma machine. Quels exploits à distance sont rendus possibles ou plus faciles si je devais ignorer cet avertissement et désactiver le mot de passe?

Rupert Madden-Abbott
la source

Réponses:

23

Si vous autorisez sudo sans mot de passe, toute personne qui parvient à exécuter du code sur votre machine en tant qu'utilisateur peut exécuter de manière triviale le code en tant que root. Cela pourrait être quelqu'un qui utilise votre console pendant que vous êtes connecté mais pas devant votre ordinateur, ce qui ne vous inquiète pas (de toute façon, quelqu'un avec un accès physique peut faire à peu près ce qu'il veut). Il peut également s'agir d'une personne qui accède à votre compte sur une autre machine sur laquelle vous avez transféré vers votre propre machine. Mais il peut également s'agir d'une personne exploitant une faille de sécurité distante - par exemple un site Web qui exploite un bogue de navigateur pour injecter du code dans votre instance de navigateur.

Quelle est la taille de l'affaire? Pas tant que ça, pour plusieurs raisons:

  • Un attaquant qui a trouvé un trou éloigné peut également trouver un trou racine local.
  • Un certain nombre d'attaquants ne se soucient pas des privilèges root. Tout ce qu'ils veulent, c'est envoyer du spam et infecter d'autres machines, et ils peuvent le faire en tant qu'utilisateur.
  • Un attaquant qui a accès à votre compte peut laisser tomber un cheval de Troie qui capture vos frappes (y compris votre mot de passe) ou qui se superpose à ce que vous utiliserez ensuite pour obtenir la racine afin d'exécuter la commande.
  • Si vous êtes le seul utilisateur de votre machine, il n'y a pas grand-chose à protéger qui ne soit accessible en tant qu'utilisateur.

D'autre part:

  • Si vous êtes à jour avec les mises à jour de sécurité, l'attaquant peut ne pas trouver de trou local à exploiter.
  • Un attaquant non root ne peut pas très bien effacer ses traces.
  • Devoir taper un mot de passe de temps en temps n'est pas un gros fardeau.
  • La saisie d'un mot de passe vous rappelle que vous faites quelque chose de dangereux (comme dans: peut perdre des données ou rendre votre ordinateur inutilisable). (En tant qu'utilisateur non root, le seul véritable danger est d'effacer des données par erreur, et c'est généralement évident lorsque vous effacez quelque chose et vous devez être très prudent.)
Gilles 'SO- arrête d'être méchant'
la source
9

Je pense que le mot de passe pour sudo ne pourrait vous protéger que de deux choses:

  1. dommages accidentels de votre propre système (par exemple, en exécutant certains rm -rfavec un chemin relatif à partir de l'historique du shell dans un répertoire différent que précédemment, ou quelque chose comme ça)
  2. exécuter un script (malveillant) qui invoque sudoet tente de nuire à votre système (mais je ne pense pas que ce type de logiciel malveillant soit très populaire)

Si vous le souhaitez, vous pouvez utiliser l' NOPASSWDoption uniquement pour les commandes sélectionnées qui ne nuiront pas à votre système (pour les éditeurs ou pour redémarrer les services) et conserver le mot de passe pour les autres commandes.

pbm
la source
-1 pour la suggestion dangereuse selon laquelle autoriser un éditeur à s'exécuter en tant que root ne peut pas nuire au système. À ce stade, vous pouvez tout aussi bien laisser tout s'exécuter en tant que root car une session d'éditeur permet de toute façon l'exécution de code arbitraire.
Caleb
2

Il convient de noter que certaines organisations compétentes préfèrent en fait sudo sans mot de passe lorsqu'elles ont des utilisateurs qui doivent se connecter à de nombreux hôtes distants différents, en particulier si cela inclut des hôtes avec différents niveaux de sécurité.

Le problème avec la saisie de votre mot de passe est que vous donnez régulièrement votre mot de passe aux systèmes distants. L'une des raisons pour lesquelles nous utilisons SSH est d'éviter exactement ce type de faille de sécurité. C'est une question de compromis: vous augmentez la probabilité que le mot de passe d'un utilisateur soit compromis afin de diminuer la probabilité qu'un attaquant qui a compromis une session ou une clé puisse accéder à la racine. Imaginez en particulier le scénario suivant:

  • grande organisation
  • de nombreux hôtes
  • les hôtes ont différents niveaux de sécurité
  • l'accès non root est déjà dangereux
  • les mots de passe utilisateur déverrouillent beaucoup de choses

Dans le scénario que j'ai décrit, sudo sans mot de passe peut augmenter votre sécurité en protégeant le mot de passe de l'utilisateur. Ceci est similaire aux attaques de réutilisation de mot de passe qui sont devenues courantes sur Internet, sauf que la vulnérabilité provient d'un système d'authentification unifié plutôt que de la réutilisation réelle des mots de passe.

Sauf si vous êtes dans une entreprise géante, sudo avec mot de passe augmentera probablement votre sécurité, mais pas nécessairement de beaucoup. À moins que vous ne soyez vraiment un professionnel de la sécurité des systèmes ou que ce soit un hôte avec rien de particulièrement précieux, je vous recommande de le laisser.

Sarah G
la source
-1

Si vous ne l'avez pas sshdinstallé, c'est assez sûr, à moins que vous ne cassiez quelque chose vous-même.

arlock
la source