Bannissement IP : blocage d'une adresse IP considérée comme indésirable

En cybersécurité, le bannissement IP, appelé IP Banning ou IP Blocking en anglais, est une technique de sécurité consistant à empêcher une adresse IP considérée comme indésirable d'accéder à un service, une application, un serveur ou un réseau. Ce mécanisme est utilisé pour limiter certaines activités malveillantes, notamment les tentatives de connexion répétées, les attaques par force brute, les scans automatisés et certains comportements abusifs.

1. À propos du bannissement IP en cybersécurité

Le bannissement IP est un mécanisme de contrôle d'accès réseau permettant de refuser les communications provenant d'une adresse IP ou d'une plage d'adresses déterminée.

Il peut être appliqué par un pare-feu, un serveur Web, un reverse proxy, un WAF ou directement par une application.

Qu'est-ce qu'une adresse IP ?

Une adresse IP, pour Internet Protocol Address, est un identifiant utilisé pour acheminer les communications dans un réseau utilisant le protocole IP.

Il existe deux grandes versions du protocole :

  • IPv4 : adresse codée sur 32 bits, par exemple 192.0.2.15.
  • IPv6 : adresse codée sur 128 bits, par exemple 2001:db8::15.

Les adresses utilisées dans ces exemples appartiennent à des plages réservées à la documentation.

Objectifs du bannissement IP

Le blocage d'adresses IP permet notamment de :

  • Limiter les tentatives d'authentification abusives.
  • Réduire certains scans automatisés de services exposés.
  • Bloquer des sources de trafic identifiées comme malveillantes.
  • Protéger certaines interfaces administratives.
  • Réduire les abus sur des applications et des API.
  • Appliquer des politiques de filtrage réseau.

Exemple simple

Supposons qu'un serveur Web reçoive de nombreuses tentatives de connexion incorrectes depuis l'adresse IP 198.51.100.25.

Un système de sécurité peut décider de bloquer temporairement cette adresse après avoir détecté un nombre anormal d'échecs.

Les demandes ultérieures correspondant à cette adresse peuvent alors être refusées pendant une durée déterminée.

Différence entre bannissement IP et authentification

L'authentification vérifie l'identité d'un utilisateur ou d'un service.

Le bannissement IP agit sur une adresse réseau et ne permet pas, à lui seul, d'identifier de manière fiable une personne.

Plusieurs utilisateurs peuvent partager une même adresse IP publique, notamment derrière un mécanisme NAT.

Différence entre bannissement IP et limitation de débit

Le Rate Limiting limite le nombre de requêtes autorisées pendant une période donnée.

Le bannissement IP refuse les communications correspondant à une règle de blocage.

Les deux mécanismes peuvent être combinés pour renforcer la protection d'un service.

2. Fonctionnement et principaux types de bannissement IP

Le fonctionnement du bannissement IP dépend de l'équipement ou du logiciel chargé de contrôler les communications.

Étape 1 : réception d'une connexion

Un serveur ou un équipement réseau reçoit une demande provenant d'une adresse IP.

Étape 2 : identification de l'adresse source

Le système détermine l'adresse source telle qu'elle est visible au niveau du composant chargé du filtrage.

Dans une architecture utilisant un reverse proxy ou un CDN, il faut distinguer l'adresse du proxy de celle du client réel.

Étape 3 : consultation des règles de sécurité

Le système vérifie si l'adresse appartient à une liste de blocage ou satisfait une règle de filtrage.

Étape 4 : décision

Si l'adresse correspond à une règle de bannissement, la connexion ou la requête est refusée selon le mécanisme utilisé.

Étape 5 : journalisation

Le système peut enregistrer l'événement dans un journal afin de faciliter la surveillance et l'analyse des incidents.

Bannissement permanent

Le bannissement permanent bloque une adresse IP jusqu'à ce qu'une intervention ou une politique spécifique supprime la règle.

