Question:
L'utilisation de numéros de port obscurs améliore-t-elle la sécurité?
William Rosenbloom
2018-07-17 05:56:42 UTC
view on stackexchange narkive permalink

J'ai récemment commencé un emploi dans une petite entreprise où le CTO préfère héberger des services SSH sur des ports obscurs et numérotés sur nos serveurs plutôt que sur le port bien connu 22. Son raisonnement est que "cela empêche 99% des attaques de script kiddy . " Je suis curieux de savoir si cela est considéré comme une mauvaise pratique.

Intuitivement, cela semble raisonnable. Mais nous sommes tous les deux largement autodidactes et Je ne suis pas à l'aise avec l'idée d'improviser nos propres procédures de sécurité plutôt que de suivre des conventions bien établies. Je sais qu'en général les schémas et protocoles cryptographiques sont minutieusement conçus par des équipes de experts, et que chaque détail est destiné à protéger contre une sorte d'attaque, aussi insignifiante que cela puisse paraître. Je m'inquiète des conséquences imprévues de s'écarter de ces recommandations.

Mais mon collègue semble avoir des preuves de son côté. Il a pu démontrer que nous recevons chaque jour des dizaines d'attaques qui tentent le port 22 et passent à autre chose. Je sais que en général, nous devrions éviter la sécurité par l’obscurité, mais s’éloigner de cette cible commune semble vraiment déjouer la plupart des attaques .

Est-ce bien pratique ou pas? Devrions-nous utiliser des ports bien connus?

ADDENDUM

Nous ne comptons pas uniquement sur le port obscur. Nous avons mis en place de nombreuses autres mesures de sécurité, notamment des clés matérielles obligatoires. Je vais reformuler ma question plus clairement.

Y a-t-il une raison pour laquelle le port 22 en particulier a été choisi pour SSH? Y a-t-il quelque chose de dangereux à utiliser d'autres ports?

