web-dev-qa-db-fra.com

Est-ce une mauvaise idée pour un pare-feu de bloquer ICMP?

Cette question a été inspirée par cette réponse qui dit en partie:

Le fichier manifeste du pare-feu générique se termine en supprimant tout ce que je n'aurais pas autorisé autrement (à part ICMP. Ne désactivez pas ICMP).

Mais, est-ce vraiment une bonne pratique pour un pare-feu d'autoriser ICMP? Quelles sont les implications pour la sécurité et y a-t-il des cas où ICMP devrait être désactivé?

104
Justin Ethier

Comparé à d'autres protocoles IP, ICMP est assez petit, mais il remplit un grand nombre de fonctions disparates. À la base, ICMP a été conçu comme mécanisme de débogage, de dépannage et de rapport d'erreurs pour IP. Cela le rend incroyablement précieux, donc il faut beaucoup de réflexion pour l'arrêter. Ce serait un peu comme virer de bord >/dev/null 2>&1 à la fin de toutes vos entrées cron.

La plupart du temps, lorsque je parle aux gens de bloquer ICMP, ils parlent vraiment de ping et de traceroute. Cela se traduit en 3 types

  • 0 - Réponse écho (réponse ping)
  • 8 - Demande d'écho (requête ping)
  • 11 - Temps dépassé

C'est 3 types sur 16. Examinons quelques autres types ICMP disponibles.

  • 4 - Source Quench (envoyé par un routeur pour demander à un hôte de ralentir ses transmissions)
  • 3 - Destination inaccessible (se compose de 16 types de messages différents allant du signalement d'un problème de fragmentation au pare-feu signalant qu'un port est fermé)

Les deux peuvent être inestimables pour assurer le bon fonctionnement des hôtes non malveillants sur un réseau. En fait, il y a deux (probablement plus mais ce sont les plus évidents pour moi) de très bons cas où vous ne pas voulez restreindre ICMP.

  • Découverte de MTU de chemin - Nous utilisons une combinaison de l'indicateur Ne pas fragmenter et du code de type 3 4 (Destination inaccessible - Fragmentation requise et DF) pour déterminer le plus petit MTU sur le chemin entre de cette façon nous évitons la fragmentation lors de la transmission.
  • Active Directory nécessite que les clients exécutent une commande ping sur les contrôleurs de domaine afin de dérouler les objets de stratégie de groupe. Ils utilisent ping pour déterminer le contrôleur "le plus proche" et si aucun ne répond, alors on suppose qu'aucun n'est suffisamment proche. La mise à jour de la politique n'a donc pas lieu.

Cela ne veut pas dire que nous devons nécessairement laisser tout ouvert pour que tout le monde puisse le voir. La reconnaissance est possible avec ICMP et c'est généralement la raison donnée pour le blocage. On peut utiliser des pings pour déterminer si un hôte est réellement activé, ou Temps dépassé (dans le cadre d'une traceroute) pour mapper les architectures réseau, ou Rory interdire une redirection (type 5 code 0) pour modifier la route par défaut d'un hôte.

Compte tenu de tout cela, mon conseil est, comme toujours, d'adopter une approche mesurée et réfléchie de vos protections. Bloquer ICMP dans son intégralité n'est probablement pas la meilleure idée, mais choisir et choisir quoi vous bloquez et vers/depuis vous obtiendrez probablement ce que vous voulez.

123
Scott Pack

ICMP existe pour une raison, et toute cette raison n'est pas ping. C'est le protocole "meta" qui est utilisé pour communiquer des messages de contrôle sur le réseau lui-même. Jetez un oeil à ICMP sur Wikipedia pour avoir une meilleure idée de ce que c'est et à quoi il sert.

D'autres messages ICMP incluent également l'hôte de destination inaccessible, la fragmentation requise, le contrôle de la congestion, TTL dépassé, les erreurs de protocole IP et un certain nombre d'autres).

Le réseau fonctionnera sans ICMP - la résilience face aux chutes de paquets est l'une des principales forces d'IP - mais il fonctionnera plus lentement, moins efficacement et sans l'avantage de ces signaux pour vous aider à diagnostiquer et résoudre les problèmes.

Les problèmes de sécurité avec ICMP sont généralement les problèmes de "divulgation d'informations" les plus nébuleux. Par exemple. Si votre routeur renvoie un message ICMP à quelqu'un, alors cette personne sait que vous avez un routeur. Peut-être que l'attaquant sachant que vous avez un routeur est quelque chose qui vous inquiète, ou plus probablement ce n'est pas le cas. Mais la recherche sur la sécurité a tendance à pécher par excès de silence juste pour être du bon côté, au cas où.

Parfois, il existe une vulnérabilité de style "ping de la mort" liée à ICMP dans un système d'exploitation. Actuellement, aucun n'existe dans les systèmes d'exploitation traditionnels. Mais encore une fois, les défenseurs de la sécurité font preuve de prudence, au cas où.

34
tylerl

Pour être honnête, il est judicieux de filtrer certains ICMP sortants à la fois au niveau du routeur et au niveau du pare-feu logiciel comme couche de sécurité supplémentaire.