Ce type de blocage doit être utilisé avec précaution, notamment lorsque les adresses IP sont dynamiques ou partagées.

Bannissement temporaire

Le bannissement temporaire interdit l'accès pendant une durée déterminée.

Par exemple, une adresse peut être bloquée pendant 15 minutes après un nombre défini de tentatives de connexion incorrectes.

Bannissement automatique

Le bannissement automatique est déclenché lorsqu'un mécanisme de surveillance détecte un comportement correspondant à des règles prédéfinies.

Il peut s'appuyer sur les journaux, les événements d'authentification ou les systèmes de détection.

Bannissement manuel

Le bannissement manuel est effectué par un administrateur après analyse d'un incident ou d'une activité suspecte.

Blocage d'une plage IP

Le blocage peut concerner une adresse individuelle ou un réseau défini par une notation CIDR.

Par exemple, le réseau 192.0.2.0/24 représente un ensemble de 256 adresses IPv4.

Bloquer une plage entière peut affecter de nombreux utilisateurs légitimes et nécessite donc une justification appropriée.

Tableau comparatif

TypePrincipeUtilisation
PermanentBlocage sans expiration automatique.Source durablement interdite.
TemporaireBlocage pendant une durée limitée.Échecs de connexion répétés.
AutomatiqueBlocage déclenché par des règles.Détection d'abus.
ManuelDécision prise par un administrateur.Réponse à un incident.
Par plage CIDRBlocage d'un réseau entier.Filtrage de plusieurs adresses.

3. Techniques et outils de blocage des adresses IP

Plusieurs technologies permettent de mettre en œuvre un bannissement IP à différents niveaux d'une infrastructure informatique.

Blocage par pare-feu

Un pare-feu, ou Firewall, permet de filtrer les communications selon des critères comme les adresses IP, les ports et les protocoles.

Sur Linux, des outils comme nftables, iptables ou UFW permettent de définir des politiques de filtrage.

Sur Windows, le Pare-feu Microsoft Defender permet également de créer des règles de blocage.

Blocage au niveau d'un serveur Web

Des serveurs comme Apache et Nginx peuvent appliquer des restrictions d'accès en fonction des adresses IP.

Cette méthode protège les ressources HTTP concernées, sans nécessairement bloquer les autres services du serveur.

Blocage par WAF

Un WAF, ou Web Application Firewall, analyse les requêtes Web et peut appliquer des règles de blocage.

Un WAF peut également prendre en compte des éléments complémentaires, comme les caractéristiques des requêtes et certains comportements suspects.

Fail2ban

Fail2ban est un outil utilisé notamment sur Linux pour analyser des journaux et déclencher des actions de blocage lorsqu'un comportement correspond à une règle.

Il est souvent utilisé pour limiter les tentatives répétées de connexion à certains services.

Blocage par reverse proxy

Un reverse proxy peut filtrer les requêtes avant qu'elles atteignent l'application protégée.

Cette architecture permet de centraliser certaines politiques de sécurité.

Blocage dans une application Python

Une application développée avec Django, Flask ou FastAPI peut intégrer des mécanismes de filtrage des adresses IP.

Le contrôle applicatif doit cependant tenir compte des proxies, des adresses partagées et des risques de contournement.

Listes de blocage

Une Blocklist contient les adresses ou réseaux dont les communications doivent être refusées.

Elle peut être alimentée manuellement ou automatiquement.

Listes d'autorisation

Une Allowlist contient les adresses ou réseaux explicitement autorisés.

Cette méthode peut convenir à certaines interfaces administratives accessibles depuis un nombre limité de réseaux connus.

Blocage au niveau du CDN

Certains services CDN, comme Cloudflare, proposent des mécanismes de filtrage, de limitation de débit et de protection des applications Web.

Ces mécanismes peuvent bloquer ou soumettre à vérification certaines requêtes avant leur transmission au serveur d'origine.