La sécurité par l'obscurité n'existe pas.Il n'y a que de l'obscurité.Ce principe a été établi il y a des décennies.
Moins de déchets dans les fichiers journaux est une fonctionnalité de sécurité à mon avis, car cela signifie que vous pouvez vous concentrer davantage sur les vrais problèmes.
Si vous souhaitez une sécurité décente par l'obscurité (:)), vous devez utiliser le port knocking au lieu de simples ports non standard.Le cliquetis de port ne peut pas être neutralisé par la numérisation.La seule façon de le contrer est une analyse décente du trafic, ce qui est beaucoup plus difficile.
La sécurité par l'obscurité n'est pas intrinsèquement mauvaise, se fier uniquement à elle l'est.L'obscurité peut fournir un avantage négligeable qui ne peut pas remplacer une véritable sécurité, mais elle peut être utilisée en plus.L'inconvénient de l'obscurité est qu'elle ajoute normalement des inconvénients aux utilisateurs autorisés (qui doivent se souvenir de l'écart par rapport à la norme), et la sécurité consiste généralement à établir un équilibre entre la restriction des utilisateurs non autorisés sans trop gêner les utilisateurs autorisés.
Cela dépend totalement du vecteur d'attaque auquel vous pensez.Si vous voulez échapper aux gens qui recherchent le port 22 sur Internet, bien sûr, mais si vous voulez vous défendre contre quelqu'un qui attaque votre hôte, pas du tout.
Pourquoi le port 22 est-il disponible sur Internet public?
Possible duplication de [Le rôle valide de l'obscurité] (https://security.stackexchange.com/questions/2430/the-valid-role-of-obscurity)
J'utilise un serveur ssh sur Raspberry Pi et il est accessible depuis Internet.Lorsque j'ai exécuté le ssh sur le port 22, la partition du journal de disque virtuel de 10 Mo devenait pleine en quelques heures - tout cela en raison de la journalisation des tentatives de connexion.Après avoir déplacé le ssh vers un port haut, je n'ai pas eu une seule tentative d'accès non autorisé en 6 mois.Pour moi, c'est un avantage.
Si vous avez installé un nouveau SSH et que vous avez simplement surveillé les journaux dans la première heure, vous comptez des centaines, voire des milliers de tentatives!En passant, c'est ce qui m'a encouragé à tracer un pot de miel juste dans le but de m'amuser!
Je ne sais pas si vous signez votre question avec votre vrai nom, mais si vous le faites, ou si votre identité peut être établie à partir de vos messages, alors peut-être que vous en divulguez trop.
Dans ce cas, les inconvénients pour les utilisateurs autorisés seront probablement assez faibles, car ils peuvent généralement configurer leur logiciel SSH (même la ligne de commande SSH a généralement quelque chose comme `~ / .ssh / config` pour attribuer un nom court à une connexion compliquée) pour se connecter à un port étrange la première fois et ne pas avoir à se souvenir du port à l'avenir.
Dix réponses:
Steve Sether
2018-07-17 10:37:11 UTC
view on stackexchange narkive permalink

Est-ce que l'utilisation de numéros de port obscurs améliore la sécurité?

Si vous utilisez déjà des mots de passe à haute entropie ou une authentification par clé publique, la réponse est "pas vraiment". La plupart du temps, vous vous débarrassez simplement du bruit des journaux.

Je m'inquiète des conséquences involontaires de s'écarter de ces recommandations.

Cela dépend du port choisi. Sous Linux, par défaut, tous les ports inférieurs à 1024 nécessitent un accès root pour les écouter. Si vous utilisez un port supérieur à 1024, n'importe quel compte d'utilisateur peut écouter dessus s'il n'y a pas déjà un processus d'écoute.

Pourquoi est-ce important? Supposons que vous ayez choisi de configurer ssh pour qu'il se lie au port 20 000 . Si quelqu'un pouvait arrêter le processus SSH sur un serveur (disons qu'il avait trouvé un moyen de planter le processus) et avait un accès local à ce serveur, il pourrait alors exécuter son propre serveur SSH sur le port 20 000 avant le redémarrage du service. Toute personne se connectant se connecterait alors au serveur SSH des méchants.

Ce n'est pas aussi grave qu'avant, car de nos jours, seuls les membres du personnel informatique de confiance ont accès à la connexion. les serveurs. Mais quand même, cela peut potentiellement augmenter les privilèges et autres désagréments si un attaquant prend pied sur votre serveur.

À part être en dessous de 1024, il n'y a rien de spécial à propos du nombre 22. Il a été choisi en grande partie parce que SSH remplaçait telnet au port 23 , et 21 était déjà pris par FTP. Tant que vous choisissez un port en dessous de 1024 , le port n'a pas vraiment d'importance.

Est-ce une bonne pratique ou non? Devrions-nous utiliser des ports bien connus?

Je ne dirais pas que je le recommande. Je ne le déconseillerais pas non plus. Comme je l'ai dit, cela évite beaucoup de bruit dans les fichiers journaux, mais les avantages sont largement limités à cela.

Pour toute personne intéressée par l'histoire de base sur SSH, vous pouvez la trouver à: https://www.ssh.com/ssh/port

Les commentaires ne sont pas destinés à une discussion approfondie;cette conversation a été [déplacée vers le chat] (https://chat.stackexchange.com/rooms/80438/discussion-on-answer-by-steve-sether-does-it-improve-security-to-use-obscure-por).
Nan.Quiconque tenterait de se connecter à ce serveur malveillant recevrait un gros avertissement disant que la clé d'hôte a changé (si les clients _peuvent_ prendre du recul, modifier leurs fichiers known_hosts pour supprimer cette entrée, se connecter à nouveau, accepter la clé inconnue et atterrirdans un autre serveur appartenant à un attaquant, où même les fichiers qu'ils avaient chez eux sont manquants).Notez également que la redirection peut être effectuée via iptables, donc sshd est en fait à l'écoute sur 22 (inaccessible de l'extérieur), et le port réel 20 000 est masqué).
@ Ángel Bien que ce soit correct, cela fournirait toujours des capacités à quelqu'un avec une vulnérabilité de lecture arbitraire ou une attaque de canal secondaire qui permet d'accéder aux clés de l'hôte (ce qui n'est pas un risque insignifiant).De plus, il facilite les attaques d'ingénierie sociale et permet d'exploiter le client.Vous avez raison d'utiliser iptables pour rediriger les ports, ce qui serait une bonne idée si vous voulez utiliser un port haut en toute sécurité.
Tom
2018-07-17 17:21:08 UTC
view on stackexchange narkive permalink

Oui, c'est le cas. La vraie question est: de combien?

