Le pare-feu (ou firewall) est un élément essentiel de la sécurité informatique, en particulier sur les serveurs des entreprises. Son action est particulièrement importante pour les machines possédant une connexion à Internet.
Rappelons-nous qu'internet est un réseau de réseaux, en d'autres termes des millions de machines sont connectées entre elles et peuvent communiquer (indirectement) entre elles. Rappelons-nous aussi qu'une communication, sur un réseau, consiste à échanger des commandes puis des informations sur des « ports » et selon un ou plusieurs protocoles. Par exemple, voici résumé l'envoi d'un e-mail :
Comme nous pouvons le voir, notre ordinateur ne communique pas directement avec le destinataire de l'e-mail mais passe un par un serveur « postal ». Ce serveur est celui de votre FAI, son adresse IP est fixe et connue, ce qui en fait une cible potentielle pour des attaques. Une fois remis votre e-mail, celui-ci se chargera de le transmettre à votre destinataire, ou plutôt à celui qui conserve les e-mails de votre destinataire.
Comment protéger efficacement ce serveur d'e-mails (celui de votre FAI) pour qu'il fonctionne en permanence et ne soit pas victime des attaques par déni de service par exemple ?
Grâce à des pare-feux !
Pare-feu ou pare-balle ?
Le terme de pare-feu peut sembler un peu incongru car en réalité il s'agit plutôt de se protéger des balles de vos adversaires. Concrètement, un pare-feu est un douanier du réseau. Il est en charge d'ouvrir ou de fermer les accès à certaines machines dans un sens ou dans l'autre. Les ouvertures pourront se faire grâce à des autorisations spéciales accordées à une machine en particulier, un genre de laissez-passer ; ou bien grâce à des règles plus complexes et plus généralistes sur un ensemble de machines, de réseaux ou encore uniquement sur certains ports du serveur. Le pare-feu vérifie l'identité de la machine émettrice et ses intentions avant de la laisser communiquer avec la machine réceptrice :
Stratégie
Avant d'utiliser un pare-feu, les administrateurs des réseaux considèrent la stratégie à adopter pour protéger efficacement un serveur. Quelles sont ses fonctions ? Quels sont les ports utiles ? Quelle est la quantité de connexions attendues normalement ? Combien peut-il en supporter normalement ? Toutes ces questions (et bien d'autres) permettront de dessiner un schéma du réseau qui supportera ce serveur et ses moyens de protection.
Chez votre FAI, il est rare qu'un service comme le SMTP (protocole d'envoi et de réception des emails) mette en jeu un unique serveur. En effet, si 100 000 personnes demandaient à envoyer un email au même moment, un seul serveur croulerait sous les tâches à traiter et tomberait immédiatement en panne. Les FAI et les grandes entreprises utilisent des « fermes » de serveurs, c'est-à-dire un ensemble de 10, 50 ou 100 serveurs qui ont la même fonction, et répondent au même service. Un élément situé en amont et appelé « balance de charge » a pour rôle de distribuer les demandes des clients vers les différents serveurs de la ferme.
Une fois que cette architecture commence à se dessiner on se rend vite compte des chemins que peuvent emprunter les données : une demande d'un client arrive d'abord à la passerelle, qui transmet la communication à la balance de charge, qui transmet à un serveur de la ferme. Un bon stratège commencera par étudier les « routes » et les ports concernés pour configurer correctement les pare-feux.
Un pour tous
En règle générale un réseau comporte au moins deux pare-feux. Un premier pare-feu est situé au niveau de la passerelle. Ce pare-feu a pour objectif de vérifier les méta-données de la connexion demandée : l'adresse IP, la géo-localisation, la qualité des protocoles utilisés, etc. pour déterminer si le client est digne de confiance. Si c'est le cas, il analyse ensuite la route que la communication doit emprunter pour atteindre son objectif. Si la communication concerne le serveur d'e-mails (smtp.free.fr par exemple), la passerelle va consulter les règles pré-programmées pour déterminer quels sont les filtres à appliquer à cette communication.
Cela revient à avoir la conversation suivante avec le douanier :
- Bonjour Monsieur, je suis le Douanier Rousseau, d'où venez-vous ?
- Bonjour Monsieur Rousseau, je suis M. Perroquet Vert, je viens de chez moi
- Où allez-vous ?
- Je vais déposer un e-mail au centre postal
- Un email vous dites ? Quelle est votre destination réelle ?
- Le serveur smtp.free.fr sur le port 25
- Très bien, vous pouvez continuer
Si le client avait répondu « Le serveur smtp.free.fr sur le port 24 », le douanier lui aurait interdit le passage car sur cette passerelle on considère que seules les communications qui vont vers le serveur d'emails smtp.free.fr et qui se font sur le port 25 du protocole TCP peuvent passer, à l'exclusion de toute autre.
Tous pour un
L'autre pare-feu se situe au niveau du serveur d'e-mails lui-même. La bonne stratégie pour sécuriser un serveur avec un firewall est de refuser tous les accès pour tout le monde puis d'en autoriser seulement quelques-uns. On appelle cela le deny,accept. Si on n'accepte rien, le service d'emails ne recevra pas les demandes des clients.
C'est pourquoi l'unique stratégie sur ce serveur d'e-mails sera : « accepte les connexions entrantes sur le port 25 et le protocole TCP ». Ainsi, si le client souhaite faire une connexion sur le port 80 il ne recevra aucune réponse, le serveur l'ignorera purement et simplement, ce qui ne lui coûtera aucune ressource. De fait, même en cas d'attaque DDoS sur le port 80, il n'y aura aucun impact sur le serveur. En revanche, en cas d'attaque sur le port 25, il faudra prendre d'autres mesures.
L'analyse stateful
Ce type d'analyse consiste à mémoriser les conversations engagées avec les clients et d'étudier à la fois leur redondance mais aussi leur qualité. Par exemple si un client effectue 30 demandes par seconde sur le service d'e-mails, cela est exagéré et la communication est interrompue par le pare-feu. Une fréquence raisonnable pourrait se situer entre 5 et 10.
Attention, ce sont des exemples de réflexion que mène un administrateur car en réalité, le client pourrait très bien être une autre passerelle qui relaie des demandes pour des centaines d'autres clients et dans ce cas on pourrait dépasser facilement les 30 demandes par seconde.
L'analyse qualitative consiste à s'assurer que le client utilise bien le protocole et qu'il ne le détourne pas à des fins de nuisance. Nous avons étudié précédemment le fonctionnement d'une attaque par déni de service et nous avons vu qu'elle consistait généralement à envoyer des demandes incomplètes à un serveur en utilisant le protocole TCP (Requête de SYNchronisation). Si le pare-feu constate qu'un client a engagé un grand nombre de conversations sans jamais aller jusqu'au bout, il considèrera cela comme un risque et coupera la communication avec ce serveur.
Vous êtes banni !
Un pare-feu, quand il décide de sévir contre un client peut le faire en interrompant uniquement la communication en cours et en acceptant les suivantes, jusqu'à ce que le client dépasse à nouveau le seuil. Il peut aussi interrompre la communication et placer le client dans une liste noire pendant une durée de quelques secondes à quelques minutes. Cela suffit généralement à laisser passer un attaque. Ou bien, le client peut être totalement banni et aucune des communications futures ne sera à nouveau acceptée. Dur !
Contenu connexe : Article du 27/09/2013 "Le pare-feu (firewall), c'est quoi ?"
Laisser un commentaire