Quelle est l’importance du mot de passe sudo?

25

Je sais que le mot de passe sudo protège mon ordinateur contre le piratage local par un utilisateur physique ( modifier: en fait, il ne pas ). Mon mot de passe est assez fort à cette fin, mais je sais que ce n'est pas assez fort si quelqu'un peut le forcer à bout.

tout le monde peut-il accéder à mon ordinateur en mode root en utilisant mon mot de passe sudo sans accès physique à l'ordinateur, sur une installation de bureau Ubuntu standard?

  1. Si vous avez un accès réseau, oui (réponse courte)
  2. Si vous ne faites pas assez attention à la sécurité, oui (réponse longue)
  3. Si vous avez "ssh" en cours d'exécution, et non 2FA , oui ( commentaires et réponses
  4. On peut accéder à votre ordinateur en tant que root sans mot de passe sudo / user
posée mxdsp 09.10.2015 - 15:28
la source

5 réponses

34
  

Je sais que le mot de passe sudo protège mon ordinateur contre le piratage local par un utilisateur physique.

Je ne veux pas trop vous faire peur, mais si quelqu'un a un accès physique, vous lui avez donné un accès sans tenir compte de la force de votre mot de passe. Il faudra 1 redémarrage par quelqu'un pour que cette personne puisse changer votre mot de passe root (peut être fait à partir de "Grub Rescue" sans avoir besoin de fournir votre mot de passe actuel). Soit dit en passant: cette méthode est considérée comme valide et comme une fonctionnalité et un risque de sécurité accepté (sinon vous ne seriez jamais en mesure de réparer votre système si le mot de passe était compromis).

  

mais je sais que ce n'est pas assez fort si quelqu'un peut le forcer à la force.

Voici autre chose en jeu: un ROUTEUR devrait être suffisamment intelligent pour verrouiller l’accès de l’extérieur si c’est une requête répétée demandant les mêmes informations sur une courte période. En gros, ce que vous avez ici est une attaque DOS (ou un DDOS si 2+ ordinateurs vous attaquent). Un routeur doit tuer cette connexion et appliquer une période d'attente avant d'accepter de nouvelles demandes provenant de cette connexion.

  

Quelqu'un peut-il accéder à mon ordinateur en mode root en utilisant mon mot de passe sudo sans accès physique à l'ordinateur, sur une installation de bureau Ubuntu standard?

Ils doivent d'abord se connecter, puis fournir le mot de passe sudo. Le mode "root" est désactivé et vous ne pouvez pas vous connecter directement à une invite "#".