Pourquoi? Vous disposez déjà d'une sécurité de base, donc les attaques quotidiennes de bots ne vous inquiètent pas. Mais il pourrait y avoir un jour 0 demain et les attaquants savent qu'il ne faudra pas longtemps avant qu'un correctif ne soit disponible, alors ils se bousculent pour l'utiliser et ne se soucieront pas de quelque chose de compliqué - ils frapperont juste autant de machines que possible sur le port standard. Tout type de ver SSH théorique utiliserait également cette stratégie. Vous seriez protégé contre cela.

Combien de sécurité supplémentaire cela vous apporte-t-il? Il protège contre cela et peut-être 2-3 autres scénarios spécifiques. Cela ajoutera au mieux quelques minutes à toute attaque ciblée par quiconque n'est pas un idiot total. Cela ne fait rien aux scénarios contre lesquels vous êtes déjà suffisamment protégé.

En intégrant ces chiffres à votre méthode d'analyse de risque préférée, vous devriez trouver quelque chose de relativement petit. En revanche, vous avez l'effort supplémentaire de définir un numéro de port non standard, de le documenter, peut-être de le manquer lors d'un dépannage et de perdre du temps, etc.

Je suppose que vous seriez à peu près égalité avec une analyse. Ou, en d'autres termes: oui, cela améliore la sécurité, mais cela ne vaut pas la peine car l'amélioration est très faible.

* "il pourrait y avoir un jour 0 demain et [les attaquants] frapperont juste autant de machines que possible sur le port standard" * Bon point que je n'ai pas vu mentionné dans d'autres réponses!
Votre première phrase est fausse.Il ne peut «améliorer» la sécurité que si la protection correcte (par exemple, * un pare-feu bloquant le port 22 du trafic Internet *, ou plusieurs pare-feu de différents fournisseurs si vous voulez une défense en profondeur, par exemple un pare-feu sur l'appareil qui permet l'accès public à Internet)réseau, puis un pare-feu au niveau de la machine) n'est pas en place.S'il n'est pas en place, le défenseur perdra tout de même face à des attaques légèrement plus sophistiquées qui prennent la peine de vérifier d'autres ports.Perdre à 1% des attaquants, c'est encore perdre.
@jpmc26 vous ne comprenez pas la sécurité et pensez que c'est une propriété binaire.Ça ne l'est pas.Je suis également curieux de savoir pourquoi je dois bloquer un port fermé avec deux pare-feu et pourquoi cela me donne une sécurité supplémentaire.
@Tom Vous voudrez peut-être relire le commentaire car j'ai répondu à cela.Votre réponse suggère qu'un port non standard permet de se protéger contre les vulnérabilités zero day.Si vous vous inquiétez de ceux de votre pare-feu, vous pouvez utiliser plusieurs pare-feu pour obtenir une meilleure défense en profondeur qu'un port non standard en cas de défaillance de l'un d'entre eux.Avec cette configuration, le port non standard ne vous achète rien, et cette configuration vous protège contre * plus * de scénarios qu'un port non standard (comme quelqu'un qui prend la peine d'analyser tous les ports).L'obscurité est au mieux médiocre.Êtes-vous sûr que * je suis * celui qui ne comprend pas la sécurité?
@jpmc26 comment un 0-day * dans le pare-feu * importerait-il dans cette question?Je parlais clairement d'un 0-day * dans sshd * et j'ai clairement décrit le scénario.Nous convenons tous les deux que l'utilisation d'un port non standard donne au mieux une ** petite ** augmentation de la sécurité, mais il existe ** des ** scénarios dans lesquels cela fait une différence.
@Tom Zero day sur SSH n'a pas d'importance si l'attaquant ne peut même pas se connecter à SSH.Avec un pare-feu, une vulnérabilité (telle que zero day) sur le pare-feu lui-même est nécessaire pour même attaquer SSH.Les seuls scénarios où ces méthodes d'obscurité importent sont ceux où les mesures de sécurité appropriées ne sont pas en place, et dans ces scénarios, une * légère * augmentation de l'effort de l'attaquant les vainc.Prendre le risque que pas un seul attaquant ne le dépensera est stupide.Utilisez des mesures de sécurité qui rendent l'obscurité inutile si vous voulez réellement vous défendre contre les menaces ou si vous n'êtes pas du tout en sécurité.
Je sais comment fonctionne un pare-feu.Je supposais que le questionneur n'est pas un idiot complet et a SSH ouvert parce qu'il a besoin qu'il soit accessible.Votre 2ème partie montre une idée fausse de sécurité typique - que vos défenses doivent résister à ** chaque ** attaquant.C'est faux.Si j'ai besoin d'expliquer pourquoi, veuillez ouvrir une nouvelle question, qui dépasse la limite de caractères des commentaires.
@Tom Ils doivent résister à tous les attaquants dans le (s) modèle (s) de menace que vous envisagez.De toute évidence, le modèle de menace ne consiste pas uniquement en des attaquants qui ne vérifient pas les autres ports;ceci est démontré par l'OP puisqu'ils disent que seulement * 99% * des attaquants seraient contrariés par ce mécanisme.Les attaquants sont très intelligents.Supposer qu'ils ne découvrent pas des informations "cachées" dans un site simple est tout simplement stupide, comme l'histoire nous le montre.
Si vous déjouez 99% des attaquants, cela signifie que vous êtes piraté une fois tous les 10 ans au lieu de 10 fois par an.Si vous pensez que ce n'est pas une différence, nous n'avons rien à discuter.
Bien sûr, les script-kiddies exécutent des scanners de port à la recherche du port préféré de leur favori. Avoir un port différent signifie que 99,9% des script-kiddies et des 0 jours auto-distribués ne trouvent rien et l'attaque cible de 0,1% n'est pas évitée même unpeu.
"Si vous déjouez 99% des attaquants, cela signifie que vous êtes piraté une fois tous les 10 ans au lieu de 10 fois par an. Si vous pensez que ce n'est pas une différence, nous n'avons rien à discuter."Cela suppose à tort que nous comparons des ports obscurs à aucune protection.Ce n'est pas du tout ce que j'ai suggéré.Ce que j'ai dit, c'est que le port obscur ne fait rien si vous avez les bonnes protections et qu'il n'y a aucune raison d'éviter de les utiliser.Si vous êtes piraté tous les 10 ans, vous échouez.
@jpmc26 - nous nous parlons.J'ai déjà répondu à tout ce que vous avez dit et je continue de le dire.Le point que vous faites maintenant je l'ai abordé dans mon message d'origine.Je n'ai vraiment rien à ajouter.
vidarlo
2018-07-17 09:35:19 UTC
view on stackexchange narkive permalink

