Question:
Risque de sécurité de PING?
Mr. Jefferson
2011-06-08 22:31:58 UTC
view on stackexchange narkive permalink

On m'a dit que PING présente un risque de sécurité, et c'est une bonne idée de le désactiver / le bloquer sur les serveurs Web de production. Certaines recherches m'indiquent qu'il existe effectivement des risques de sécurité. Est-il courant de désactiver / bloquer PING sur des serveurs visibles publiquement? Et cela s'applique-t-il aux autres membres de la famille ICMP, comme traceroute ( wikipedia sur la sécurité)?

Je pense qu'il est plus approprié de demander quand la désactivation du ping ICMP est appropriée. Dans quel environnement de menace les réponses ping ICMP doivent-elles être désactivées? Quelles vulnérabilités l'ICMP a-t-il / pourrait-il avoir? Comment limiter l'exposition aux vulnérabilités ICMP?
Si le ping représente un risque de sécurité pour votre réseau, il présente des problèmes plus importants que la sécurité:
Huit réponses:
Thomas Pornin
2011-06-08 23:22:01 UTC
view on stackexchange narkive permalink

Le protocole ICMP Echo (généralement appelé "Ping") est généralement inoffensif. Ses principaux problèmes liés à la sécurité sont:

  • En présence de requêtes avec une fausse adresse source ("spoofing"), ils peuvent amener une machine cible à envoyer des paquets relativement volumineux à un autre hôte . Notez qu'une réponse Ping n'est pas sensiblement plus grande que la requête correspondante, donc il n'y a pas d'effet multiplicateur là-bas: cela ne donnera pas de puissance supplémentaire à l'attaquant dans le cadre d'une attaque par déni de service. Cela pourrait cependant protéger l'attaquant contre l'identification.

  • Une requête Ping honorée peut fournir des informations sur la structure interne d'un réseau. Ceci n'est pas pertinent pour les serveurs visibles publiquement, car ils sont déjà visibles publiquement.

  • Il y avait des failles de sécurité dans certaines implémentations TCP / IP répandues, où un ping malformé demande pourrait planter une machine (le "ping de la mort"). Mais ceux-ci ont été dûment corrigés au cours du siècle précédent et ne sont plus un problème.

Il est courant de désactiver ou de bloquer Ping sur des serveurs visibles publiquement - mais en étant common n'est pas la même chose qu'être recommandé . www.google.com répond aux demandes Ping; www.microsoft.com ne le fait pas. Personnellement, je recommanderais de laisser passer tous les ICMP pour les serveurs visibles publiquement.