Il n'est pas pertinent d'arrêter un DoS ou DDoS, mais des personnes malveillantes utilisent toujours ICMP pour essayer de récupérer autant d'informations que possible sur un réseau avant de tenter de le briser.

Je ne dis pas qu'ils utilisent UNIQUEMENT ICMP mais c'est l'un des rares types de paquets qu'ils utilisent et selon que si vous avez les portes d'inondation ouvertes, ils peuvent obtenir un grand détail d'informations en très peu de temps.

Prenez le temps de google et recherchez des informations sur la façon dont NMAP et quelques autres programmes utilisent ICMP comme l'une des ressources pour collecter des informations, puis basez vos filtres sur ce que vous jugez nécessaire pour vous protéger et protéger votre réseau.

Si possible, configurez un réseau de test interne (j'ai personnellement acheté un routeur wifi secondaire à bon marché et j'ai un PC secondaire comme pare-feu pour tester tous les paramètres de mon routeur/ipchains/pare-feu logiciel avant de les utiliser sur mon réseau principal pour mon ménage et tout client qui m'engage pour sécuriser leurs réseaux.

J'encourage fortement les gens à essayer de faire des recherches sur la numérisation de ports et comment briser les pare-feu sur leur propre réseau afin qu'ils puissent mieux se protéger et protéger toute famille qu'ils aident.

Voici quelques ressources que j'ai utilisées et référées à des amis auparavant. Sans Information Security Comment ICMP est utilisé pour la reconnaissance

Et aussi

Attaques ICMP de l'Institut InfoSec

Certaines attaques ne sont plus viables, mais il existe de nouvelles formes de Schtroumpf qui fonctionnent toujours en raison de la façon dont le programmeur a pu recoder l'attaque d'origine et changer la façon dont il fonctionne et utilise les ressources.

Creusez et Google est votre ami avec Stack Exchange et le moteur de recherche de duckduckgo est merveilleux pour les ressources que Google pourrait filtrer, soyez prudent et utilisez votre intelligence!

Je suis technicien en informatique depuis 22 ans et spécialiste de la sécurité réseau depuis 10 ans. Je suis actuellement en classe pour mon ECH et mon CPTS et je suis en train de suivre des cours de sécurité offensive à la fin de ces cours.

J'espère que cela aide et que d'autres trouvent ces informations utiles pendant que je restaure les sauvegardes que j'ai faites sur ce système et que je trouve mes autres liens et ressources à ce sujet, je mettrai à jour cette réponse.

4
brandizzle

Comme vous pouvez le voir dans la structure du protocole, tout dépend de la zone dans laquelle il est utilisé et puisque les pare-feu sont capables d'agir sur les paramètres de type et de code, vous pouvez décider de ce qui doit passer par le pare-feu ou non. De toute évidence, si le pare-feu reçoit la demande d'écho ICMP et que vous n'avez aucun problème à lui faire savoir si l'hôte de destination est actif ou non, le pare-feu doit également pouvoir laisser passer une réponse d'écho. Mais attention: les paquets ICMP doivent être soumis à DPI, c'est-à-dire qu'ils doivent être conformes aux spécifications du paquet: si un paquet ICMP est passé par le pare-feu entrant/sortant et qu'il y avait un malware sur un ou plusieurs hôtes de votre réseau, ces hôtes pouvaient acquérir des commandes à partir d'un serveur C&C et exfiltrer des informations vers ce serveur. En général, je ne pense pas qu'il soit sage de l'utiliser sur des routeurs frontaliers, mais pour les diagnostics de réseau internes, oui.

2
lone

Le blocage d'ICMP est non seulement inutile, mais dans la plupart des cas, il est également dangereux. Il y a plusieurs raisons pour lesquelles vous ne devriez pas bloquer ICMP si vous n'êtes pas absolument sûr de ce que vous faites et spécialement pourquoi vous le faites. Oui, le ping icmp peut aider les autres à "profiler" votre réseau. Mais soyons honnêtes, si vous avez ouvert un service TCP, vous serez vu. Si vous déposez des paquets, vous serez vu. Si vous répondez mal, vous serez vu. Donc, si vous croyez en théorie que vous devez masquer nos serveurs importants sur le réseau parce qu'ils les rendent plus sécurisés, alors lorsque vous bloquez votre icmp, il est plus possible que votre hôte soit une cible encore plus brillante. Il y a juste des tonnes de façons de le faire de manière incorrecte afin de rompre la découverte du chemin mtu, le contrôle de la congestion, etc. et même de faire en sorte que votre serveur se démarque de la masse. Donc, dans la cellule de noix, ne bloquez pas votre icmp si vous n'avez pas vraiment de bonnes raisons de le faire, puis faites-le avec soin et lisez les spécifications du protocole icmp afin de comprendre quoi et pourquoi vous faites ce que vous êtes. Oui, il peut être judicieux de bloquer la redirection icmp au bord de votre réseau si vous n'êtes pas sûr d'avoir de vieux noyaux. Mais d'autre part, il est juste préférable de mettre à jour vos serveurs et autres hôtes (résoudre de vrais problèmes) que de les cacher sous un tapis où quelqu'un trouvera vos bogues de toute façon.

2
Tapio Haapala