4. Risques, limites et contournements du bannissement IP

Le bannissement IP constitue une mesure de sécurité utile, mais il possède plusieurs limites importantes.

Adresses IP dynamiques

Certains fournisseurs d'accès attribuent des adresses IP dynamiques pouvant changer au cours du temps.

Une adresse bloquée peut ultérieurement être attribuée à un autre utilisateur.

Adresses IP partagées

Plusieurs utilisateurs peuvent partager une même adresse IP publique grâce au NAT ou au CGNAT.

Un blocage peut donc affecter des utilisateurs qui n'ont participé à aucune activité malveillante.

Utilisation de VPN et de proxies

Un utilisateur peut accéder à Internet à travers un VPN ou un proxy, ce qui modifie l'adresse IP publique visible par le service.

Le bannissement d'une adresse ne garantit donc pas l'interdiction permanente d'une personne ou d'un appareil.

Réseaux anonymisants

Certains réseaux permettent d'acheminer les communications à travers plusieurs relais.

Le blocage d'une adresse de sortie ne permet pas nécessairement d'identifier l'origine réelle d'une activité.

Botnets

Un botnet peut utiliser un grand nombre d'appareils compromis possédant différentes adresses IP.

Le blocage d'une seule adresse peut donc être insuffisant contre des activités distribuées.

Faux positifs

Un faux positif se produit lorsqu'une activité légitime est considérée à tort comme malveillante.

Un utilisateur peut être bloqué après plusieurs erreurs de saisie de son mot de passe.

Risque de déni de service indirect

Des politiques de bannissement trop agressives peuvent provoquer une indisponibilité pour des utilisateurs légitimes.

Les seuils de détection et les durées de blocage doivent être choisis avec précaution.

En-têtes HTTP non fiables

Dans une application Web, l'adresse IP réelle du client peut être transmise par un proxy au moyen d'en-têtes spécifiques.

Un en-tête comme X-Forwarded-For ne doit pas être considéré comme fiable lorsqu'il provient directement d'un client non authentifié ou d'un proxy non approuvé.

IPv6

Le protocole IPv6 permet à un appareil de disposer de plusieurs adresses, dont certaines peuvent changer.

Les stratégies de blocage doivent donc être adaptées aux caractéristiques de l'environnement IPv6.

Le bannissement IP n'est pas une protection suffisante

Le bannissement IP doit être associé à d'autres mesures, notamment :

  • L'authentification multifacteur.
  • La limitation de débit.
  • La surveillance des journaux.
  • Le contrôle d'accès.
  • Les mises à jour de sécurité.
  • Les protections contre les attaques automatisées.

5. Implémentation du bannissement IP avec Python

Python permet de simuler et de développer des mécanismes de filtrage d'adresses IP. Les exemples suivants utilisent des adresses réservées à la documentation et illustrent des contrôles pédagogiques sans modifier le pare-feu du système.

Exemple 1 : vérifier si une adresse IP est bannie

Le programme suivant utilise une liste contenant des adresses IP interdites. Il vérifie si une adresse appartient à cette liste et affiche la décision correspondante.

Output :

Exemple 2 : ajouter une adresse à une liste de blocage

Le programme suivant utilise un ensemble Python pour enregistrer les adresses IP bannies. La méthode add() permet d'ajouter une nouvelle adresse sans créer de doublon.

Output :

Exemple 3 : retirer une adresse IP de la liste

Le programme suivant illustre une opération de déblocage IP. La méthode discard() retire l'adresse indiquée sans provoquer d'erreur si elle est absente.

Output :

Exemple 4 : simuler un bannissement après plusieurs échecs

Le programme suivant simule un mécanisme de bannissement automatique. Lorsqu'une adresse IP atteint un seuil de cinq tentatives de connexion incorrectes, elle est ajoutée à une liste de blocage.

Output :

