arnaque-en-ligne

Arnaque en ligne : que faire et comment se faire rembourser par votre banque ?

Introduction

Une arnaque en ligne, ça ressemble de moins en moins à l’email mal traduit d’un prétendu prince nigérian. Aujourd’hui, les escrocs utilisent des techniques qui imitent parfaitement les codes visuels d’une banque, exploitent des failles dans la configuration des serveurs mail, et commencent même à utiliser des voix clonées par IA pour tromper leurs victimes au téléphone. Cet article prend le parti inhabituel de décortiquer techniquement ces arnaques — comme le ferait un développeur ou un analyste en cybersécurité — plutôt que de se contenter de lister des conseils génériques. Vous allez apprendre à lire le code source d’une page de phishing, à décoder les en-têtes d’authentification d’un email frauduleux, et à utiliser un script Python pour détecter automatiquement des URLs suspectes. Et bien sûr, on verra concrètement comment se faire rembourser par votre banque si vous êtes déjà tombé dans le panneau.

Comprendre l’arnaque en ligne

Crédit : Pachon in Motion

Une arnaque en ligne repose presque toujours sur trois ingrédients techniques : une infrastructure de diffusion (email, SMS, réseau social), une page ou un support qui imite un service légitime, et un mécanisme de collecte des données (formulaire, faux paiement, ingénierie sociale vocale). Comprendre chacun de ces maillons permet de repérer une fraude avant d’en être victime.

Prenons un exemple typique de phishing bancaire. L’escroc envoie un email qui semble provenir de votre banque, avec un lien du type https://mabanque-secure-verification.com/login. Si on regarde le code source HTML de cette fausse page (clic droit → « Afficher le code source » dans n’importe quel navigateur), on retrouve souvent :

  • Un formulaire qui pointe vers un domaine totalement différent de celui affiché dans la barre d’adresse
  • Des ressources (logos, CSS) chargées directement depuis le vrai site de la banque, pour économiser du temps de développement à l’escroc
  • Un script JavaScript qui capture les champs saisis (identifiant, mot de passe, code SMS) et les envoie via une requête POST vers un serveur tiers avant de rediriger la victime vers le vrai site, pour ne pas éveiller les soupçons

Ce dernier point est révélateur : une redirection immédiate vers le site officiel après une « erreur de connexion » est un signal d’alarme quasi certain.

Du côté des emails, l’analyse des en-têtes techniques (les « headers ») est encore plus parlante. Trois mécanismes d’authentification permettent de vérifier qu’un email vient bien de qui il prétend :

  • SPF (Sender Policy Framework) : vérifie que le serveur qui a envoyé l’email est autorisé à le faire pour ce nom de domaine
  • DKIM (DomainKeys Identified Mail) : une signature cryptographique qui garantit que le contenu n’a pas été modifié en transit
  • DMARC : la politique qui indique quoi faire si SPF ou DKIM échouent (rejeter, mettre en quarantaine, ou ne rien faire)

Dans un email frauduleux, on trouve très souvent des lignes comme spf=fail ou dkim=none dans les en-têtes bruts, alors que l’expéditeur affiché semble légitime. C’est la preuve technique que le domaine a été usurpé.

Prérequis et installation

Pour suivre cette approche technique et mettre en place vos propres outils de détection, vous n’avez besoin que d’un environnement Python basique et de quelques bibliothèques standards. Voici ce qu’il vous faut :

  • Python 3.9 ou une version ultérieure installé sur votre machine (Windows, macOS ou Linux)
  • Un éditeur de code simple comme Visual Studio Code, ou même un terminal suffit
  • Le gestionnaire de paquets pip, généralement installé par défaut avec Python
  • Une connexion internet pour interroger certaines listes noires d’URLs

Installez les bibliothèques nécessaires avec les commandes suivantes dans votre terminal :