Non, cela n'améliorera pas la sécurité. Cela peut réduire l'encombrement des journaux, car les attaques automatisées n'essaieront que les ports par défaut, par exemple. ssh. Mais le port apparaîtra toujours en tant que SSH dans une analyse de port, et shodan.io.

Ces attaques automatisées visent généralement des résultats faciles, avec des noms d'utilisateur standard tels que root, smith et ainsi de suite, et des mots de passe faibles. S'ils réussissent, vous avez un problème en premier lieu.

Si vous configurez ssh pour n'autoriser que l'authentification par clé, interdire les connexions root et utiliser des mots de passe raisonnables, utilisez fail2ban ou un mécanisme similaire pour bloquer les contrevenants, ils ne sont pas une vraie menace.

J'utilise fail2ban configuré pour bloquer temporairement pendant cinq minutes après trois tentatives infructueuses, et pendant une semaine après 3 * 5 tentatives infructueuses. Cela réduit l'encombrement des journaux et bloque tout progrès réel sur une attaque par force brute.

Pour un attaquant ciblé, le port d'écoute ne fera aucune différence. Cela n'a d'importance que pour les attaques automatisées qui, à mon avis, présentent un risque négligeable.

N'est-il pas considéré comme une amélioration de la sécurité d'être attaqué moins fréquemment?Parce que je suis d'accord, les trolls aléatoires seront généralement arrêtés par des précautions même rudimentaires.Mais chaque attaque ne comporte-t-elle pas un petit risque de violation?Même si le risque est aussi improbable que de deviner correctement une clé RSA?
Il n'y a pas de risque réel dans la force brute contre RSA à mon avis.Et je n'ai pas encore observé d'attaques automatiques essayant cela;ils essaient l'authentification par mot de passe.Contre une attaque réelle et ciblée, qui effectuera un travail intermédiaire pour trouver des noms d'utilisateur valides, etc.
@WilliamRosenbloom,, la plupart des attaques automatisées ne présentent aucun risque de violation.Considérez le gars qui a essayé d'accéder à mon serveur par force brute depuis un an: même s'il avait le mot de passe, la clé privée et l'aide des meilleurs hackers du monde, il n'y a aucun risque qu'il entre. Mon serveur estconfiguré pour rejeter toutes les demandes de connexion de la racine.
@WilliamRosenbloom Sauf que cela ne réduira pas les attaques de manière permanente.Certains botnets ne le sauront peut-être jamais, mais il y en a des intelligents qui le découvriront soit grâce à l'analyse des ports, soit à l'inspection du trafic.Une fois que cela se produit, vous êtes de retour là où vous avez commencé.En outre, il ne fait littéralement rien contre toute attaque ciblée sérieuse, tout attaquant expérimenté saura rapidement sur quel port il est.
D'accord.Si votre authentification ssh est robuste, l'attaque la plus dangereuse contre vous est une sorte de menace persistante avancée (APT).Les cybercriminels APT ne se laisseront pas berner par l'obscurité de la sécurité des écouteurs ssh sur d'autres ports.Si vous êtes obligé de réagir à un incident sous la pression, vous serez heureux d'avoir des choses standard.
fail2ban peut aider mais nécessite Python, une corvée de ressources sur certains appareils.De plus, bien qu'un équilibre doive être trouvé, je ne pense pas que ce soit une bonne pratique de sécurité de croire qu'il n'y aura toujours aucun risque d'attaques par force brute et d'être simultanément familiarisé avec des preuves d'attaques inoffensives dans vos journaux de sécurité.Cela crée une opportunité pour un attaquant plus dangereux d'opérer sous le couvert du bruit et de la complaisance.Un port haut (pour l'instant) maximise le SNR;les attaques contre lui indiquent un attaquant plus déterminé et attirent l'attention appropriée.
Ensuite, obtenez un meilleur visualiseur de journaux, qui peut filtrer les tentatives d'authentification de nom d'utilisateur non valides, les tentatives de racine, etc.
Sayan
2018-07-17 06:27:06 UTC
view on stackexchange narkive permalink