Dans une application réelle, les tentatives doivent être comptabilisées pendant une période déterminée et les décisions de blocage doivent être réévaluées afin de limiter les faux positifs.

Exemple 5 : simuler un bannissement temporaire

Le programme suivant utilise le module time pour associer une date d'expiration à une adresse IP bannie. Une adresse reste bloquée tant que la durée prévue n'est pas écoulée.

Output :

Dans cet exemple, la durée du premier bannissement est de 900 secondes, soit 15 minutes.

Exemple 6 : vérifier si une adresse appartient à un réseau interdit

Le programme suivant utilise le module standard ipaddress pour déterminer si une adresse IPv4 appartient à un réseau défini en notation CIDR.

Output :

Exemple 7 : valider une adresse IPv4 ou IPv6

Le programme suivant utilise ipaddress.ip_address() pour vérifier qu'une chaîne représente une adresse IP valide. Il permet d'éviter certaines erreurs de format lors de la gestion des listes de blocage.

Output :

Exemple 8 : analyser des journaux de connexion fictifs

Le programme suivant analyse une liste fictive d'événements de connexion. Il compte les échecs par adresse IP et signale celles qui atteignent un seuil défini.

Output :

Cette simulation ne distingue pas les échecs répartis sur plusieurs jours de ceux survenant en quelques secondes. Un système réel doit utiliser des fenêtres temporelles et des mécanismes de détection adaptés.

Exemple 9 : enregistrer une liste de bannissement dans un fichier

Le programme suivant sauvegarde une liste d'adresses IP bannies dans un fichier texte. Cette technique permet de conserver les données entre plusieurs exécutions d'un programme.

Output :

Exemple 10 : lire une liste de bannissement depuis un fichier

Le programme suivant charge les adresses IP enregistrées dans un fichier texte et vérifie si une adresse particulière est présente dans cette liste.

Output :

Cette sortie suppose que le fichier créé dans l'exemple précédent est présent et contient l'adresse recherchée.

Exemple 11 : filtrer une requête dans une application Flask

Le programme suivant illustre un contrôle de bannissement IP dans une application Flask. Il utilise l'adresse réseau fournie par l'environnement serveur et refuse la requête lorsqu'elle appartient à la liste de blocage.

Output possible :

Cette réponse correspond au cas où l'adresse source de la requête figure dans la liste de blocage. Sinon, la route d'accueil renvoie le message « Bienvenue sur le serveur ».

Dans une architecture avec reverse proxy, la détermination de l'adresse réelle du client doit être configurée à partir de proxies explicitement approuvés. Il ne faut pas faire confiance aveuglément aux en-têtes HTTP fournis par le client.

6. Bonnes pratiques et applications en cybersécurité

Le bannissement IP doit être intégré dans une politique globale de sécurité afin d'éviter les blocages injustifiés et de renforcer la protection des services.

Privilégier les bannissements temporaires

Lorsqu'un comportement suspect peut être temporaire, il est souvent préférable d'utiliser un blocage limité dans le temps.

Définir des seuils adaptés

Les seuils de détection doivent tenir compte du fonctionnement normal des applications et des habitudes des utilisateurs.

Combiner bannissement et Rate Limiting

La limitation de débit permet de ralentir certaines activités automatisées avant de déclencher un éventuel blocage.

Utiliser une authentification multifacteur

La MFA renforce la protection des comptes même lorsqu'un attaquant connaît un mot de passe.

Surveiller les journaux

Les tentatives de connexion, les refus d'accès et les changements de configuration doivent être enregistrés et analysés selon les besoins.

Éviter les faux positifs

Les administrateurs doivent prévoir des mécanismes permettant de vérifier et de corriger les blocages injustifiés.

Protéger les interfaces administratives

Les interfaces sensibles peuvent être limitées à des réseaux de confiance lorsque l'architecture le permet.

Prendre en compte les proxies

