Question:
Pourquoi laisser un SSH avec mot de passe sur Internet est-il si mauvais?
Ethereal
2016-02-02 20:33:16 UTC
view on stackexchange narkive permalink

J'ai entendu à plusieurs reprises ne jamais quitter SSH avec un mot de passe ouvert sur Internet. Pourquoi est-ce si grave?

Je comprends que le mot de passe peut être forcé, mais que se passe-t-il s'il s'agit d'un mot de passe très fort qui prendrait des éternités à être déchiffré?

Y a-t-il d'autres choses à considérer que juste bruteforce ou est-ce que je manque autre chose?

Par expérience personnelle, les attaquants continueront d'essayer jusqu'à ce qu'ils entrent ou que vous fermiez le port (j'ai finalement fermé le port). Garder le port ouvert et utiliser un mot de passe fort laisse la possibilité d'une attaque par force brute devinant le mot de passe.
Donc, le seul vrai inconvénient est l'ennui et l'idée qu'il soit constamment brutalisé? Je veux dire, je ne ferais pas ça en premier lieu ... Mais je voulais savoir quel est exactement le raisonnement. Donc, techniquement, une personne avec un PW fort n'a rien à craindre ... Non?
faux. Mieux vaut utiliser les certificats RSA et même dans ce cas, vous verrez un énorme volume de journaux
Jetez un œil à http://security.stackexchange.com/questions/110706/am-i-experiences-a-brute-force-attack/110708
Ok, mais une réponse dit que s'il utilise Fail2Ban .. Il n'aura pas à s'inquiéter du forçage brutal de ce genre.
Etrangement, je ne suis pas notifié de vos messages ... La première réponse est la mienne sur cette URL. Fail2ban offre un certain degré de protection, mais ce n'est pas une solution miracle, et encore moins de nos jours avec un réseau coordonné de machines zombies forçant brutalement votre service SSH. Je pense que je mentionne quelque chose là-dessus.
J'ai installé fail2ban, un faux démon sshd sur le port 22, et maintenant des armées de bots chinois essaient et échouent, se mettent en colère et UDP DDoS mes serveurs toutes les deux semaines ...
@ztk: Ou jusqu'à ce que vous et eux et tous leurs descendants soient morts de vieillesse et que l'univers se soit désintégré en une goutte sans traits. Avec un mot de passe décemment fort, ce dernier est celui qui se produira en premier.
Thorium, que font-ils avec UDP?
Un autre article pertinent: [Suis-je juste piraté] (https://superuser.com/questions/1034137/did-i-just-get-hacked). Même si vous êtes sûr que * vous * n'utiliserez jamais un mot de passe non sécurisé, vous courez toujours un risque si un propriétaire de package fait quelque chose de stupide comme créer un utilisateur de service avec un mot de passe faible (ou pas de mot de passe du tout).
@RuiFRibeiro Pourquoi pensez-vous qu'il est étrange que vous n'ayez pas été informé du message d'Ethereal? À l'exception des commentaires qui affichent un signe arobase suivi de votre nom, vous êtes averti si quelqu'un publie votre question ou votre réponse, mais pas celle de quelqu'un d'autre sur lequel vous commentez. (AUTANT QUE JE SACHE)
Hmm n'en avait aucune idée, maintenant je comprends. Merci @TOOGAM
@RuiFRibeiro: Ce que TOOGAM a dit n'est pas correct à 100% - vous serez _également_ averti lorsqu'un auteur de publication commentera le message après avoir laissé un commentaire, ** si ** vous êtes le seul à l'avoir fait (car alors il est probable le nouveau commentaire vous était adressé). En prenant ce fil de commentaires comme exemple, ztk aurait dû recevoir une notification concernant le deuxième commentaire; mais ensuite vous, en tant qu'autre personne, avez commenté, et à partir de ce moment, seul le PO a reçu d'autres notifications.
Six réponses:
Purefan
2016-02-02 22:04:27 UTC
view on stackexchange narkive permalink

Pourquoi est-ce si grave?

Parce qu'il y a des tonnes de robots qui recherchent simplement sur le Web des ports ouverts et essaient de se connecter, une fois qu'un robot d'analyse trouve un SSH ouvert port, il peut être mis en file d'attente pour qu'un autre bot (ou botnet) tente de forcer le mot de passe. L'un des risques ici est que finalement, ils peuvent réussir à trouver le mot de passe et à prendre le contrôle du serveur.

Je comprends que le mot de passe peut être forcé, mais que se passe-t-il s'il s'agit d'un mot de passe qui prendrait des éternités à craquer?

Avoir un mot de passe long est une technique d'atténuation, cependant les ressources (bande passante, espace disque utilisé pour les logs et CPU par exemple) consomment une force brute l'attaque peut également être dommageable.

Atténuation

Quelques techniques pour atténuer une attaque par force brute sur SSH:

J'ajouterais à votre liste: désactiver la connexion root via ssh. La plupart des robots essaient simplement de frapper root. Je ne vois pas de problème pour laisser ssh ouvert tant qu'il a un mot de passe sécurisé et que vous ne vous connectez pas à distance en tant que root.
@paulburkeland: Il n'y a aucune raison de désactiver root via ssh si vous utilisez pubkey, et de nombreuses bonnes raisons de le laisser ouvert. Sur un système renforcé / verrouillé, avoir ssh accepte la connexion root signifie que vous pouvez supprimer tous les binaires suid (su, etc.) du système et ainsi éliminer complètement une grande surface d'attaque (l'éditeur de liens dynamiques) pour les attaques locales.
utiliser knockd pour "Port Knocking" pour cacher votre serveur SSH, fera également beaucoup pour vous cacher des scripts.
AilipkspslCMT.. Touché salesman, touché.
@R .. Vous échangez une surface d'attaque (su) contre une autre (connectez-vous en tant que root). Je préférerais que s'ils font une brèche initiale, il y ait une menace qu'ils pourraient m'attaquer et devenir root, au lieu d'une situation pire où l'attaquant donne instantanément une invite root sans autre travail nécessaire. Au lieu d'utiliser le nom d'utilisateur connu de root, ils doivent deviner quels comptes d'utilisateurs peuvent escalader vers root, et ces efforts peuvent être plus susceptibles d'être enregistrés plus en détail par mon équipement. De plus, je peux inverser certains progrès de quiconque se rapproche (en supprimant l'accès à distance)
@TOOGAM: Quel est votre modèle de menace? RSA qui force la brutalité? Indépendamment du fait que sshd autorise la connexion root, il doit * s'exécuter en tant que root * lui-même afin de pouvoir définir l'utilisateur cible lors de la connexion, donc je ne parviens pas à voir l'augmentation de la surface d'attaque résultant de l'activation de la connexion root via ssh ( en supposant que vous n'activez pas également les mots de passe).
J'ai trouvé que [simplement durcir un peu sshd] (https://stribika.github.io/2015/01/04/secure-secure-shell.html) a tué la grande majorité des bots là-bas, les rendant incapables de communiquer avec le serveur. Il n'y a plus assez de trafic de force brute pour déclencher fail2ban!
Cette conversation pourrait être mieux adaptée dans http://chat.stackexchange.com/rooms/151/the-dmz.
@TOOGAM Il semble que vous ne sachiez pas que [OpenSSH utilise déjà la séparation des privilèges] (http://www.citi.umich.edu/u/provos/ssh/privsep.html) et ce depuis plus d'une décennie.
@MichaelHampton Inapplicable à ma position, car mes déclarations n'étaient pas basées sur des préoccupations concernant la bugginess d'OpenSSH. En autorisant uniquement SSH à se connecter à un compte non root, faire des choses root nécessite: A) de déterminer quels noms d'utilisateur peuvent escalader. B) obtenir une invite pour cet utilisateur. C) Déterminez comment escalader (ce qui peut poser des problèmes d'authentification supplémentaires). En revanche, s'ils peuvent se connecter en tant que compte "root", ils ont pratiquement déjà accompli les étapes A et C, et n'ont besoin que de faire l'équivalent de l'étape B.
+1 pour les ressources endommagées: c'est-à-dire mon temps. Après avoir dû supprimer les journaux de millions de connexions SSH échouées plusieurs fois après avoir rempli mon petit disque VPS et causé d'autres erreurs étranges, j'ai appris ma leçon.
Les deux derniers éléments de votre liste sont non seulement assez simples à mettre en œuvre, mais également un énorme bond en avant en termes d '"avantages" pour l'administrateur en termes de tranquillité d'esprit et de journaux de vérification de la quantité de travail ...
SilverlightFox
2016-02-02 22:23:59 UTC
view on stackexchange narkive permalink

Le principal risque est que la connexion initiale puisse être interceptée par un Man-In-The-Middle, donc un attaquant peut récupérer le mot de passe.

La première fois qu'un utilisateur se connecte à un serveur SSH, quelque chose de similaire à ce qui suit s'affiche:

  $ ssh scanme.nmap.org L'authenticité de l'hôte 'scanme.nmap.org (45.33.32.156)' ne peut pas être établie.L'empreinte digitale de la clé ECDSA est SHA256: 8iz5L6iZxKJ6YONmad4oMbC + m / + vI9vx5C5f + qTTGDc.Êtes-vous sûr de vouloir continuer à vous connecter (oui / non)?  

Maintenant, à moins que chaque utilisateur ne vérifie cette empreinte digitale pour s'assurer que c'est votre serveur, alors il y a un risque que leur connexion ait été interceptée (par exemple, MITM sur leur réseau interceptant directement le trafic, ou un type de piratage DNS).

C'est parce que SSH est "Trust on First Use ". Si vous vous êtes déjà connecté à cet hôte et que la clé change soudainement, le message suivant s'affiche à la place, avertissant l'utilisateur.

  @@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@ AVERTISSEMENT: L'IDENTIFICATION DE L'HÔTE À DISTANCE A CHANGÉ! @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IL EST POSSIBLE QUE QUELQU'UN FAIT QUELQUE CHOSE DE NASTY! Quelqu'un pourrait espionner sur vous en ce moment (attaque de l'homme du milieu)! Il est également possible que la clé d'hôte RSA vient d'être modifiée.L'empreinte digitale de la clé RSA envoyée par l'hôte distant est 5c: 9b: 16: 56: a6: cd: 11: 10: 3a: cd: 1b: a2: 91: cd: e5: 1c.Veuillez contacter votre administrateur système.Ajoutez la clé d'hôte correcte dans /home/user/.ssh/known_hosts pour supprimer ce message. clé dans /home/user/.ssh/known_hosts:1 La clé d'hôte RSA pour ras.mydomain.com a changé et vous avez demandé une vérification stricte.La vérification de la clé d'hôte a échoué.  

L'avertissement atténuera cette attaque pour les utilisateurs qui se sont déjà connectés à partir de ce client particulier.

D'autres risques moins critiques liés à l'ouverture de SSH sur Internet sont que de nombreux robots trouvent et tentent de se connecter à de tels serveurs. Si vous avez un mot de passe fort sur tous les comptes, le risque de compromission est très faible (par fort, j'entends un mot qui ne figurera certainement pas dans une liste de mots que l'attaquant peut utiliser ou créer). Les règles habituelles s'appliquent - par exemple, pas de réutilisation du mot de passe, mot de passe stocké en toute sécurité, etc. un autre service, il y a une chance que des vulnérabilités soient découvertes qui pourraient être automatiquement exploitées par de tels robots. Cependant, le risque de ceci n'est pas plus grand que celui d'un serveur Web ou d'une application Web d'être exploité. Comme tout serveur avec des services publics, une bonne stratégie de gestion des vulnérabilités est recommandée.

Voir également cette réponse, la partie relative aux messages d'avertissement SSH et au risque de continuer, même avec le public authentification par clé.

Jeff Ferland
2016-02-03 01:09:43 UTC
view on stackexchange narkive permalink

J'ai entendu à plusieurs reprises ne jamais quitter SSH avec un mot de passe ouvert sur Internet. Pourquoi est-ce si mauvais?

Je comprends que le mot de passe peut être forcé, mais que se passe-t-il s'il s'agit d'un mot de passe très fort qui prendrait des éternités à se déchiffrer?

Le très Le fort avantage de la désactivation des connexions SSH par mot de passe est vraiment d'empêcher les comptes par défaut avec des mots de passe faibles ou les utilisateurs qui choisissent des mots de passe faibles d'être forcés. À l'heure actuelle, vous n'avez peut-être que quelques comptes sans mot de passe faible, mais quelque chose pourrait être installé à l'avenir où ce n'est pas le cas. Plus vous avez de systèmes ou de complexité au fil du temps, plus le risque augmente.

Cas anecdotique: une de mes connaissances a perdu son serveur et tout ce qu'il contient parce qu'il a donné à un ami un compte avec le mot de passe changeme qui n'a pas été changé. Aucune sauvegarde à distance n'a été créée non plus, il a donc tout perdu.

Les clés SSH sont considérablement plus sécurisées par défaut. À moins que la génération de clé ne soit interrompue, le niveau de compromis le plus bas nécessite l'obtention de la clé de l'utilisateur. Alors qu'avec les mots de passe, le niveau est juste deviner quand quelqu'un expose un mot de passe faible. Il s'agit de s'assurer que les futurs échecs humains sont protégés.

Sauf si P = NP ...
mti2935
2016-02-02 21:31:03 UTC
view on stackexchange narkive permalink

Une autre chose à considérer est la possibilité de vulnérabilités (bien que connues depuis un certain temps ou zero-day) dans le démon sshd lui-même, qui pourraient être exploitées par un attaquant. Pour atténuer cela, il est préférable d'ouvrir sshd uniquement aux utilisateurs travaillant à partir d'adresses IP connues auxquelles vous faites confiance, ou via un VPN, si possible.

Je seconde le VPN; il réduit également considérablement la taille des billes
kasperd
2016-02-03 15:02:42 UTC
view on stackexchange narkive permalink

Il y a plusieurs raisons différentes pour lesquelles il est plus sûr d'utiliser l'authentification par clé publique plutôt que l'authentification par mot de passe:

  • La clé secrète ne quitte jamais la machine cliente, il est donc plus difficile d'intercepter le secret clé que le mot de passe. Ceci est important dans le cas où un attaquant effectuer une attaque mitm contre votre première connexion où la clé d'hôte n'est pas connue auparavant. Il est également important au cas où le serveur aurait été compromis par un attaquant.
  • L'utilisation de l'authentification par clé publique vous protège contre les attaques mitm complètes. Si un attaquant devait effectuer une attaque mitm contre votre première connexion, vous risquez de ne pas vérifier la clé d'hôte. Cependant, si vous utilisez l'authentification par clé publique pour vous authentifier, l'authentification est liée à l'ID de session ssh, ce qui empêche l'attaquant d'utiliser la même authentification pour transmettre la connexion au serveur légitime. Cela réduit l'attaque d'une attaque mitm complète à l'interception uniquement de la connexion, ce qui sera souvent plus facile à remarquer pour l'utilisateur. (Par exemple, lorsque l'utilisateur recherche un fichier connu pour être sur le serveur réel, mais non connu de l'attaquant, alors l'utilisateur remarquera que quelque chose ne va pas.)

Étant donné que je recommande de ne pas utiliser l'authentification par mot de passe, je déconseillerai également de la laisser activée sur votre serveur ssh pour les raisons suivantes:

  • Les attaquants tenteront des attaques par force brute par mot de passe. Si vous avez un utilisateur sur le système avec un mot de passe faible, il est possible qu'une telle attaque réussisse.
  • Même si tous les utilisateurs du système ont des mots de passe forts, les attaquants essaieront toujours de forcer les mots de passe. . Cela consommera des ressources sur le serveur. Parfois, j'ai vu de telles attaques par force brute être si agressives que les connexions légitimes échouaient en raison de la surcharge du serveur.
  • Si vous vous habituez à ce que les serveurs ssh n'acceptent jamais les mots de passe, vous serez plus susceptible de remarquer au cas où un attaquant tenterait un jour de vous lancer une attaque mitm et de vous présenter une invite de mot de passe.
Øle Bjarnstroem
2016-02-02 21:47:32 UTC
view on stackexchange narkive permalink

Si je comprends bien, une clé n'est pas si différente d'un mot de passe; c'est juste beaucoup, beaucoup plus long et donc plus difficile à craquer. De plus, vous avez besoin d'un mot de passe en plus.

Mais je voudrais également dire qu'il est logique de n'autoriser que certaines adresses IP à se connecter même à votre port SSH. Cela réduit les fichiers journaux et il est généralement recommandé de n'autoriser l'accès (pas la connexion) à un service si nécessaire. Par exemple, à une plage d'adresses IP du VPN de votre entreprise. Mais ne vous fiez jamais simplement à cela.

Le déplacement du port SSH est parfois suggéré, mais je vois peu d'avantages à cela.

Aussi (hors sujet): ne jamais autoriser la connexion SSH pour root .

La plupart des Unix / Linux modernes sont déjà livrés avec la désactivation de la racine dans sshd ... vous devez l'autoriser expressément (ce qui est une très mauvaise pratique)
Certaines personnes le font encore par paresse. Il est également important de garder la liste des utilisateurs sudo serrée.
SSH autorise la clé sans authentification par mot de passe
Vrai. Mais il est préférable d'utiliser la clé avec les mots de passe.
* "Si je comprends bien, une clé n'est pas si différente d'un mot de passe; c'est juste beaucoup, beaucoup plus long et donc plus difficile à craquer." * ... non, vous confondez les jetons d'authentification avec les clés publiques / privées. L'intérêt d'une clé privée est que, contrairement à un mot de passe, elle n'est jamais communiquée lors de l'authentification. Il y a ici une différence très fondamentale.
Oui c'est vrai. Ma faute! C'était très mal formulé.


Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 3.0 sous laquelle il est distribué.
Loading...