Interrogation d'une blacklist DNS

Les blacklists, ou listes noires, sont des listes d'entités (concrètes ou virtuelles) jugées indésirables. Pour exemple, en Europe nous avons accès à une liste noir de compagnies d'aviation dites dangereuses.

Dans le monde informatique la notion de blacklist est très présente. On peut en trouver sur l'ensemble des services nécessitants un contrôle d'accès. Un domaine ou les blacklists se sont fortement développées est la messagerie (email).

En effet, le spam/pourriel reste un fléau majeur de l'Internet. Le développement des blacklists est apparu comme nécessaire pour essayer de contrôler la bonne ou mauvaise réputation d'une source.

DNS ? (Domain Name System)

L'interrogation des blacklists disponibles sur internet, gratuitement ou pas, se basent majoritairement sur le protocole de résolution de noms - DNS.

Ainsi, chaque IP indésirable aura une résolution sur le serveur DNS de la blacklist consulté et à l'inverse les IP "saines" n'apparaîtront pas.

comment interroger une blacklist

La première solution pour occasionnellement vérifier une IP est d'utiliser des sites spécialisés. Voici les deux premiers résultats d'une recherche Google sur "blacklist DNS".

Ces sites vous permettent de vérifier une vingtaine de blacklists à partir d'une IP. Cependant, si vous souhaitez consulter une blacklist sans passer par un tiers, ou si vous souhaitez automatiser le processus. Une simple requête DNS suffit.

Pour cela, il faut inverser l'IP recherchée (la lecture DNS s'effectue de droite à gauche) et ajouter à la fin le nom de domaine de la blacklist. Ainsi pour l'IP "1.2.3.4", on obtient "4.3.2.1.nomdomaineblacklist.org".

Le résultat de la requête sera soit vide, si l'IP est saine, soit un code réponse, si elle est "blacklistée". Le code réponse le plus commun est "127.0.0.2".

Pour effectuer cette requête, vous pouvez utiliser des commandes systèmes, comme nslookup. Pour l'automatisation, la grande majorité des langages de programmations permettent de le faire rapidement et facilement.

exemple de mon crû

Voici, sans prétention un rapide exemple en Python :


import socket
import string

# Permet de donner un IP
print("Entrer une IP : X.X.X.X ")
ip=raw_input()

# Met en forme l'IP pour la résolution (inversement + nom de domaine de la Blacklist)
ip_inverse = string.split(ip, ".")
ip_inverse.reverse()
ip_bl = string.join(ip_inverse, ".")
ip_bl += ".zen.spamhaus.org"

#Essaye la résolution :
# S'il y a une réponse l'IP est blacklistée

try :
   socket.gethostbyname(ip_bl)
   print " l'ip : ", ip ," est blacklistée"

#Sinon l'IP ne l'est pas
except socket.gaierror , e :
   print " l'ip : ", ip ," n'est pas blacklistée"

*La Blacklist testé ci-contre est : Spamhaus -- www.spamhaus.org

Bruno

crédit photo : Gina Sanders - Fotolia.com

Bruno Deloge

Étudiant en apprentissage, je travaille depuis plus de 2 ans au sein des équipes Sécurité d'Orange Business. Passionné d'informatique, je m'efforcerai au travers de mes articles de vous transmettre mes découvertes, mes interrogations ou toutes choses dignes d'intérêt rencontrées aux grés de mes nouvelles expériences ou pérégrinations sur la toile.

Edit de l'équipe Orange Business : Bruno a quitté le groupe Orange depuis ses derniers articles.