Notez qu'il est possible d'abuser d'un service. Si vous avez "ssh" en cours d'exécution sur cette machine et qu'ils peuvent "ssh" sur votre système et avoir votre nom d'utilisateur et votre mot de passe pour cet utilisateur (et comme c'est un utilisateur administrateur votre mot de passe sudo), ils peuvent accéder à votre machine et le gâcher. Soit dit en passant: s’ils le font, ils doivent d’abord connaître votre système (comme votre mot de passe).

Mais il y a un problème avec ça (et toute autre méthode): comment ont-ils obtenu votre mot de passe? Ils ne peuvent pas l'obtenir de votre système lui-même. Et en général, deviner ne vaut pas la peine. Si elle était socialement conçue ... alors votre problème est là, pas avec le modèle de sécurité de votre système, Ubuntu ou Linux en général.

Tant que votre mot de passe sudo est à vous, vous devez / ça devrait aller. Et vous serez encore mieux si c'est un mot de passe fort (peut-être facile à retenir pour vous mais non devinable par les autres). Un exemple que j'ai déjà utilisé lors de la discussion: si votre chien s'appelle "Abwegwfkwefkwe" en utilisant "Abwegwfkwefkwe", le mot de passe est MAUVAIS bien qu'il soit beau (quelqu'un pourrait vous demander: une conjecture libre). Si vous n'avez aucun lien avec "Abwegwfkwefkwe", c'est un bon mot de passe.

Le meilleur conseil que je puisse donner:

  • ne saisissez pas votre mot de passe administrateur lorsque l’on vous le demande, à moins que vous sachiez que l’on s’y attendait. Si vous ouvrez un navigateur et que vous recevez une fenêtre qui ressemble à notre "demander le mot de passe du compte administrateur" ... arrêtez ... et pensez en premier.

  • ne laissez pas votre système sans surveillance lorsque la période de grâce "sudo" est active. sudo --reset-timestamp supprime la période de grâce actuelle et vous demandera à nouveau le mot de passe lorsque vous utiliserez "sudo". Verrouillez votre écran lorsque vous partez AFK.

  • n'installez pas de services ou de logiciels pour le plaisir. Si vous n'avez pas besoin de ssh , n'installez pas ssh , si vous n'utilisez pas de serveur Web, n'installez pas de serveur Web. Et jetez un oeil sur les services en cours d'exécution. Si vous n'utilisez pas BT sur un ordinateur portable, désactivez-le. Si vous n'utilisez pas de webcam, désactivez-le (s'il est actif). Supprimez les logiciels que vous n'utilisez plus.

  • et pour le très paranoïaque (et oui, Panda paranoïaque, je vous regarde): changez le mot de passe de temps en temps. Vous pouvez même installer des chasseurs de rootkits pour vérifier les accès inappropriés.

  • sauvegardez vos données importantes sur quelque chose que vous conservez hors ligne. Donc, même si vous trouvez quelqu'un sur votre système, vous pouvez le formater et recommencer avec une nouvelle installation et vos données restaurées.

réponse donnée Rinzwind 09.10.2015 - 16:01
la source
6

Oui, ils peuvent.

Il existe plusieurs façons de le faire, et le bruteforcing du mot de passe sudo n’est probablement pas le premier.

Tout d’abord, le mot de passe sudo est le mot de passe de votre utilisateur; alors vraiment ce qu’ils devraient avoir, c’est votre mot de passe.

Deuxièmement, déchiffrer le mot de passe d’un utilisateur en utilisant bruteforce pour accéder à un système est probablement le dernier recours.

Il existe des moyens beaucoup plus élégants (mais surtout plus efficaces) d’entrer dans un autre système.

En général, un attaquant va simplement tenter d’exploiter les vulnérabilités les plus courantes (la plus connue étant probablement l’obtention d’un shell utilisateur par quelque moyen que ce soit et l’exploitation d’un shell Shell pour obtenir un shell racine) ou faire le meilleur travail dans le sens de:

  • Analyser les ports ouverts du système pour obtenir des informations telles que:
    • Version du système d'exploitation
    • Exécution de la version des services
  • Exploiter un système d'exploitation connu ou exécuter des bogues de services (débordements de mémoire tampon, ...) afin d'obtenir au moins un shell utilisateur, puis essayer d'obtenir un shell racine (encore une fois, peut-être exploiter un ShellShock)

Le bruteforcing du mot de passe sudo / user peut être une tentative dans le cas où un shell racine ne peut pas être obtenu autrement, mais par exemple en exploitant un service exécuté en tant que root mot de passe.

    
réponse donnée kos 09.10.2015 - 16:54
la source
3
  1. Si j'ai appris quelque chose ces dernières années sur la sécurité, une chose: Rien n'est impossible .

  2. Tant que vous avez accès à un réseau, définitivement. Chaque service exécuté sur votre système et accessible sur le réseau est théoriquement vulnérable et constitue donc une faiblesse potentielle.

Et donc, pour un attaquant avec suffisamment d’idées, c’est possible. Vous pouvez rendre votre système aussi sécurisé que possible, mais vous ne pouvez pas obtenir une sécurité à 100%.

Il est donc important d’évaluer ce qui est possible avec un effort technique justifiable et ce qui vous protège si bien que vous ne pouvez plus travailler.

    
réponse donnée A.B. 09.10.2015 - 15:35
la source
2
  

Je sais que le mot de passe sudo protège mon ordinateur contre le piratage local par un utilisateur physique (edit: en fait, ce n’est pas le cas). Mon mot de passe est assez fort à cette fin, mais je sais que ce n'est pas assez fort si quelqu'un peut le forcer à bout.   Est-ce que quelqu'un peut accéder à mon ordinateur en mode root en utilisant mon mot de passe sudo sans accès physique à l'ordinateur, sur une installation de bureau Ubuntu standard?

le mot de passe sudo n'est pas uniquement destiné à la protection locale, il a pour but d'ajouter une couche de sécurité supplémentaire à l'utilisation des privilèges root. Une bonne discussion peut être trouvée ici lien

Votre mot de passe peut ne pas être aussi fort que vous le pensez. Actuellement, je craque 20 à 40% des hachages Active Directory de mon client pour ceux que j'ai déjà vus, ceux qui ont de mauvaises règles de mot de passe sont fissurés à 70%. Je recommande des mots de passe complexes de 16 caractères. Les cartes graphiques oclHashcat et Radeon peuvent faire beaucoup de dégâts. Ajoutez tous les vidages de mots de passe de chaque violation au cours des 5 dernières années et vous avez tendance à utiliser un bon dictionnaire.

Si vous utilisez SSH, faites quelques ajustements dans sshd_config

sudo nano /etc/ssh/sshd_config

Les MUSTS dès la sortie (le dernier pour désactiver le serveur FTP si vous ne l’utilisez pas).

Protocol 2
X11Forwarding no
PermitEmptyPasswords no
MaxAuthTries 5
#Subsystem sftp /usr/lib/openssh/sftp-server

Enregistrez-le, redémarrez ssh

sudo service ssh restart

Utiliser le chiffrement à clé publique Commencez par créer vous-même une clé sur votre machine distante (en utilisant puttygen ou la saveur de votre système d'exploitation). Copiez la clé publique sur votre machine Ubuntu sous l'utilisateur que vous souhaitez vous connecter en tant que fichier authorized_keys (vous devrez probablement le créer)

sudo nano /home/yourdumbusername/.ssh/authorized_keys

copier la clé publique dans ce format

ssh-rsa 23r0jfjlawjf342rffjfa89pwfj8ewfew98pfrfj8428pfwa9fupfwfcajwfpawf8rfapfj9pf892jpfjpwafj8a where-ever-you-have-your-private-key-for-your-own-notes

enregistrez-le et configurez votre sshd_config pour autoriser la connexion à la clé publique

sudo nano /etc/ssh/sshd_config

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      %h/.ssh/authorized_keys

enregistrer et redémarrer ssh

sudo service ssh restart

Essayez SSHing sur votre hôte Ubuntu depuis votre ordinateur à clé privé en utilisant le cryptage à clé publique. Si tout s'est bien passé, retournez à l'hôte Ubuntu et désactivez l'authentification par mot de passe.

sudo nano /etc/ssh/sshd_config

PasswordAuthentication no

Enregistrer et redémarrer ssh

sudo service ssh restart

Essayez à nouveau de sshing à partir d’un ordinateur à clé privée pour confirmer.

Voulez-vous en ajouter? configurez un compte non privilégié, réglez PermitRootLogin non, redémarrez ssh, ajoutez votre clé publique aux autorisations_keys du nouveau compte, connectez-vous en tant que compte non privilégié, su à votre compte root ou privilégié lorsque vous devez rooter ou privilégier.

    
réponse donnée sonofapharmacist 16.10.2015 - 00:26
la source
2
Le but de

sudo n'est pas lié à un mot de passe, mais plutôt à donner à certains utilisateurs des fonctionnalités root-root tout en restreignant les autres sur une machine sans leur demander le login root (password / key / security token / etc). Par exemple, lors de mon travail, les travailleurs au jour le jour ne peuvent que démarrer / arrêter / installer mise à niveau de leurs stations (à partir d'un référentiel bloqué par l'entreprise) via sudo. On ne leur donne pas les autres libertés root, telles que supprimer / formater des périphériques, ajouter et supprimer des utilisateurs, décider quels modules du noyau doivent être mis sur liste noire ou ce qui fonctionne dans crontab (etc., etc.). Alors que chez vous, votre sudo permet un accès complet à la machine. En ce qui concerne le mot de passe, il s'agit en réalité du mot de passe de votre compte utilisateur que sudo requiert (le même que celui que vous utiliseriez pour vous connecter si autologin n'est pas activé). Ce mot de passe présente les mêmes vulnérabilités que tout autre mot de passe.

Mauvais conseil : Si vous souhaitez que root ait un compte régulier sur unix activé par sudo (Linux / Apple osx), exécutez les opérations suivantes

sudo -s
passwd
Enter your unix password:

À ce stade, root dispose d'un mot de passe standard, et vous pouvez simplement vous déconnecter et vous connecter en tant que root avec le mot de passe mentionné, à l'ancienne.

En ce qui concerne la sécurité, si un programme (par exemple serveur Web, mysql, php-daemon, sshd) s'exécute en tant que compte élevé .. dites root et possédez un exploit connu, les pirates n'auront peut-être pas besoin accès. Ils peuvent utiliser la vulnérabilité du programme et générer un nouveau shell à partir de ce programme exécuté en tant que root. Cependant, cela est assez rare car les responsables de la distribution sont conscients des problèmes similaires et font un travail remarquable pour créer un environnement par défaut bien pensé et généralement sûr.

Dans le autre système d'exploitation , une opération similaire à sudo serait un clic droit et exécutée en tant qu'administrateur système (ou le privilège de privilège UAC).

    
réponse donnée user283885 30.11.2015 - 21:23
la source

Lire d'autres questions sur les étiquettes