Vous pouvez utiliser des numéros de port élevés en toute sécurité? (re: obscurcir les services Web)


9

J'ai un petit réseau domestique et j'essaie d'équilibrer le besoin de sécurité et de commodité. Le moyen le plus sûr de sécuriser les serveurs Web internes est de se connecter uniquement à l'aide de VPN, mais cela semble exagéré pour protéger une interface Web distante de DVR (par exemple).

En tant que compromis, serait-il préférable d'utiliser de très grands numéros de ports? (par exemple, cinq chiffres jusqu'à 65531)

J'ai lu que les scanners de ports ne scannent généralement que les 10 000 premiers ports, donc l'utilisation de numéros de port très élevés est un peu plus sécurisée.

Est-ce vrai?

Existe-t-il de meilleures façons de protéger les serveurs Web? (ie. web guis pour les applications)


Non ce n'est pas vrai. Les machines multi-cœurs modernes (même de bureau) avec accès à large bande peuvent analyser tous les 65535 ports en quelques secondes. Et même si l'attaquant a décidé de les espacer à deux par seconde pour déjouer les portes DoS, peu importe, vous laissez votre système en place plus d'une journée, non? Une vieille maxime est, comme d'autres l'ont dit ci-dessous, que la «sécurité par l'obscurité» est essentiellement inutile dans le monde numérique.
msanford

Réponses:


9

J'ai lu que les scanners de ports ne scannent généralement que les 10 000 premiers ports, donc l'utilisation de numéros de port très élevés est un peu plus sécurisée.

Beaucoup de gens le croient. Je ne.

C'est peut-être un peu plus sûr, mais pas beaucoup. Les ports peu numérotés sont plus courants, donc certains scanners y regarderont en premier.

Si j'étais un pirate, je scannerais d'abord les ports hauts, juste pour attraper les gens qui comptent sur cette méthode pour la sécurité. Les personnes qui dépendent de la sécurité par l'obscurité ont probablement une mauvaise compréhension de la sécurité et sont plus susceptibles d'oublier d'utiliser d'autres méthodes de sécurité. Par conséquent, ces services pourraient être plus vulnérables et plus faciles à casser.

Certains scanners exploitent cette croyance et commencent en haut et progressent dans la liste. D'autres analyses choisiront des ports aléatoires sur toute la plage, de sorte que tous les ports ont une chance égale d'être analysés.

Allez-y et testez-le vous-même à l'aide de NMAP . Exécutez une analyse nmap sur les ports 1 à 10 000 et recherchez un serveur HTTP, et comparez cela à une analyse qui analyse tous les ports 1-65, xxx. Vous verrez que la différence est généralement de 3 à 10 minutes. Si je fais un scan détaillé en utilisant quelque chose comme Nessus, la différence est parfois de 20 à 60 minutes.

Un bon cracker est un cracker patient. Ils attendront.


1
En supposant que toutes les autres mesures de sécurité pertinentes ont été mises en œuvre, serait-il préférable ou pire de masquer les numéros de port? Je pense que ce serait un peu mieux si le serveur n'était pas spécifiquement ciblé.
wag2639

2
+1 "Un bon cracker est un cracker patient. Ils attendront."
msanford

@ wag2639 Vous ne faites rien en modifiant le numéro de port d'un service mais en faisant en sorte qu'un script-kiddie trouve un script légèrement meilleur. Composer un bloc d'adresses IP en mode guerre et analyser AUSSI chaque port est trivial.
msanford

Si un pirate informatique poursuit une cible particulière, il peut attendre 20 à 60 minutes pour numériser des numéros de port élevés. Cependant, s'ils tentent d'analyser des centaines ou des milliers d'adresses IP pour trouver des systèmes vulnérables, ils n'analyseront pas les ports élevés. Ils doivent également savoir qu'il existe un système avant de pouvoir le cibler. Si le pare-feu fait son travail, le système est pratiquement invisible jusqu'à ce qu'il tombe sur un port ouvert.
user1751825

3

L'utilisation de numéros de port impairs n'est pas du tout une sécurité, sauf si vous êtes en train de vous permettre d'exécuter votre application en tant qu'utilisateur non root.

Ce genre de chose peut être considéré comme une sécurité par l'obscurité, mais ce n'est pas vraiment de la sécurité.


Existe-t-il des alternatives à l'utilisation d'un VPN à part entière? Peut-être une sorte de proxy Web inversé qui offre une protection supplémentaire par identifiant / mot de passe? (Squid ne fait pas ça)
SofaKng

@sofakng: vous pourriez être intéressé par un wrapper SSL comme Stunnel: stunnel.org
Maxwell

3

Vous pouvez également utiliser un tunnel ssh si vous utilisez Linux aux deux extrémités:

ssh -f -N -L 9090:localhost:9090 user@remote-host

Par exemple, c'est ce que j'utilise pour transférer le port 9090 sur l'hôte distant vers mon port local 9090 cherokee-admin, et j'utilise des configurations similaires pour d'autres interfaces graphiques Web. Vous pouvez protéger les applications de cette manière en spécifiant dans la configuration de l'application qu'elles ne s'exécutent que sur localhost, c'est-à-dire sur 127.0.0.1. De cette façon, ils ne sont pas accessibles de l'extérieur, mais vous pouvez les transmettre avec ssh. Recherchez man sshd'autres options à l'aide de la redirection de port (y compris X, ce qui pourrait résoudre votre problème d'une autre manière.)

Cela peut être un moyen approprié pour atteindre votre objectif sans installer / configurer de logiciel supplémentaire, selon votre configuration.


1

Si votre pare-feu le permet, vous pouvez d'abord effectuer l'authentification au niveau du pare-feu, si la complexité de vos mots de passe est suffisante, cela devrait assurer la sécurité des services exposés. vous pouvez également utiliser le tunneling SSL en utilisant par exemple stunnel et l'authentification mutuelle.

Compte tenu du fait que l'utilisation d'un nombre de ports plus élevé est plus sécurisée, d'une certaine manière, peut-être en référence aux bots analysant votre IP et essayant certains exploits, mais si quelqu'un veut vraiment breack, utiliser des numéros de ports plus élevés n'offrira pas une sécurité accrue.


J'utilise pfsense et certains de mes services Web prennent en charge SSL (HTTPS). Est-il encore préférable d'utiliser stunnel? L'utilisation de stunnel est-elle le niveau "authentification au niveau du pare-feu"?
SofaKng

1
Comment faites-vous "l'authentification sur le pare-feu"?
wag2639

Je ne sais pas si pfsense a cette fonctionnalité mais, sur les routeurs Junipers, vous pouvez utiliser des utilisateurs locaux (même RADIUS) pour accorder l'accès au trafic traduit HTTP. Concernant Stunnel, vous pouvez utiliser l'authentification mutuelle avec des certificats, stunnel encapsulera le trafic HTTP avec SSL et gérera l'authentification.
Maxwell
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.