Certains types de paquets ICMP NE DOIVENT PAS être bloqués, en particulier le message ICMP "destination inaccessible", car le blocage on rompt la découverte du chemin MTU, les symptômes étant que les utilisateurs DSL (derrière une couche PPPoE qui limite la MTU à 1492 octets) ne peuvent pas accéder aux sites Web qui bloquent ces paquets (sauf s'ils utilisent le proxy Web fourni par leur FAI) .

ce n'est pas tout à fait correct, voir la réponse d'@Ori's pour plus d'informations.
Je trouve de plus en plus difficile d'expliquer aux ingénieurs réseau la nécessité de ne pas atteindre les disques PMTU, les types squench et d'autres scénarios de «bon ICMP». Voir aussi - http://rfc-ignorant.org
@atdre Je suis d'accord qu'il y a des types qui sont nécessaires, ICMP echo / reply était vraiment là où j'allais. Les inaccessibles sont absolument nécessaires. @Thomas J'adore toujours "Mostly Harmless" (re Douglas Adams) dans n'importe quel message, c'est ce qui m'a donné envie de répondre en premier lieu.
Ping of Death est en fait un nom trompeur, car il s'agit en fait d'une attaque sur la couche IP plutôt que sur ICMP. En d'autres termes, l'attaque pourrait également viser tout autre protocole IP non filtré.
la destination inaccessible n'est pas utilisée pour le chemin MTU - la fragmentation nécessaire l'est.
Lorsque vous utilisez IPv6, vous ne devez pas bloquer la requête ping et l'écho ping car cela interrompt la prise en charge des personnes se connectant à votre serveur via teredo
google.com accepte le package ICMP oui, mais si la taille du package n'est pas modifiée!
Ori
2011-06-08 23:57:58 UTC
view on stackexchange narkive permalink

ICMP a un composant de données. Il peut être utilisé pour construire des tunnels, et ce n'est pas seulement une chose théorique, il est disponible dans la nature. Il a été découvert par plusieurs chercheurs dans le cadre de boîtes à outils de logiciels malveillants. Sans oublier qu'il existe un guide pratique sur ce sujet, sans oublier le wiki, ou le hackaday

ICMPTX utilise l'écho ICMP et la réponse ICMP . ICMP echo n'est pas toujours inoffensif, car il contient un composant de données, il peut exfiltrer des données ou être utilisé comme canal de contrôle, ou être utilisé (dans le cas d'ICMPTX) comme protocole de tunnel.

Implémentation actuelle dans la distribution, avec howto, (ICMPTX): http://thomer.com/icmptx/

Scénario d'attaque réel utilisant la transmission de données ICMP pour injection de charge utile: Open Packet Capture

Utilisation d'un protocole de transmission de données ICMP via des méthodes similaires à ICMPTX (2006) pour les chevaux de Troie C&C et Exfiltration: Network World

Veuillez citer les recherches qui ont trouvé ICMPTX dans les boîtes à outils de logiciels malveillants.
Ça fait presque une décennie, je vais voir s'il y a encore quelque chose de tangible. Pour le moment, c'est hérésie, mais j'ai travaillé avec des personnes qui avaient une expérience de première main dans certains cas précoces.
Ang Cui donnera une démo des attaques IOS utilisant ICMP comme canal de contrôle. http://www.blackhat.com/html/bh-us-11/bh-us-11-briefings.html Je ferai quelques recherches sur les frameworks d'exploit existants ce soir pour voir s'il existe une charge utile ICMP communément distribuée comme bien.
Merci. Pour plus de précisions: Ang Cui, [Killing the Myth of Cisco IOS Diversity] (http://www.blackhat.com/html/bh-us-11/bh-us-11-briefings.html): Towards Reliable, Large -Exploitation à grande échelle de Cisco IOS «Cette capacité permet à l'attaquant d'utiliser la charge utile de paquets inoffensifs, comme ICMP, comme un canal de commande et de contrôle secret.
Et si ICMP pouvait être utilisé pour tunneliser les données? Tout autre protocole réseau de votre choix peut également l'être. Le DNS peut-il aussi - allez-vous bloquer tout le trafic DNS? Alors peut HTTP - allez-vous bloquer tous les ports 80? Je pense que c'est une fausse raison pour bloquer le ping.
C'est un autre "service" qui pourrait être disponible pour un attaquant dans un scénario à plusieurs étapes. Pourquoi l'activer si vous n'en avez pas besoin?
@D.W. Vous n'allez pas autoriser le trafic DNS * dans * votre réseau, non? Vous n'envisageriez pas d'autoriser le port 80 à n'importe quel serveur arbitraire, non? De plus, s'il n'y a pas de raison opérationnelle ou d'utilisation, cela ne fait qu'agrandir la surface d'attaque inutilement.
@AviD: cependant, les paquets Ping _ sont_ utiles - ne serait-ce que comme outil de diagnostic de l'extérieur. C'est un compromis.
@D.W. le titre de la question est "Risque de sécurité de PING?" et cette réponse est un très bon point qui devrait être inclus. Bien que cela soit vrai, l'utilisation de canaux clandestins n'est pas la seule raison de bloquer ICMP (franchement, la raison la plus courante derrière le blocage d'ICMP est simplement de compliquer les tentatives de reconnaissance). De plus, je bockerais certainement DNS et HTTP ... et je le fais, à part mon proxy.
Mon point est que si vous souhaitez arrêter la communication secrète, vous devez bloquer TOUTES les communications (dans les deux sens, quel que soit le point final qui a initié la connexion). C'est clairement absurde. Il est donc stupide de bloquer le ping dans le but de bloquer la communication secrète; même après avoir bloqué le ping, les gens pourront toujours communiquer secrètement. Ce n'est pas un compromis entre la sécurité et la fonctionnalité: c'est le genre de chose qui pousse les gens à maudire les responsables de la sécurité, car cela brise les fonctionnalités sans aucun avantage perceptible en matière de sécurité.
ICMP n'est pas vraiment utile à moins que vous ne parliez quelque part dans le domaine d'un périphérique d'infrastructure réseau adjacent ou d'un périphérique de surveillance réseau à distance, et dans ce cas, j'utiliserais une technique proche de celle avec laquelle Daniel répond. Je ne pense pas qu'il devrait toujours être * complètement * désactivé, mais si ce n'est pas nécessaire, pourquoi laisser quelqu'un l'utiliser?
Je suis d'accord avec @Ori - la règle devrait être "n'autoriser que ce qui est nécessaire" pour réduire votre paysage de vulnérabilité. Limiter les canaux possibles signifie qu'il est plus facile de les surveiller.
Daniel Miessler
2011-06-10 05:20:02 UTC
view on stackexchange narkive permalink

Il est vrai qu'ICMP peut être utilisé par des attaquants pour obtenir des informations, transporter des données secrètement, etc. Il est également vrai qu'ICMP est extrêmement utile et que sa désactivation peut souvent causer des problèmes. Traceroute utilise en fait ICMP, donc interdire certains types d'ICMP le brisera.

La question met en évidence l'équilibre classique entre sécurité et fonctionnalité, et c'est à vous de déterminer combien de fonctionnalités vous êtes prêt à perdre pour gagner x niveau de sécurité.

Une recommandation est de n'autoriser que certains types (les plus couramment utilisés), et de désactiver tous les autres. Voici mes règles iptables. Gardez à l'esprit que ceux-ci sont autorisés car tout le reste est interdit par défaut.

  # Autoriser ICMP entrant: ping, découverte MTU, TTL expiré / sbin / iptables -A INPUT -i eth0 -p icmp -d $ YOURBOX --icmp-type 8/0 -j ACCEPT / sbin / iptables -A INPUT -i eth0 -p icmp -d $ YOURBOX --icmp-type 3/4 -j ACCEPTER / sbin / iptables -A INPUT -i eth0 -p icmp -d $ YOURBOX --icmp-type 11/0 -j ACCEPTER  
bonne réponse. Cependant, je ne vois pas cela comme un compromis: le blocage du ping apporte probablement tout au plus un avantage de sécurité négligeable. Bien sûr, si vous n'en avez pas besoin, allez-y et bloquez-le si vous le souhaitez (hé, les listes blanches sont meilleures que les listes noires).
Le traceroute basé sur ICMP n'est cependant pas la seule option - vous pouvez utiliser le traceroute basé sur TCP (voir 'tcptraceroute' par exemple) ou UDP (qui est le fonctionnement du tracert de Microsoft - bien que cela nécessite un ICMP entrant).Vous pouvez également mettre en liste blanche certaines cibles ICMP externes pour les tests et la gestion du réseau.
atdre
2011-06-10 08:19:07 UTC
view on stackexchange narkive permalink

Je pense que la réponse d'écho sortante est plus dangereuse que la demande d'écho entrante en raison de l'amplification ICMP (soit limiter le débit, soit refuser ce trafic). Cependant, après des décennies de réflexion sur ce sujet, j'ai conclu que ICMP est plus dangereux qu'utile, et qu'il devrait donc être bloqué dans les deux sens, avec une connexion sur le trafic sortant potentiellement usurpé.

Le meilleur de tous les mondes sont des routes nulles sur tout ce qui pourrait être avec état mais indésirable (connexions TCP) et des ACL réflexives (axées sur les performances) pour tout ce qui est avec état mais autorisé et / ou pas entièrement avec état (datagrammes UDP), tout en supprimant d'autres Types de protocoles IP, car ils ne sont pas nécessaires. IPsec AH / ESP n'est pas nécessaire, utilisez OpenVPN (ou similaire) à la place.

Après avoir bloqué le traceroute ICMP, vous devez également faire face au traceroute basé sur UDP, ainsi que des concepts technologiques tels que ceux trouvés dans le 0trace, LFT et osstmm_afd.

Même si les scans Nmap Xmas ne sont pas captés par Snort / Suricata, et encore moins par les attaques SQLi ou Javascript (dans n'importe quelle direction), nous devons reconnaître l'importance des risques liées aux attaques de sécurité des réseaux et des applications contre les infrastructures modernes. Nous devrions refuser, tester et vérifier toute sorte de trafic d'empreinte - et je ne vois pas pourquoi cela n'inclurait pas ICMP, mais en réalité cela ne démarre ni ne s'arrête là.

Christopher Alfred
2015-02-04 20:23:28 UTC
view on stackexchange narkive permalink

Ping et Traceroute sont nécessaires pour dépanner les réseaux. Avec les pare-feu et les outils de sécurité modernes, il y a très peu de chances, et presque inexistantes, que l'un ou l'autre des protocoles soit utilisé avec succès de manière malveillante.

En 1996, c'était bien sûr un problème, mais nous sommes maintenant en 2015 près de 20 ans plus tard, et le blocage de ces derniers ne fait qu'accroître considérablement les délais pour résoudre la connectivité et les performances. Réduire la capacité des équipes de niveau 1/2 à identifier et à résoudre les problèmes simples de routage et de réseau est un problème de prestation de services qui a un impact sur la satisfaction du client à l'égard des services réseau que vous fournissez.

goodguys_activate
2012-01-25 23:08:43 UTC
view on stackexchange narkive permalink

Au lieu de répondre à la question principale "Quels sont les risques de sécurité du ping", je répondrai à votre sous-question "Est-ce une bonne idée de bloquer / désactiver sur les serveurs Web de production"

Je pense que nous pouvons trouver ici un équilibre entre sécurité et utilité. Le personnel d'assistance trouve généralement le ping utile pour vérifier la latence ou la disponibilité d'un certain nœud. Le personnel de sécurité est préoccupé par de nombreux problèmes de sécurité décrits dans cette page, et sont souvent les "méchants".

Pourquoi ne pas envisager de désactiver Ping dans un format de liste blanche / liste noire, et faites-le savoir à votre assistance Personnel. Si votre public cible se trouve dans une certaine région géographique, limitez la capacité de ping en fonction de l ' allocation IP IANA

Très vrai, surtout quand on considère que l'utilité de ping est importante pour la disponibilité, celle souvent oubliée [frère de la confidentialité et de l'intégrité] (http://en.wikipedia.org/wiki/CIA_triad#Key_concepts).
Furkan Turan
2020-03-10 17:13:42 UTC
view on stackexchange narkive permalink

Après un premier accès à votre serveur, un logiciel malveillant peut utiliser le protocole ping comme moyen de communication avec son serveur de commande et de contrôle. A titre d'exemple, un shell inversé utilisant le protocole ping: https://github.com/inquisb/icmpsh

Ceci est déjà couvert par une autre réponse
Je pense que la question portait sur la question de savoir s'il y a des risques de sécurité en répondant aux pings, sans avoir un programme installé qui peut envoyer des pings.
Tomas Zubiri
2020-03-10 13:51:08 UTC
view on stackexchange narkive permalink

Dans "Exigence pour les hôtes Internet", une autorité respectée responsable de la normalisation des protocoles ICMP, TCP, IP et autres, l'IETF, spécifie que les hôtes doivent répondre aux requêtes ICMP. Donc non seulement la pratique est sûre, mais elle est considérée comme obligatoire pour se conformer à leurs normes:

Chaque hôte DOIT implémenter une fonction de serveur ICMP Echo qui reçoit les demandes d'écho et envoie les réponses d'écho correspondantes. Un hôte DEVRAIT également implémenter une interface de couche application pour envoyer une demande d'écho et recevoir une réponse d'écho, à des fins de diagnostic.

Dans le langage IETF standard, DOIT signifie que "l'élément est un absolu exigence de la spécification. " Alors que DEVRAIT signifie qu'il "peut exister des raisons valables dans des circonstances particulières d'ignorer cet élément, mais que toutes les implications doivent être comprises"

Cela signifie qu'un serveur doit répondre à une requête d'écho ICMP, mais ne peut pas leur fournir une interface utilisateur.

Le document fait référence à un vaste débat qui a eu lieu avant la date de la rédaction 1989:

"Cette disposition neutre résulte d'un passionné débat entre ceux qui estiment que l'écho ICMP à une adresse de diffusion fournit une capacité de diagnostic précieuse et ceux qui pensent qu'une mauvaise utilisation de cette fonctionnalité peut trop facilement créer des tempêtes de paquets. "

Même après des ( 2010) sur les attaques théoriques via ICMP sur RFC 5927, l'IETF n'a toujours pas rétrogradé les réponses ICMP ECHO d'un MUST à un DEVRAIT. La cible de cette RFC sont les fournisseurs et les implémenteurs d'ICMP et TCP, pas les consommateurs. Les pires scénarios décrits sont la dégradation du service.

En bref, ICMP est sûr. La désactivation n'est pas recommandée.

Si vous respectez les épaules des géants sur lesquels vous vous tenez, vous respecterez leur décision et éviterez de dévier des conventions.

«DOIT» ne signifie rien.Que va faire l'IETF si je désobéis?Ils n'ont probablement pas le budget pour engager un avocat ou un tueur à gages.De plus, une tonne de routeurs grand public ont des paramètres par défaut pour supprimer les messages ICMP entrants, et ils n'explosent pas tous non plus.
Nous parlons du groupe qui a conçu et standardisé icmp avec tcp, ip, dns, etc ... Ignorer à vos risques et périls
Cela ne répond exactement à aucun de mes points.Quel est l'inconvénient de le désactiver?Quel est l’inconvénient de la désobéissance?Vous faites comme si Internet tombait en panne, mais ce n'est pas le cas.
Je comprends votre inquiétude, c'est un appel à l'autorité, mais cela fonctionne pour moi.Je n'ai aucun intérêt à creuser plus profondément, un appel à cette autorité semble être une bonne limite de profondeur à toute recherche de ma connaissance.Et cela répond à la question initiale, est-il courant de désactiver ICMP?non, y a-t-il un risque pour ICMP?non.
La RFC est cependant notoirement ancienne.Cette réponse pourrait être améliorée avec l'ajout de https://tools.ietf.org/html/rfc5927.Il n'y a pas de changement dans le statut MUST, mais il va très loin pour décrire les risques théoriques possibles d'icmp.
J'ai ajouté un lien vers la RFC 5927 qui renvoie à plus de discussions sur les risques de sécurité que vous n'en aurez jamais besoin.
Tomas - mais vous avez écrit la fausse déclaration "ICMP est sûr" - comme toute autre chose, ce n'est pas sûr.Il présente un risque qui doit être compris dans un contexte particulier.
Nous devons être en mesure d'étiqueter au moins une chose comme sûre, sinon la réponse à toute question "Est-ce considéré comme sûr?"sera "tout a un risque".Je mets le pied sur ICMP.
Cela ne répond pas à la question et repose sur une erreur de logique massive.Et vous interprétez à tort «risque» comme «sûr».Nous n'avons *** pas *** à étiqueter * quoi que ce soit * comme «sûr».La question est littéralement "quels sont les risques?"Vous évitez complètement cela.
"Ignorez à vos risques et périls" - ok - quel péril?Quel est le risque***?
La RFC 5927 n'est *** pas *** "plus de discussion sur les risques de sécurité que vous n'en aurez jamais besoin".Il couvre légèrement une petite dimension d'un type de risque.
Peut-être qu'un compromis est de rendre tout dans un sous-réseau pingable par les hôtes virtuels ou le routeur.
La sécurité est l'absence de risques, ce sont des antonymes.Le risque de craindre les fonctionnalités sûres est que vous serez détourné des risques réels.C'est comme ces versions terribles qui génèrent 5000 avertissements, vous manquez les plus importants si vous ne pouvez pas filtrer les plus triviaux.
@TomasZubiri vous ne comprenez pas le concept de risque, et cela n'aide toujours pas à répondre à la question "quels sont les risques?"Ceci est une non-réponse.


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...