pip install requests validators python-whois
  • requests permet de faire des requêtes HTTP pour vérifier si une URL redirige vers un site suspect
  • validators sert à valider rapidement le format d’une URL ou d’une adresse email
  • python-whois permet d’interroger les informations d’enregistrement d’un nom de domaine (date de création notamment, un domaine créé la veille est un signal d’alerte fort)

Aucune compétence avancée en programmation n’est nécessaire : le script fourni plus bas est commenté ligne par ligne et peut être exécuté tel quel. L’objectif n’est pas de devenir expert en cybersécurité, mais de comprendre les mécanismes qui permettent à un logiciel — ou à vous-même manuellement — de détecter les signaux faibles d’une tentative de fraude.

Implémentation pas à pas

Configuration initiale

Avant d’écrire le moindre code, il faut définir ce qu’on cherche à détecter. Une URL malveillante présente généralement plusieurs caractéristiques cumulables :

  • Un nom de domaine très récent (souvent enregistré quelques jours avant la campagne de phishing)
  • Une orthographe proche mais légèrement différente d’un site connu (on parle de typosquatting, par exemple « amaz0n-secure.com »)
  • L’absence de certificat HTTPS valide, ou un certificat émis par une autorité peu connue
  • Un nombre anormal de redirections avant d’arriver sur la page finale

Créez un fichier detecteur_arnaque.py dans un dossier de travail. C’est dans ce fichier que nous allons construire, étape par étape, un outil capable d’analyser une URL suspecte et de donner un score de risque.

Code principal

Voici le script complet, fonctionnel et commenté, qui analyse une URL et alerte si elle présente des signaux de phishing :

import re
import requests
import validators
import whois
from datetime import datetime, timezone

def analyser_url(url):
    """
    Analyse une URL et retourne un score de risque de 0 (sûr) à 100 (dangereux)
    ainsi que la liste des signaux détectés.
    """
    score = 0
    alertes = []

    # Étape 1 : vérifier que l'URL est syntaxiquement valide
    if not validators.url(url):
        return {"score": None, "erreur": "URL invalide"}

    # Étape 2 : détecter les mots-clés suspects souvent utilisés en phishing
    mots_suspects = ["verification", "secure-update", "confirm-account", "login-alert"]
    for mot in mots_suspects:
        if mot in url.lower():
            score += 15
            alertes.append(f"Mot-clé suspect détecté : '{mot}'")

    # Étape 3 : extraire le nom de domaine
    domaine = re.findall(r"https?://([^/]+)", url)
    domaine = domaine[0] if domaine else url

    # Étape 4 : vérifier l'âge du domaine via WHOIS
    try:
        infos = whois.whois(domaine)
        date_creation = infos.creation_date
        if isinstance(date_creation, list):
            date_creation = date_creation[0]
        if date_creation:
            if date_creation.tzinfo is None:
                date_creation = date_creation.replace(tzinfo=timezone.utc)
            age_jours = (datetime.now(timezone.utc) - date_creation).days
            if age_jours < 30:
                score += 30
                alertes.append(f"Domaine créé il y a seulement {age_jours} jours")
    except Exception:
        alertes.append("Impossible de vérifier l'âge du domaine (info non disponible)")

    # Étape 5 : vérifier la présence du HTTPS
    if not url.startswith("https://"):
        score += 20
        alertes.append("Connexion non sécurisée (pas de HTTPS)")

    # Étape 6 : vérifier le nombre de redirections
    try:
        reponse = requests.get(url, timeout=5, allow_redirects=True)
        nb_redirections = len(reponse.history)
        if nb_redirections > 2:
            score += 15
            alertes.append(f"{nb_redirections} redirections détectées, comportement suspect")
    except requests.RequestException:
        alertes.append("Le site n'a pas répondu (peut être hors ligne ou bloqué)")

    return {"score": min(score, 100), "alertes": alertes}