La modification du port par défaut peut vous épargner le scan de port et les script kiddies, mais vous ne pourrez peut-être pas résister à une attaque ciblée où l'attaquant pourrait identifier les services en cours d'exécution non pertinents pour les ports.

Si vous le souhaitez échappez-vous simplement au script kiddies, cela peut être utile, mais vous ne pourrez peut-être pas vous protéger du reste des attaques avancées.

Ma recommandation est d'utiliser le port par défaut (peut réduire vos frais administratifs) et de déployer des défenses de sécurité multi-faces pour atténuer les attaques.

Par exemple, avec le port par défaut utilisé, le déploiement d'une authentification basée sur un certificat avec SSH n'est autorisé que sur certaines sources de confiance.

Nous ne comptons pas sur l'obscurité.Nous avons de nombreuses autres mesures de sécurité, y compris les [clés d'authentification matérielles] (https://www.yubico.com/products/yubikey-hardware/).Les ports obscurs ne sont qu'une couche supplémentaire en plus de la sécurité conventionnelle.** Sachant cela, recommanderiez-vous toujours d'utiliser le port par défaut 22?Y a-t-il une raison autre que les frais généraux administratifs? **
@WilliamRosenbloom Compte tenu de tout cela, vous vous défendez déjà clairement des attaques de base.Quiconque est capable de dépasser vos clés d'authentification matérielles pourrait également trouver ce port alternatif ... donc je pense que le message de Sayan est toujours valable: "utilisez le port par défaut et déployez [plusieurs couches de] sécurité" comme vous l'avez fait.
Si vous utilisez des clés matérielles, l'utilisation de ports non standard n'est qu'un théâtre de sécurité.Un attaquant qui a ** une ** chance de casser une clé matérielle identifierait de toute façon votre vrai port ssh en un rien de temps.En fait, un attaquant de niveau beaucoup plus bas pourrait le faire facilement.
SSLTrust
2018-07-17 06:21:23 UTC
view on stackexchange narkive permalink

Je dirais que oui, utilisez des numéros de port non normaux car cela filtrera BEAUCOUP de bots automatiques. mais ne comptez pas dessus, car beaucoup de bots que j'ai remarqués vont scanner un réseau / hôte pour tous les ports ouverts et les essayer.

La meilleure chose est d'implémenter une bonne sécurité sur votre port SSH . désactiver la connexion root, ajouter les adresses IP à la liste blanche si vous le pouvez, ne pas utiliser de mots de passe pour les connexions (utiliser les clés), activer également une notification pour les connexions. Et configurer un pare-feu, c'est important.

Laissez-nous [continuer cette discussion dans le chat] (https://chat.stackexchange.com/rooms/80477/discussion-between-forest-and-patrick-mevzek).
user6858980
2018-07-17 16:24:22 UTC
view on stackexchange narkive permalink

Obscurcir les ports sur des nombres élevés comme celui-ci n'arrête que de simples bots qui chercheront des ports bien connus. Les script kiddies et les hackers déterminés peuvent simplement balayer le port du reste de la plage de ports pour trouver un service, vous arrêtez donc seulement quelques bruits de journaux.

La convention de ne pas écouter le standard n'a pas vraiment d'importance port pour ce service. Les développeurs de ce service vous donnent la possibilité de l'exécuter sur n'importe quel autre port, et tout programme qui peut interagir avec lui aura une option pour spécifier à quel port vous voulez parler.

Je suis d'accord avec les autres publie ici que les ports sensibles comme SSH doivent être conservés dans l'espace de port privilégié sous 1024.

Une meilleure façon d'obscurcir SSH qui fonctionne réellement est de faire un coup de port. Cela implique de fermer le port à iptables jusqu'à ce qu'une séquence de ports ait été "frappée" qui ouvrira alors le port souhaité.

Par exemple, vous pouvez envoyer un paquet au 8000 4545 28882 7878. Une fois que vous avez souhaité la séquence est iptables entré déverrouillera le port souhaité. Cela arrête vraiment la majorité des script kiddies et hackers car aucun port n'est annoncé. Mais cela ne s'arrête pas contre les attaques de relecture, mais au moment où vous avez de plus gros problèmes à vous soucier.

https://en.wikipedia.org/wiki/Port_knocking.

En fait, vous devriez utiliser TCPWrappers et ne laisser que les ips et les plages réseau connus accéder aux ports comme SSH. Avez-vous besoin de laisser les IP de Chine accéder à SSH? Ou les développeurs n'auront-ils besoin d'accéder qu'à partir du LAN du bureau? S'ils travaillent à distance, transformez-les en VPN dans le LAN

cogner au port est une idée de sécurité mignonne, mais sa convivialité est absolument terrible.
@Tom à moins que vous n'écriviez un script pour gérer cela pour vous ... La convivialité pour un administrateur distant n'est pas vraiment une grande préoccupation.
@schroeder, vous supposez que vous faites toujours vos tâches d'administration à partir de la même machine sur laquelle vous avez votre script astucieux à portée de main.Dans ce cas, vous n'avez pas besoin de frapper de port, l'authentification par clé rendra également les attaques par force brute inutiles.
@tom oui, je suppose que.Si vos administrateurs se connectent à partir de machines inconnues ou non contrôlées, vous avez un autre problème.Votre commentaire sur la clé est également déroutant: l'authentification par clé est terrible pour la convivialité.Je pense que vous devrez peut-être développer ce que vous entendez dans votre commentaire initial et quelles sont les hypothèses que vous faites comme base.
@schroeder - vous avez raison, l'authentification par clé n'est pas bien meilleure en termes d'utilisation, mais au moins c'est une procédure standard. Mon expérience montre que votre hypothèse sera correcte 99% du temps, et fausse la seule fois où vous avez vraiment besoin de vous connecter, mais vous êtes quelque part sans votre ordinateur portable.Je me suis enfermé hors des machines assez souvent pour savoir que vous devez toujours avoir au moins un moyen qui ne nécessite aucun logiciel ou configuration spécifique.
@Tom explique pourquoi vous pensez que sa sécurité est mignonne?Le port est pare-feu jusqu'à ce que vous le déverrouilliez avec cette méthode, vous avez alors toujours toutes vos mesures de sécurité existantes en place.Si vous ne faites pas de publicité pour votre port, vous éviterez la majorité des scans du réseau. Si le service derrière le port caché devient vulnérable, cela vous laissera également beaucoup de temps avant que les hacks automatisés ne commencent à affluer. Pensez à la façon dont cela aurait pu arrêter shellshockse propage si rapidement.Oui la convivialité diminue, je dois maintenant envoyer 3 paquets avant de me connecter, telle difficulté.
@user6858980 Je l'ai appelé "mignonne" parce que c'est l'une des choses que quelqu'un vous dit lors d'une conférence et vous dites "maintenant c'est une bonne idée", jusqu'à ce que vous réfléchissiez à toutes les implications.Et oui, envoyer 3 paquets peut être une sacrée tâche si vous êtes, par exemple, dans un cybercafé.J'ai redémarré des serveurs en panne à l'aide d'un Palm Pilot et d'un téléphone GSM (ni 3G, ni 2G, GSM) en prenant le train.J'ai effectué un dépannage sur un iPad.Bonne chance pour que votre port soit terminé lorsque vous êtes dans une situation d'urgence sans votre équipement habituel.
alors quelles sont les implications qui ne le rendent pas pratique?Vous dites qu'il y a un problème sans donner aucune information.L'idée que vous ne pouvez pas envoyer trois paquets via GSM sur un train est absurde, si vous avez une connexion réseau suffisamment stable pour maintenir une connexion ssh, vous avez assez à faire pour x dans $ PORT1 $ PORT2 $ PORT3;do nmap -Pn --host_timeout 201 --max-retries 0 -p $ SERVER_IP;terminé;Utilisateur ssh @ $ SERVER_IP.Ou trois telnets et un ssh.Dites-moi comment vous exploiteriez un service vulnérable ou une force brute quelque chose qui est pare-feu et non annoncé?
Yury Schkatula
2018-07-17 20:51:10 UTC
view on stackexchange narkive permalink

Comme mentionné par d'autres, la migration vers un port non standard n'est pas une solution de sécurité car vous filtrez uniquement les attaques de niveau naïf.

En même temps, la migration peut être beaucoup plus intéressante si elle est combinée avec d'autres précautions. Par exemple, vous placez un pot de miel sur le port standard (un environnement qui est physiquement isolé du reste de votre système mais qui ressemble à une pièce légitime pour l'attaquant). Ensuite, si vous voyez quelqu'un cassé dans le pot de miel, il est fort probable qu'il s'agisse d'un pirate informatique, vous pouvez donc l'interdire automatiquement.

Et vous ne devriez sûrement pas utiliser de versions obsolètes de logiciels avec des vulnérabilités connues, quel que soit le numéro de port qu'ils doivent écouter.

Ne pas exécuter un pot de miel sur un serveur de production
@AndrolGenhald J'aime l'idée cependant.Un attaquant essaiera 22 avant tout autre port, donc si vous voyez autant de TCP SYN, vous pouvez interdire à l'adresse IP d'accéder à n'importe quel port (de sorte que l'hôte apparaîtra mort à l'attaquant).Ou vous pouvez proxy le trafic sur le port 22 vers un serveur de pot de miel ailleurs.Je suis d'accord qu'un pot de miel à haute interaction sur prod n'est certainement pas une bonne idée.
@AndrolGenhald, n'expose pas le serveur de production nu au monde extérieur.Ensuite, avoir un pot de miel accessible sur la même IP que le serveur de production pourrait être juste une configuration de routage.
@Luc Oui, avoir quelque chose à écouter et à se connecter sur le port 22 pourrait être utile, ou le router ailleurs, mais la réponse n'explique rien de tout cela.YurySchkatula Vous devriez peut-être ajouter cela à votre réponse?
@Luc Cela semble être un bon moyen d'interdire vos administrateurs système lorsqu'ils ont un nouvel ordinateur et oublient de changer de port la première fois qu'ils essaient de se connecter.
@jpmc26 Les bons administrateurs système utilisent les fichiers `.ssh / config` ;-).Mais plus sérieusement, une bonne sécurité est rarement sans effets sur la convivialité.Où tracer la ligne entre la convivialité et la sécurité, dépend de la situation.Peut-être que la première fois, une bannière pourrait les avertir avant d'interdire?Encore une fois, cela dépend juste de la situation ...
@Luc Il existe cependant de meilleures alternatives, comme utiliser une liste blanche d'adresses IP en premier lieu (via un pare-feu), et simplement bloquer le trafic externe sur le port 22.
jpmc26
2018-07-18 08:42:33 UTC
view on stackexchange narkive permalink

