Comment bloquer des centaines de milliers de sites de phishing avec une seule ligne de code

La plupart des sites de phishing ne vivent que quelques jours. Les escrocs enregistrent un domaine avec un nom similaire à un service populaire, volent des clés privées ou des données de cartes à quelques dizaines d'utilisateurs inattentifs, puis passent à l'adresse suivante. Les bases de données antivirus traditionnelles sont souvent en retard au stade de l'analyse, alors que les principaux dommages sont déjà causés.
Récemment, je suis tombé sur le projet open-source Destroylist par l'équipe PhishDestroy. Ce n'est pas simplement une autre liste d'adresses malveillantes, mais un système complet de collecte de menaces qui recherche automatiquement les arnaques, vérifie le contenu, signale les violations aux registrars et propose des flux prêts à l'emploi dans tous les formats possibles.
Ce qu'il contient et à qui c'est destiné
La base de données du projet contient plus de 888 000 domaines suivis. Parmi eux, environ 180 000 figurent dans la liste principale des ressources de phishing vérifiées. Le projet collecte des données à partir de 13 sources grâce à ses propres parseurs, en filtrant constamment les faux positifs.

Le flux est utile dans quatre scénarios clairs :
- Configuration d'un serveur DNS domestique ou de bureau via Pi-hole, AdGuard Home ou Unbound.
- Validation des liens dans les services web, les bots de messagerie ou les portefeuilles crypto avant de rediriger l'utilisateur.
- Enrichissement des données dans un SOC ou les outils de recherche OSINT.
- Entraînement de vos propres modèles de filtrage de trafic.
Des flux pour tous les goûts et Redis rapide
L'une des fonctionnalités intéressantes du dépôt est que les auteurs se soucient de la façon dont vous allez récupérer les données. Vous n'aurez pas besoin d'écrire des parseurs pour nettoyer les logs ou transformer du JSON à la volée. Le répertoire du projet contient des fichiers prêts à l'emploi pour différents outils :
- Hosts (pour Pi-hole,
/etc/hostsou Windows) - AdBlock (pour uBlock Origin et AdGuard)
- Dnsmasq
- Unbound (pour pfSense et OPNsense)
- RPZ (pour BIND et Knot DNS)
- Redis
Si vous avez besoin de charger un flux à jour dans Redis pour des recherches O(1), le dépôt inclut une ligne prête à l'emploi :
curl -s https://cdn.jsdelivr.net/gh/phishdestroy/destroylist@main/rootlist/formats/primary/redis.txt | redis-cli --pipe
Après avoir exécuté cette commande, vérifier une adresse sur evil-domain.com devient une opération instantanée :
SISMEMBER destroylist:primary evil-domain.com
Toutes les listes sont disponibles directement sur GitHub ainsi que via le CDN jsDelivr. La deuxième option est préférable car les requêtes fréquentes vers les fichiers GitHub bruts peuvent facilement entraîner une erreur 429.
Vérification du contenu HTTP et le problème du cloaking
De nombreux créateurs de listes noires se limitent à la résolution DNS. Si un domaine répond au ping ou renvoie une adresse IP, il est considéré comme actif. Mais les attaquants utilisent souvent le cloaking : si un bot de recherche ou un scanner de sécurité automatisé visite le site, il obtient une page vide ou un placeholder. Le contenu de phishing réel n'est affiché qu'aux vrais utilisateurs avec les bons en-têtes HTTP et la géolocalisation.
Destroylist dispose d'un flux séparé avec vérification HTTP. Les scripts du projet ne se contentent pas de vérifier les enregistrements DNS — ils effectuent de vraies requêtes HTTP toutes les 12 heures et analysent le contenu des pages.
Si une page de phishing est réellement servie en ce moment, le domaine est ajouté à content_active.json. Cependant, les auteurs mettent en garde honnêtement : si un site n'est pas dans la liste vérifiée par contenu, cela ne signifie pas qu'il est sûr. En raison du cloaking, il est plus logique d'utiliser la liste complète.
API Threat Intelligence gratuite
Si vous ne souhaitez pas stocker une base de données locale ou mettre à jour régulièrement des fichiers texte, le projet dispose d'une API REST publique. Elle est entièrement gratuite, ne nécessite aucune inscription ni aucune clé API.
La fonctionnalité spéciale de l'API est le calcul du score de risque de 0 à 100 points. La note est formée à partir d'une combinaison de facteurs :
- Présence dans la liste principale du projet (+40 points)
- Activité DNS confirmée (+30 points)
- Signalements de la communauté (+20 points)
- Mots-clés suspects comme airdrop, wallet, metamask (+5 points chacun)
- TLDs risqués comme
.xyz,.top,.club(+5 points)
Vous pouvez vérifier un domaine via cURL avec une seule commande :
curl "https://api.destroy.tools/v1/check?domain=suspicious-site.xyz"
La réponse est un JSON transparent avec le niveau de menace (sévérité) et les points obtenus :
{
"domain": "suspicious-site.xyz",
"threat": true,
"risk_score": 85,
"severity": "critical"
}
Pour les vérifications par lots, il existe un point de terminaison POST à /v1/check/bulk qui accepte jusqu'à 500 domaines par requête. C'est pratique si vous filtrez des entrées utilisateur ou traitez des logs entrants par lots.
Exemple Python pour les vérifications régulières :
import requests
def check_domain(domain: str) -> bool:
response = requests.get(f"https://api.destroy.tools/v1/check?domain={domain}")
if response.status_code == 200:
data = response.json()
return data.get("threat", False)
return False
if check_domain("suspicious-site.xyz"):
print("Внимание! Домен находится в черном списке.")
Lutter contre les registrars et automatisation
Destroylist est intéressant non seulement en tant que base de données, mais aussi en tant que précédent dans la lutte automatisée contre les abus. Les auteurs du projet ont développé un pipeline qui, après la détection d'une menace, génère des preuves (captures d'écran, dumps de trafic, dumps WHOIS) et envoie des plaintes officielles aux fournisseurs d'hébergement, aux registrars et à plus de 50 services de sécurité, notamment Google Safe Browsing, VirusTotal, Cloudflare et Microsoft Security.
Le dépôt maintient de manière transparente un historique de tous les abus soumis. Le projet publie des rapports sur les registrars qui ignorent les exigences de l'ICANN et ne répondent pas à des dizaines de rapports d'abus pendant des mois.
Si un domaine légitime a été accidentellement pris dans le balayage, il existe un formulaire d'appel sur le site web et des Issues GitHub publiques. Les auteurs traitent rapidement les demandes et ajoutent les adresses corrigées au fichier allowlist.json.

Réflexions finales
Destroylist est un outil open-source mature (licence MIT) avec une fréquence de mise à jour élevée. Grâce à sa structure d'export flexible, il est facile à intégrer aussi bien dans un Pi-hole domestique que dans un service de production qui doit filtrer les arnaques à la volée.
Consultez le dépôt, récupérez le format de flux dont vous avez besoin, ou simplement enregistrez l'adresse de l'API gratuite. Le projet est vivant, activement développé par la communauté, et aide véritablement à rendre le réseau plus propre.
Projets similaires