Les applications situées derrière un reverse proxy doivent utiliser une configuration fiable pour déterminer les adresses IP des clients.

Gérer correctement IPv4 et IPv6

Les mécanismes de filtrage doivent prendre en charge les deux versions du protocole IP lorsque les services sont accessibles en IPv4 et en IPv6.

Éviter les blocages de réseaux trop larges

Le bannissement d'une plage d'adresses peut affecter un nombre important d'utilisateurs légitimes.

Prévoir une procédure de déblocage

Une organisation doit disposer d'une procédure permettant de retirer rapidement une adresse bloquée par erreur.

Protéger les listes de blocage

Les fichiers et bases de données contenant les règles de bannissement doivent être protégés contre les modifications non autorisées.

Utiliser Fail2ban sur Linux

Fail2ban peut être utilisé pour automatiser certaines décisions de blocage à partir de journaux.

Sa configuration doit être adaptée au service protégé et testée afin d'éviter le bannissement des administrateurs légitimes.

Utiliser le pare-feu Windows

Le Pare-feu Microsoft Defender permet de créer des règles de filtrage concernant les adresses IP distantes.

Les règles doivent être documentées et vérifiées pour éviter les interruptions de service.

Protéger les sites WordPress

Pour un site WordPress, les mécanismes de blocage IP peuvent contribuer à réduire certaines tentatives d'accès abusives.

Ils peuvent être associés à des protections du serveur, du WAF ou d'extensions de sécurité fiables.

Utiliser les protections Cloudflare

Un service comme Cloudflare peut proposer des règles de filtrage IP, des mécanismes de limitation de débit et des protections contre certaines attaques automatisées.

Le filtrage au niveau du CDN peut réduire le nombre de requêtes indésirables atteignant le serveur d'origine.

Tester les règles avant leur déploiement

Les nouvelles politiques de blocage doivent être vérifiées dans un environnement approprié avant leur application sur des services critiques.

Défense en profondeur

Le bannissement IP doit faire partie d'une stratégie de défense en profondeur combinant le contrôle d'accès, l'authentification forte, la surveillance, les mises à jour et la protection des applications.

7. À retenir

Le bannissement IP, ou IP Banning, consiste à bloquer les communications provenant d'une adresse IP ou d'une plage d'adresses considérée comme indésirable.

Il permet notamment de limiter certaines tentatives de connexion abusives, certains scans automatisés et des activités malveillantes identifiées.

Le bannissement peut être permanent, temporaire, manuel ou automatique.

Les règles peuvent être appliquées par un pare-feu, un serveur Web, un WAF, un reverse proxy ou une application.

Des outils comme Fail2ban, UFW, nftables et les protections Cloudflare peuvent contribuer à la mise en œuvre de ces mécanismes.

Python permet de créer des listes de blocage, de vérifier les adresses IP, de gérer des durées d'expiration et d'analyser des journaux de connexion.

Le module ipaddress permet notamment de manipuler les adresses IPv4, IPv6 et les réseaux définis en notation CIDR.

Le bannissement IP présente cependant des limites importantes liées aux adresses dynamiques, au NAT, aux VPN, aux proxies et aux faux positifs.

Une politique efficace doit privilégier des règles proportionnées, prévoir des procédures de déblocage et être régulièrement réévaluée.

Enfin, le bannissement IP doit être associé au Rate Limiting, à l'authentification multifacteur et à une stratégie globale de défense en profondeur.

 




Auteur : Younes Derfoufi
Lieu de travail : CRMEF OUJDA
Site Web : www.tresfacile.net
Chaine YouTube : https://www.youtube.com/user/InformatiquesFacile
Me contacter : https://www.tresfacile.net/me-contacter/


loader-image
Le prix initial était : € 11,00.Le prix actuel est : € 10,00.
Le prix initial était : € 6,00.Le prix actuel est : € 5,00.



Leave a Reply

Your email address will not be published. Required fields are marked *