Non, ce n'est pas le cas, ou si je veux être plus précis, c'est la mauvaise protection contre la menace .

Faites un pas en arrière: quelle est la menace que nous voulons protéger de? La menace contre laquelle nous essayons de nous protéger est toute personne sur Internet public qui peut contourner le mécanisme d'authentification normal. C'est ce que ces "script kiddies" essaient de faire: accéder au serveur en utilisant SSH même s'ils ne sont pas autorisés. En particulier, votre supérieur souhaite empêcher ces attaquants de pouvoir même commencer à établir une connexion SSH.

Quelle est la technologie standard pour empêcher l'établissement de connexions réseau? Un pare-feu. La réponse standard à ce problème consiste simplement à bloquer entièrement le port 22 au trafic extérieur. Le plus gros problème ici est que SSH est disponible pour l'Internet public du tout , et le pare-feu résout cela complètement, tandis que le port obscur ne le cache que légèrement et n'empêche pas réellement les connexions. Si un accès externe est requis, la réponse standard pour autoriser cet accès autorisé est un VPN dans le réseau. Cela bloquerait à la fois les script kiddies et les attaquants de connaissances qui pourraient trouver comment trouver le port que vous utilisez réellement.

Si vous perdez jusqu'à 1% des attaquants, vous perdez toujours . Vous avez besoin de protections qui fonctionnent contre 100% des attaquants. Si à la place vous bloquez avec succès 100% des attaquants (jusqu'à présent), vous devez disposer de protections plus robustes. Ces autres protections rendent le port obscur inutile, et si tel est (espérons-le) le cas, l'utilisation de l'autre port ne fait que confondre les personnes moins familiarisées avec les pratiques de sécurité réelles comme vous et, très probablement , gaspillez le temps des gens qui essaient d'obtenir un accès légitime lorsqu'ils essaient de se connecter (le nouveau système n'est pas configuré et doit demander à quelqu'un le bon port, l'administrateur a oublié de parler du port non standard à la personne et la personne doit à nouveau la déranger pour diagnostiquer le problème , etc.).

C'est pourquoi nous parlons de "la sécurité par l'obscurité" et du principe de Kerckhoffs. Nous devons éviter de nous distraire avec des pratiques qui ne nous protègent pas réellement. Nous devrions économiser du temps et des efforts pour des protections qui fonctionnent réellement et éviter le faux sentiment de «sécurité» que ces méthodes d'obscurcissement nous donnent.

Noir
2018-07-18 17:41:49 UTC
view on stackexchange narkive permalink

Je veux ajouter qu'en fin de compte, la sécurité est un jeu sur les ressources des deux côtés. Le temps est une telle ressource.

Cette mesure fait perdre du temps aux attaquants, donc ce n'est pas si grave. Vous pouvez également en savoir plus sur les ressources des attaquants lorsqu'ils se connectent toujours à votre port personnalisé. Il est peut-être plus intéressant de vous cibler en particulier.

Cependant, si cela ajoute des frais généraux importants à vos tâches administratives, vous voudrez peut-être investir votre temps ailleurs. Sinon, faites-le mais ne vous y fiez pas.

Justin
2018-07-17 09:31:10 UTC
view on stackexchange narkive permalink

L'utilisation de ports non standard pour des applications hautement vulnérables est une TRÈS BONNE pratique. SSH a beaucoup de vulnérabilités et 22 est un port par défaut courant vers la force brute.

Cela étant dit, cela dépend probablement. Il est très courant, en particulier dans un environnement d'entreprise, de voir des attaques par force brute sur des serveurs DMZ contre le port 22. De nombreuses entreprises, dans la finance par exemple, utilisent un port par défaut différent pour le trafic SSH / SFTP pour un transfert de données valide entre les organisations.

L'idée dans ce cas est plus de filtrer une partie du bruit (Port 22 Brute Forcing) afin que l'autre trafic sur un autre port soit plus facile à surveiller. Toute personne assez bonne peut trouver n'importe quel port ouvert sur un serveur connecté à Internet.

Ceci est considéré comme une forme d'atténuation ou de réduction des risques.

Edit: Je devrais ajouter: Quand je dis bien pratique, je fais référence aux bonnes pratiques sur vos appareils connectés à Internet. Tout ce qui se trouve derrière vos pare-feu est généralement sûr.

[Je ne dirais pas que openssh a ** beaucoup ** de vulnérabilités] (https://www.cvedetails.com/product/585/Openbsd-Openssh.html?vendor_id=97).Un grand nombre des problèmes signalés peuvent permettre à un utilisateur authentifié d'obtenir des privilèges, mais c'est différent de l'accès d'un attaquant distant ...
Cacher la clé de votre porte d'entrée sous le tapis n'est pas une très bonne pratique.Oui, c'est mieux que de laisser la clé dans la serrure, mais pas beaucoup mieux.La meilleure idée est d'atténuer les vulnérabilités, pas de les cacher.


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 4.0 sous laquelle il est distribué.
Loading...