En cybersécurité, une Blacklist, également appelée liste noire ou liste de blocage, est un ensemble d'éléments explicitement interdits par une politique de sécurité. Ces éléments peuvent être des adresses IP, des noms de domaine, des adresses e-mail, des applications, des fichiers, des URL ou des identifiants. Lorsqu'un élément figure dans la Blacklist, le système peut refuser une connexion, bloquer une opération ou déclencher une mesure de sécurité.
1. À propos de la Blacklist en cybersécurité
Une Blacklist est une liste contenant des éléments qu'un système informatique doit bloquer ou traiter comme interdits selon une politique définie.
Le principe est simple : un élément présent dans la liste est refusé, tandis qu'un élément absent n'est pas bloqué par cette règle particulière.
Il est important de préciser que l'absence d'un élément dans une Blacklist ne garantit pas qu'il soit sûr ou autorisé par les autres contrôles de sécurité.
Origine du terme Blacklist
Le terme anglais Blacklist signifie littéralement liste noire.
Dans la documentation technique moderne, on utilise également l'expression Blocklist, ou liste de blocage.
Les deux termes désignent généralement le même principe : maintenir une liste d'éléments explicitement bloqués.
Pourquoi utiliser une Blacklist ?
Une Blacklist permet de renforcer la sécurité en empêchant certaines communications ou opérations considérées comme dangereuses ou non souhaitées.
Elle peut notamment servir à :
- Bloquer des adresses IP associées à des activités suspectes.
- Empêcher l'accès à des domaines identifiés comme malveillants.
- Filtrer des messages indésirables.
- Interdire l'exécution de certains programmes.
- Bloquer des URL utilisées pour le phishing.
- Limiter les connexions automatisées abusives.
- Appliquer une politique de sécurité sur un réseau ou une application.
Exemple simple
Supposons qu'un serveur Web utilise une Blacklist contenant les adresses IP suivantes :
- 192.0.2.10
- 198.51.100.25
- 203.0.113.15
Lorsqu'une connexion provient de l'une de ces adresses, le serveur peut la refuser selon la politique de filtrage configurée.
Les adresses utilisées dans cet exemple appartiennent à des plages réservées à la documentation.
Blacklist et contrôle d'accès
Une Blacklist constitue un mécanisme de contrôle d'accès fondé sur l'interdiction explicite de certains éléments.
Elle peut être utilisée conjointement avec d'autres mécanismes comme les ACL, les pare-feu, les systèmes de détection d'intrusion et les politiques d'authentification.
Blacklist et cybersécurité défensive
Dans une architecture de défense en profondeur, les Blacklists peuvent constituer une couche supplémentaire de protection.
Elles ne doivent cependant pas être considérées comme une solution de sécurité suffisante à elles seules.
2. Fonctionnement et principes des listes noires
Le fonctionnement d'une Blacklist repose sur la comparaison d'un élément avec une liste de références interdites.
Étape 1 : identification de l'élément
Le système identifie l'élément concerné par une opération : adresse IP, nom de domaine, URL, fichier ou application.
Étape 2 : consultation de la Blacklist
Le système consulte la liste de blocage configurée.
Étape 3 : recherche de correspondance
L'élément est comparé aux entrées de la Blacklist.
Étape 4 : application de la décision
Si une correspondance est trouvée, le système applique la règle prévue, par exemple le refus de connexion ou le blocage de l'accès.
Étape 5 : journalisation
Le système peut enregistrer l'événement afin de faciliter la surveillance et l'analyse des incidents.
Blacklist statique
Une Blacklist statique est constituée d'éléments ajoutés et retirés manuellement ou selon des procédures administratives.
Elle convient notamment aux politiques de sécurité relativement stables.
Blacklist dynamique
Une Blacklist dynamique peut être mise à jour automatiquement en fonction de nouveaux événements ou de sources de renseignements sur les menaces.
Elle peut par exemple intégrer temporairement une adresse IP après la détection de comportements abusifs.
Blacklist temporaire
Une liste de blocage temporaire contient des éléments interdits pendant une durée déterminée.
Cette approche peut être utilisée pour limiter certaines activités suspectes sans imposer un blocage permanent.
Blacklist permanente
Une liste de blocage permanente conserve les éléments interdits jusqu'à leur suppression explicite.
Elle nécessite une gestion attentive afin d'éviter les blocages devenus inutiles.
Critères d'ajout dans une Blacklist
Un élément peut être ajouté à une Blacklist après :
- La détection d'une activité suspecte.
- L'identification d'un domaine malveillant.
- La détection d'un fichier dangereux.
- Une décision administrative.
- Une alerte issue d'un système de sécurité.
- Une information provenant d'une source de Threat Intelligence.
Importance des mises à jour
Les Blacklists doivent être régulièrement révisées, car les adresses IP, les domaines et les infrastructures peuvent changer de propriétaire ou d'utilisation.
Une entrée ancienne peut devenir obsolète et provoquer un blocage injustifié.
Faux positifs et faux négatifs
Un faux positif apparaît lorsqu'un élément légitime est bloqué à tort.
Un faux négatif apparaît lorsqu'un élément malveillant n'est pas détecté ou bloqué.
La qualité d'une Blacklist dépend donc de la fiabilité de ses sources, de sa mise à jour et de la précision de ses règles.
3. Les différents types de Blacklists
Les Blacklists peuvent être utilisées à différents niveaux d'une infrastructure informatique.
Blacklist d'adresses IP
Une IP Blacklist contient des adresses IP ou des plages réseau dont les communications doivent être bloquées.
Elle peut être utilisée par un pare-feu, un serveur Web ou un système de protection applicative.
Blacklist de noms de domaine
Une Domain Blacklist contient des noms de domaine considérés comme interdits.
Elle peut être utilisée dans les systèmes de filtrage DNS ou les passerelles de sécurité.
Blacklist d'URL
Une URL Blacklist contient des adresses de pages ou de ressources Web à bloquer.
Elle peut servir à limiter l'accès à des pages de phishing ou à d'autres contenus interdits.
Blacklist d'adresses e-mail
Une Email Blacklist contient des adresses ou des domaines de messagerie soumis à des restrictions.
Elle peut contribuer au filtrage des messages indésirables.
DNS Blacklist
Une DNSBL, ou DNS-based Blackhole List, est un mécanisme permettant de publier ou de consulter des informations de blocage au moyen du DNS.
Il est notamment utilisé dans certains systèmes de filtrage de messagerie.
Blacklist de fichiers malveillants
Une Blacklist peut contenir des empreintes cryptographiques de fichiers identifiés comme malveillants.
Les systèmes de sécurité peuvent comparer les empreintes de fichiers avec ces références.
Blacklist d'applications
Une Application Blacklist permet d'interdire l'exécution ou l'installation de certains logiciels.
Elle peut être utilisée dans les environnements professionnels ou éducatifs.
Blacklist d'utilisateurs
Une application peut maintenir une liste de comptes suspendus ou interdits d'accès.
Ces restrictions doivent être gérées selon des règles claires et des procédures appropriées.
Blacklist de ports ou de protocoles
Une politique réseau peut interdire certaines communications selon les ports ou les protocoles utilisés.
Ces restrictions sont généralement appliquées par des règles de pare-feu ou des listes de contrôle d'accès.
Tableau comparatif
| Type | Éléments bloqués | Application |
|---|---|---|
| IP Blacklist | Adresses IP ou réseaux. | Pare-feu, serveurs. |
| Domain Blacklist | Noms de domaine. | Filtrage DNS. |
| URL Blacklist | Adresses Web. | Proxy, filtrage Web. |
| Email Blacklist | Adresses de messagerie. | Antispam. |
| File Blacklist | Empreintes de fichiers. | Antimalware. |
| Application Blacklist | Logiciels interdits. | Contrôle applicatif. |
| User Blacklist | Comptes utilisateurs. | Gestion des accès. |
4. Différences entre Blacklist, Whitelist et Greylist
Les termes Blacklist, Whitelist et Greylist correspondent à différentes stratégies de filtrage et de contrôle.
Blacklist
Une Blacklist interdit explicitement certains éléments.
Les éléments absents de la liste ne sont pas bloqués par cette règle, mais peuvent être refusés par d'autres mécanismes de sécurité.
Whitelist
Une Whitelist, également appelée Allowlist ou liste d'autorisation, contient les éléments explicitement autorisés.
Dans une politique fondée sur une liste d'autorisation, les éléments absents de cette liste sont généralement refusés.
Greylist
Une Greylist, ou liste grise, peut désigner un ensemble d'éléments soumis à un traitement intermédiaire.
Dans le domaine de la messagerie, le Greylisting consiste notamment à refuser temporairement certaines tentatives de livraison afin d'observer si le serveur expéditeur effectue une nouvelle tentative conforme au fonctionnement normal du protocole.
Tableau comparatif
| Critère | Blacklist | Whitelist | Greylist |
|---|---|---|---|
| Principe | Bloquer les éléments listés. | Autoriser les éléments listés. | Appliquer un traitement intermédiaire. |
| Éléments non listés | Non bloqués par cette règle. | Généralement refusés. | Dépend de la politique. |
| Utilisation | Blocage de menaces connues. | Contrôle strict des accès. | Filtrage conditionnel. |
| Limite | Ne bloque pas les menaces inconnues. | Nécessite une gestion des autorisations. | Peut introduire des délais. |
Quelle approche choisir ?
Le choix dépend du contexte et du niveau de sécurité recherché.
Une Blacklist convient lorsqu'il est nécessaire d'interdire des éléments identifiés.
Une Whitelist convient lorsqu'une organisation souhaite n'autoriser qu'un ensemble précisément défini d'éléments.
Une Greylist peut être utile lorsque la politique prévoit un traitement temporaire ou une vérification supplémentaire.
Combinaison des approches
Une organisation peut utiliser simultanément plusieurs mécanismes.
Par exemple, un serveur peut autoriser uniquement certains réseaux administratifs tout en maintenant une liste de blocage supplémentaire pour d'autres services.
5. Applications pratiques des Blacklists en cybersécurité
Les Blacklists sont utilisées dans de nombreux systèmes de protection informatique.
Blacklists dans les pare-feu
Un pare-feu peut utiliser des règles de blocage pour refuser des communications provenant de certaines adresses IP ou dirigées vers certains services.
Blacklists dans les serveurs Web
Un serveur Web peut bloquer des clients identifiés comme abusifs.
Cette protection peut être mise en œuvre au niveau du serveur, d'un proxy inverse ou d'un pare-feu applicatif.
Blacklists dans les WAF
Un Web Application Firewall, ou WAF, peut utiliser des listes de blocage et d'autres règles pour filtrer certaines requêtes HTTP.
Blacklists dans Cloudflare
Les mécanismes de sécurité de Cloudflare peuvent permettre de définir des règles de filtrage selon des critères comme les adresses IP, les pays ou d'autres caractéristiques des requêtes, selon les fonctionnalités disponibles.
Ces règles peuvent contribuer à limiter certains trafics abusifs.
Blacklists dans WordPress
Un site WordPress peut utiliser des mécanismes de blocage pour limiter les connexions suspectes, le spam ou certaines requêtes indésirables.
Les protections peuvent être assurées par l'hébergement, un WAF ou des extensions de sécurité.
Blacklists dans les systèmes de messagerie
Les serveurs de messagerie peuvent consulter des listes de réputation pour filtrer certains messages ou appliquer des contrôles supplémentaires.
Une adresse IP figurant dans une liste de réputation ne signifie pas nécessairement que tous les messages provenant de cette adresse sont malveillants.
Blacklists dans les antivirus
Les logiciels de sécurité peuvent utiliser des signatures, des empreintes ou des indicateurs connus pour identifier certains fichiers malveillants.
Ces mécanismes sont généralement associés à d'autres techniques de détection.
Blacklists dans les entreprises
Une organisation peut interdire certains logiciels, domaines ou services selon ses politiques de sécurité.
Les restrictions doivent être documentées et adaptées aux besoins professionnels.
Blacklists dans les établissements scolaires
Dans un établissement scolaire, des mécanismes de filtrage peuvent être utilisés pour limiter l'accès à certains contenus ou services.
Ils doivent être configurés en tenant compte des objectifs pédagogiques et des règles applicables.
Threat Intelligence
La Threat Intelligence, ou renseignement sur les menaces, peut fournir des informations sur des infrastructures, des domaines ou des fichiers associés à des activités malveillantes.
Ces informations peuvent contribuer à alimenter des listes de blocage.
Limites des Blacklists
Les Blacklists présentent plusieurs limites :
- Elles peuvent devenir obsolètes.
- Elles ne détectent pas nécessairement les menaces inconnues.
- Elles peuvent produire des faux positifs.
- Elles peuvent être contournées lorsque les attaquants changent d'infrastructure.
- Elles nécessitent une maintenance régulière.
- Elles ne remplacent pas les autres contrôles de sécurité.
6. Création et gestion d'une Blacklist avec Python
Python permet de créer et de manipuler des listes de blocage afin de comprendre leur fonctionnement.
Les exemples suivants utilisent des données fictives et ne modifient aucune règle de pare-feu réelle.
Exemple 1 : créer une Blacklist d'adresses IP
Le programme suivant crée une liste d'adresses IP interdites et vérifie si une adresse particulière y figure.
1 2 3 4 5 6 7 8 9 10 | blacklist = [ "192.0.2.10", "198.51.100.25", "203.0.113.15" ] ip = "198.51.100.25" if ip in blacklist: print("Connexion bloquée") else: print("Connexion non bloquée par la Blacklist") |
Output :
1 | Connexion bloquée |
Exemple 2 : ajouter une adresse IP à une Blacklist
Le programme suivant utilise la méthode append() pour ajouter une nouvelle adresse IP à la liste de blocage.
1 2 3 4 | blacklist = ["192.0.2.10"] nouvelle_ip = "203.0.113.20" blacklist.append(nouvelle_ip) print(blacklist) |
Output :
1 | ['192.0.2.10', '203.0.113.20'] |
Exemple 3 : supprimer une adresse IP d'une Blacklist
Le programme suivant utilise la méthode remove() pour retirer une adresse IP précédemment bloquée.
1 2 3 | blacklist = ["192.0.2.10", "203.0.113.20"] blacklist.remove("192.0.2.10") print(blacklist) |
Output :
1 | ['203.0.113.20'] |
Exemple 4 : vérifier plusieurs connexions
Le programme suivant parcourt une liste de connexions fictives et indique si chacune est bloquée par la Blacklist.
1 2 3 4 5 6 7 8 9 10 11 | blacklist = ["192.0.2.10", "198.51.100.25"] connexions = [ "192.0.2.10", "203.0.113.30", "198.51.100.25" ] for ip in connexions: if ip in blacklist: print(ip, ": BLOQUEE") else: print(ip, ": NON BLOQUEE") |
Output :
1 2 3 | 192.0.2.10 : BLOQUEE 203.0.113.30 : NON BLOQUEE 198.51.100.25 : BLOQUEE |
Exemple 5 : créer une Blacklist de noms de domaine
Le programme suivant vérifie si un nom de domaine appartient à une liste de domaines interdits.
1 2 3 4 5 6 7 8 9 | domaines_interdits = [ "exemple-malware.test", "exemple-phishing.test" ] domaine = "exemple-phishing.test" if domaine in domaines_interdits: print("Domaine bloqué") else: print("Domaine non bloqué") |
Output :
1 | Domaine bloqué |
Les noms utilisés sont fictifs et servent uniquement à illustrer le fonctionnement d'une liste de blocage.
Exemple 6 : créer une Blacklist d'adresses e-mail
Le programme suivant vérifie si une adresse e-mail figure dans une liste d'expéditeurs interdits.
1 2 3 4 5 6 7 8 9 | emails_interdits = [ "spam@example.com", "fraude@example.net" ] expediteur = "spam@example.com" if expediteur in emails_interdits: print("Message refusé") else: print("Message non bloqué") |
Output :
1 | Message refusé |
Exemple 7 : détecter automatiquement des IP à bloquer
Le programme suivant analyse le nombre d'échecs d'authentification associés à plusieurs adresses IP fictives. Il ajoute à la Blacklist celles qui atteignent un seuil de cinq échecs.
1 2 3 4 5 6 7 8 9 10 11 | echecs = { "192.0.2.10": 2, "198.51.100.25": 7, "203.0.113.15": 5 } blacklist = [] seuil = 5 for ip, nombre in echecs.items(): if nombre >= seuil: blacklist.append(ip) print("Blacklist :", blacklist) |
Output :
1 | Blacklist : ['198.51.100.25', '203.0.113.15'] |
Dans un système réel, il est préférable de prévoir des blocages temporaires, des contrôles supplémentaires et des mécanismes de prévention des faux positifs.
Exemple 8 : enregistrer une Blacklist dans un fichier
Le programme suivant enregistre les adresses IP d'une Blacklist dans un fichier texte nommé blacklist.txt.
1 2 3 4 5 | blacklist = ["192.0.2.10", "198.51.100.25"] with open("blacklist.txt", "w", encoding="utf-8") as fichier: for ip in blacklist: fichier.write(ip + "\n") print("Blacklist enregistrée dans blacklist.txt") |
Output :
1 | Blacklist enregistrée dans blacklist.txt |
Exemple 9 : charger une Blacklist depuis un fichier
Le programme suivant lit le fichier blacklist.txt créé précédemment et reconstruit la liste des adresses IP bloquées.
1 2 3 | with open("blacklist.txt", "r", encoding="utf-8") as fichier: blacklist = [ligne.strip() for ligne in fichier if ligne.strip()] print("Blacklist chargée :", blacklist) |
Output :
1 | Blacklist chargée : ['192.0.2.10', '198.51.100.25'] |
Exemple 10 : bloquer une plage d'adresses IP
Le programme suivant utilise le module ipaddress pour vérifier si une adresse IP appartient à un réseau interdit.
1 2 3 4 5 6 7 | import ipaddress reseau_interdit = ipaddress.ip_network("192.0.2.0/24") adresse = ipaddress.ip_address("192.0.2.45") if adresse in reseau_interdit: print("Adresse IP bloquée") else: print("Adresse IP non bloquée") |
Output :
1 | Adresse IP bloquée |
Exemple 11 : créer une Blacklist temporaire
Le programme suivant associe une date d'expiration fictive à une adresse IP. Il vérifie si le blocage est encore actif à l'instant considéré.
1 2 3 4 5 6 7 8 9 10 | blacklist = { "192.0.2.10": 1500, "198.51.100.25": 2500 } instant_actuel = 2000 for ip, expiration in blacklist.items(): if instant_actuel < expiration: print(ip, ": blocage actif") else: print(ip, ": blocage expiré") |
Output :
1 2 | 192.0.2.10 : blocage expiré 198.51.100.25 : blocage actif |
Exemple 12 : supprimer les entrées expirées
Le programme suivant parcourt une Blacklist temporaire et conserve uniquement les adresses IP dont le blocage n'a pas encore expiré.
1 2 3 4 5 6 7 8 9 10 11 | blacklist = { "192.0.2.10": 1500, "198.51.100.25": 2500, "203.0.113.15": 3000 } instant_actuel = 2000 blacklist_active = {} for ip, expiration in blacklist.items(): if expiration > instant_actuel: blacklist_active[ip] = expiration print(blacklist_active) |
Output :
1 | {'198.51.100.25': 2500, '203.0.113.15': 3000} |
Exemple 13 : comparer une Blacklist et une Whitelist
Le programme suivant illustre la différence entre une liste de blocage et une liste d'autorisation. Une adresse figurant dans la Blacklist est refusée. Une adresse figurant dans la Whitelist est autorisée. Les autres adresses sont soumises à une politique par défaut.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | blacklist = ["192.0.2.10"] whitelist = ["198.51.100.25"] adresses = [ "192.0.2.10", "198.51.100.25", "203.0.113.30" ] for ip in adresses: if ip in blacklist: print(ip, ": REFUSE") elif ip in whitelist: print(ip, ": AUTORISE") else: print(ip, ": POLITIQUE PAR DEFAUT") |
Output :
1 2 3 | 192.0.2.10 : REFUSE 198.51.100.25 : AUTORISE 203.0.113.30 : POLITIQUE PAR DEFAUT |
Exemple 14 : journaliser un blocage
Le programme suivant utilise le module logging pour enregistrer un événement de blocage dans un fichier local.
1 2 3 4 5 6 7 8 9 | import logging logging.basicConfig( filename="blacklist.log", level=logging.WARNING, format="%(asctime)s - %(levelname)s - %(message)s" ) ip = "192.0.2.10" logging.warning("Connexion bloquée : %s", ip) print("Événement enregistré dans blacklist.log") |
Output :
1 | Événement enregistré dans blacklist.log |
Exemple 15 : créer une fonction de contrôle d'accès
Le programme suivant définit une fonction qui vérifie si une adresse IP figure dans une Blacklist et renvoie une décision de blocage.
1 2 3 4 5 6 7 | def verifier_ip(ip, blacklist): if ip in blacklist: return "ACCES REFUSE" return "NON BLOQUE PAR LA BLACKLIST" blacklist = ["192.0.2.10", "198.51.100.25"] print(verifier_ip("192.0.2.10", blacklist)) print(verifier_ip("203.0.113.30", blacklist)) |
Output :
1 2 | ACCES REFUSE NON BLOQUE PAR LA BLACKLIST |
Cette fonction illustre une décision logique. Elle ne modifie pas les règles réseau et ne constitue pas un pare-feu réel.
7. À retenir
Une Blacklist est une liste d'éléments explicitement interdits par une politique de sécurité.
Elle peut contenir des adresses IP, des domaines, des URL, des adresses e-mail, des applications ou des empreintes de fichiers.
Les Blacklists peuvent être statiques, dynamiques, temporaires ou permanentes.
Leur fonctionnement repose sur la comparaison d'un élément avec une liste de références interdites.
La Whitelist suit une approche différente en définissant les éléments explicitement autorisés.
La Greylist permet d'appliquer un traitement intermédiaire ou conditionnel selon le contexte.
Les Blacklists sont utilisées dans les pare-feu, les WAF, les serveurs de messagerie, les antivirus et les systèmes de filtrage Web.
Python permet de créer, modifier, enregistrer et analyser des listes de blocage.
Les faux positifs, les faux négatifs et l'obsolescence des entrées constituent des limites importantes.
Enfin, les Blacklists doivent être intégrées dans une stratégie globale de défense en profondeur et associées à d'autres mécanismes de sécurité.
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/