![Colorful digital abstract art depicting futuristic circuitry and technology.](https://images.pexels.com/photos/30547596/pexels-photo-30547596.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940)



if __name__ == "__main__":
    url_a_tester = input("Entrez l'URL à analyser : ")
    resultat = analyser_url(url_a_tester)

    print("\n--- Résultat de l'analyse ---")
    if resultat.get("erreur"):
        print(resultat["erreur"])
    else:
        print(f"Score de risque : {resultat['score']}/100")
        for alerte in resultat["alertes"]:
            print(f" - {alerte}")

        if resultat["score"] >= 50:
            print("\n⚠️ Cette URL présente des signaux forts de phishing. Ne saisissez aucune donnée personnelle.")
        elif resultat["score"] >= 20:
            print("\n🔶 Prudence recommandée, vérifiez manuellement l'expéditeur et le contexte.")
        else:
            print("\n✅ Aucun signal majeur détecté (cela ne garantit pas une sécurité à 100%).")

Ce script combine plusieurs heuristiques simples mais efficaces : présence de mots-clés typiques du phishing, âge du domaine, absence de chiffrement, et nombre de redirections. Aucune de ces vérifications n’est infaillible seule, mais leur combinaison donne un signal fiable dans la majorité des cas.

Tests

Pour valider que le script fonctionne, testez-le avec plusieurs types d’URLs :

  1. Une URL légitime bien connue (par exemple celle d’un grand site e-commerce) : le score devrait rester bas, car le domaine est ancien, en HTTPS, sans mot-clé suspect.
  2. Une URL fictive construite pour l’exercice, comme http://secure-update-account-verification.info : le script devrait remonter un score élevé à cause de l’absence de HTTPS et des mots-clés suspects.
  3. Une URL raccourcie (type service de raccourcissement d’URL) : observez le nombre de redirections détecté, souvent supérieur à la normale.

Si le module whois ne trouve pas d’information pour certains domaines (ce qui arrive avec des registrars qui masquent les données), le script continue sans planter grâce au bloc try/except, et signale simplement que l’information n’est pas disponible.

Résultats et validation

Une fois le script exécuté sur plusieurs URLs, vous obtenez un score de risque et une liste d’alertes textuelles. Ce résultat n’a pas vocation à remplacer votre vigilance, mais à objectiver ce qui, autrement, resterait une simple intuition (« ce lien me semble louche »). C’est exactement la logique qu’utilisent en interne les filtres anti-phishing des messageries et des navigateurs modernes, à une échelle bien plus sophistiquée avec du machine learning et des bases de données mises à jour en continu.

Pour aller plus loin, vous pouvez enrichir ce script avec une vérification contre des listes noires publiques d’URLs malveillantes, ou l’adapter pour scanner automatiquement les liens contenus dans un email brut. La même logique de vigilance technique s’applique aux deepfakes vocaux : un appel qui prétend venir de votre banque et demande un code de validation par SMS doit toujours être interrompu, puis vérifié en rappelant le numéro officiel affiché sur votre carte bancaire ou votre contrat, jamais celui communiqué pendant l’appel suspect.

Que faire si vous êtes déjà victime ?

Si malgré toute cette vigilance vous avez communiqué vos coordonnées bancaires ou validé un paiement frauduleux, il existe une procédure claire pour se faire rembourser en cas d’arnaque en ligne :

  • Faites opposition immédiatement sur votre carte bancaire en appelant votre banque ou le numéro national d’opposition
  • Rassemblez les preuves : captures d’écran de l’échange, email frauduleux avec ses en-têtes complets, relevé bancaire de la transaction litigieuse
  • Contestez la transaction auprès de votre banque par écrit, en invoquant l’absence d’autorisation ou la fraude
  • Déposez plainte auprès des services compétents (gendarmerie, police, ou plateforme de signalement dédiée aux escroqueries en ligne)
  • Signalez l’arnaque aux autorités compétentes en matière de cybercriminalité pour aider à bloquer le site frauduleux

En France, le cadre réglementaire européen sur les services de paiement impose aux banques de rembourser les transactions non autorisées, sauf en cas de négligence grave prouvée du client (par exemple avoir communiqué son code confidentiel volontairement). Le délai de contestation court généralement à partir du moment où vous avez eu connaissance de l’opération frauduleuse, donc agissez vite.

Type d’arnaque Canal principal Signal technique à vérifier
Phishing bancaire Email, SMS En-têtes SPF/DKIM, âge du domaine
Faux support technique Appel téléphonique Numéro affiché usurpé (spoofing)
Deepfake vocal Appel téléphonique, message vocal Latence anormale, artefacts audio
Faux site e-commerce Publicité, réseau social Absence de mentions légales, HTTPS absent

FAQ

A robotic hand reaching into a digital network on a blue background, symbolizing AI technology.

Qu’est-ce qu’une arnaque en ligne et comment la reconnaître techniquement ?

Une arnaque en ligne est une tentative de fraude menée via internet, qui vise à obtenir vos données personnelles, bancaires, ou un paiement direct par tromperie. Techniquement, elle repose souvent sur l’usurpation d’un nom de domaine, l’absence d’authentification email valide (SPF, DKIM, DMARC en échec), et des pages web qui imitent visuellement un service légitime tout en redirigeant les données saisies vers un serveur tiers contrôlé par l’escroc.

Comment fonctionne concrètement un email de phishing d’un point de vue technique ?

Un email de phishing usurpe généralement l’identité visuelle d’un expéditeur légitime (logo, mise en forme) tout en étant envoyé depuis un serveur non autorisé pour ce domaine. En examinant les en-têtes bruts du message, on retrouve souvent un échec d’authentification SPF ou DKIM. Le lien contenu dans l’email pointe vers une page qui imite le vrai site, dont le code source contient un formulaire redirigeant les données saisies vers un serveur différent de celui affiché dans la barre d’adresse.

Quels sont les prérequis pour utiliser un script de détection d’URLs malveillantes ?

Il suffit d’avoir Python 3.9 ou une version plus récente installée, ainsi que les bibliothèques requests, validators et python-whois installables via pip. Aucune connaissance avancée en programmation n’est nécessaire : le script fourni dans cet article est commenté et peut être exécuté directement depuis un terminal, en collant simplement l’URL à analyser lorsque le programme le demande.

Que faire en cas de paiement frauduleux pour se faire rembourser par sa banque ?

Contactez immédiatement votre banque pour faire opposition sur votre carte, rassemblez toutes les preuves disponibles (échanges, en-têtes d’email, relevés bancaires), puis contestez formellement la transaction par écrit. Déposez également plainte auprès des autorités compétentes. La réglementation impose en principe un remboursement des opérations non autorisées, sauf négligence grave démontrée de votre part, donc agissez rapidement dès que vous constatez l’anomalie sur votre compte.

Sources et références

Conclusion

Comprendre une arnaque en ligne sous l’angle technique change complètement la façon de s’en protéger : au lieu de suivre des conseils génériques appris par cœur, vous savez désormais repérer un échec d’authentification SPF, reconnaître un domaine suspect créé la veille, ou lire le code source d’une fausse page de connexion. Le script Python fourni dans cet article vous donne un premier outil concret pour automatiser cette vigilance. Et si malgré tout vous êtes victime d’une fraude, la marche à suivre reste claire : opposition immédiate, preuves rassemblées, contestation écrite et plainte déposée sans tarder. La meilleure protection reste la combinaison des deux : la compréhension technique du mécanisme, et la connaissance précise de vos droits en tant que victime.


Écrit par Abdelilah, fondateur de NeurauTech — un blog qui vulgarise l’IA, le cloud, la cybersécurité et la tech pour un large public. Article régulièrement mis à jour.

Publications similaires