{ Domain } – Prévenez les attaques de phishing

Bonjour à tous,

Si vous travaillez dans le domaine de la cybersécurité, alors vous devez savoir qu'il faut être sur tous les fronts pour couvrir le plus possible la ou les surfaces de risques.

Votre entreprise se doit de protéger le mieux possible son image de Marque, mais aussi se préoccuper au maximum de la sécurité de ses clients.

En effet, il n'est jamais très agréable pour une société de voir fleurir sur internet et sur les réseaux sociaux des jeux concours ou de faux sites, profitant de la notoriété de celle-ci pour escroquer des clients ou des prospects.

Les options possibles de phishing Web pour les acteurs malveillants

Les acteurs malveillants disposent d'un large éventail de possibilité pour mettre sur Internet leurs faux sites.

  • Site internet compromis, sur lequel une page fausse page sera introduite
  • Faux site via des plateformes permettant de créer gratuitement ces sites (WordPress, Wix, ....)
  • Acheter un nom de domaine

Ces cette dernière option (l'achat d'un nom de domaine), qui rendra vraiment crédible le phishing.
Un nom de domaine mon-compte-blablacar.wix.com sera plus suspect qu'un nom de domaine dédié:
mon.compte-blablacar.com

Une question de rapidité

Un faux site vient d'être mis en place ...
Une campagne de phishing vient de partir, envoyant des dizaines de milliers de mails ...
Seulement vous n'êtes peut-être pas dans cette liste. Aussi, vous faudra t-il attendre qu'une personne vous remonte l'information. Soit parce qu'elle se sera faite piéger, ou soit parce qu'elle aura trouvé le mail suspect.

Cela pour dire que le temps que vous aurez pour avoir l'information et réagir peut-être parfois très long.
Il est donc primordiale d'avoir des mécanismes de sécurité pour anticiper et détecter rapidement la mise en ligne de faux site.

Obtenir la liste des noms de domaine enregistrés

Les noms de domaines sont gérés selon leurs extensions par des fournisseurs (Registrar).
L'afnic par exemple va gérer les noms de domaine en .fr
Eurid gérera quant à lui les noms de domaine en .eu
Rucenter, les noms de domaine en .ru
etc ...

Chaque Registrar peut décider de garder privé ou non, la liste des noms de domaine enregistrés chez lui.
Certains factureront l'accès à cette liste.

Il existe également des organisations sur internet qui vous proposeront directement une liste agrégeant tous ces domaines (sans distinction de registrar).
Cependant la plupart du temps, il vous faudra passer à la caisse, et ouvrir votre portefeuille.

J'ai cependant dégoté pour vous une plateforme qui propose des échantillons de 10.000 enregistrements tout frais de noms de domaine du jour : https://www.whoisds.com

Bien entendu, si vous souhaitez vraiment une liste exhaustive, il vous faudra payer.

Script de détection des potentiels faux sites

Pour votre plus grand plaisir j'ai écrit ce script python, qui vous permettra après quelques réglages de détecter de potentiel site de phishing.

Pour l'exemple, j'ai pris l'enseigne "BNP", une banque.
Il y a 2 tableaux de mots clés, le premier indique les mots qui doivent figurer obligatoirement dans le nom de domaine, et le second, les mots qui additionnels, permettant ainsi de créer un score du nom de domaine ayant le plus de probabilité d'être un phishing.

# (c) 2023 - 2024 Dyrk.org
# Detect Phishing Domain
from StringIO import StringIO
from zipfile import ZipFile
from urllib import urlopen
import requests
import re

ObligatoryKeyWords = ['bnp'];
FacultativeKeyWords = ['bank', 'wallet', 'compte', 'banque', 'account', 'profile'];
res = requests.get('https://www.whoisds.com/newly-registered-domains');
Files = re.findall("https://www.whoisds.com//whois-database/newly-registered-domains/[A-Za-z0-9\/\=] ", res.text);
FileContent = ZipFile(StringIO(urlopen(Files[0]).read()));
PatternFacultativeSearch = "{0}{1}{2}".format('(','|'.join(FacultativeKeyWords),')');
PatternObligatorySearch = "{0}{1}{2}".format('(','|'.join(ObligatoryKeyWords),')');
for line in FileContent.open("domain-names.txt").readlines():
scoreF = len(re.findall(PatternFacultativeSearch, line));
scoreO = len(re.findall(PatternObligatorySearch, line));
if (scoreO >= 1) :
score = scoreF scoreO;
print("{0} - {1}".format(score, line));
~ ~

Résultat :

Conclusion

J'espère que cet article vous aura plus, et qu'il vous aura permis d'avoir un nouvel angle d'attaque pour protéger votre organisation.

N'hésitez pas dans les commentaires à me dire ce que vous mettez en place chez vous pour combattre les sites de phishing.

One comment

  • Bonjour Dyrk, ton script Python m’intéresse mais je ne suis pas très bon en Python, et lorsque je le l’execute, j’ai cette erreur :

    File « /home/Vigenere/fish.py », line 19
    score = scoreF scoreO;
    ^^^^^^
    SyntaxError: invalid syntax

    Je suis sous Python 11 et Debian 12 :)

Laisser une réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site est protégé par reCAPTCHA et le GooglePolitique de confidentialité etConditions d'utilisation appliquer.