Kits de Phishing utilisant des opérations binaires pour échapper à la détection
17 mars 2026
Par David Johnson et l'équipe de recherche sur les menaces de Mimecast
- Les opérateurs de kits de phishing mettent en œuvre des techniques d'obfuscation utilisant des opérations de contrôle de bits afin de contourner la logique traditionnelle de flux de contrôle
- Cette technique allonge considérablement la durée de l'analyse en transformant des instructions conditionnelles lisibles en opérations mathématiques condensées
- Les pirates utilisent des opérations binaires pour filtrer les visiteurs indésirables, notamment les outils de sécurité, les appareils mobiles et les navigateurs sans interface graphique
Ce que nous observons
Les cybercriminels ont recours à des opérations de contrôle des bits pour masquer des pages Web qui visent principalement à collecter des identifiants. Au lieu d'utiliser des instructions conditionnelles simples, ils regroupent plusieurs vérifications au sein d'opérations binaires complexes. Cela rend le code nettement plus difficile à analyser et allonge le temps nécessaire aux systèmes de détection pour identifier ces kits.
Les attaquants ont recours à ces techniques pour plusieurs raisons, notamment pour filtrer les visiteurs indésirables — chercheurs en sécurité, scanners automatisés, appareils mobiles, navigateurs sans interface graphique — tout en compliquant considérablement la tâche des équipes d'intervention en cas d'incident lorsqu'elles parviennent à identifier le code, car elles ont alors beaucoup de mal à comprendre ce qu'il fait réellement.
Comment fonctionne le flux de contrôle et pourquoi est-ce important ?
Le flux d'exécution décrit la manière dont un programme passe d'une instruction à la suivante. En termes simples, le flux de contrôle reflète les processus décisionnels humains.
Prenons l'exemple de la décision d'emporter un parapluie : cette action dépend du fait qu'il pleuve ou non. Cette logique peut s'exprimer ainsi : SI il pleut dehors, ALORS prenez un parapluie.
En programmation, cette même logique conditionnelle détermine les actions que le code va exécuter en fonction de l'état des variables. Le flux de contrôle comprend trois grandes catégories :
- Instructions conditionnelles (if-else, switch) — décisions basées sur des conditions
- Les boucles (for, while, do-while) — actions répétées
- Instructions de saut (break, continue, return, goto) — redirection de l'exécution du programme
Dans le contexte des kits de phishing, cela désigne une logique conditionnelle qui détermine la manière dont la page Web interagit avec la victime.
Comment les pirates perturbent le flux de contrôle
Afin de masquer le flux de contrôle, les auteurs de kits de phishing regroupent plusieurs instructions conditionnelles à l'aide d'opérations binaires. Plutôt que de créer des instructions « if-else » distinctes pour chaque condition, elles attribuent des valeurs binaires qui peuvent être récupérées et évaluées collectivement.
Exemple de scénario :un kit de phishing conçu pour cibler les utilisateurs d'ordinateurs de bureau au sein d'une organisation donnée pourrait filtrer les connexions provenant d'appareils mobiles. Ce concept s'étend à de nombreuses situations liées aux caractéristiques des visiteurs attendus par opposition à celles des visiteurs inattendus.
L'objectif est de limiter les interactions provenant de personnes ou de machines non souhaitées, notamment les chercheurs en sécurité et les outils d'analyse automatisés. De plus, ces contrôles surveillent le comportement des utilisateurs sur la page Phishing, afin de détecter si la vitesse de saisie du texte semble anormale ou si le visiteur tente d'ouvrir les outils de développement.
En recourant à des opérations binaires, les kits de phishing entravent considérablement les efforts d'analyse, ce qui complique la tâche des équipes de sécurité pour comprendre la véritable fonctionnalité du code.
Les trois niveaux d'obfuscation que nous observons
Niveau 1 : Code lisible standard
Dans les implémentations classiques des kits de phishing, les vérifications conditionnelles se présentent sous la forme d'un code simple :Ce code est immédiatement compréhensible. Un analyste peut rapidement constater que le kit recherche des indicateurs de périphériques mobiles et de navigateurs sans interface graphique, en utilisant des instructions « if » imbriquées pour gérer quatre combinaisons possibles. Le déroulement logique reste transparent et facilement traçable.
Niveau 2 : Introduction aux indicateurs binaires
Le niveau suivant d'obfuscation introduit des opérations sur les bits tout en conservant une certaine lisibilité :
Le code reste partiellement lisible, mais intègre des opérations de manipulation de bits. Chaque condition active un bit spécifique au sein de la variable « flags ». Nous disposons de 4 variables que nous pouvons définir sous forme de valeurs binaires :
- isMobile = 0001 (bit 0)
- noCookies = 0010 (bit 1)
- hasAutomationAPIs = 0100 (bit 2)
- isHeadless = 1 000 (bit 3)
Ces quatre conditions binaires donnent lieu à 16 états possibles (de 0000 à 1111), qui permettent de représenter le cas où aucune variable ne correspond, celui où toutes les variables correspondent, ainsi que toutes les combinaisons intermédiaires. Un analyste peut certes identifier les vérifications conditionnelles, mais pour comprendre comment la variable « flags » est utilisée par la suite, il faut mener une analyse plus approfondie.
Niveau 3 : Obscurcissement avancé
Cette dernière étape de l'obfuscation recourt à des techniques d'obfuscation poussées, notamment des tableaux hexadécimaux, des noms de variables inhabituels et des opérations binaires complexes :
Ce code semble bien plus complexe, mais il fait essentiellement la même chose que le deuxième exemple (avec des combinaisons légèrement plus variées).
- Déclare des variables pour des vérifications telles que « isMobile », « Cookies » et « AutomationAPIs ».
- Vérifie chacune des variables, attribue à chaque bit la valeur 0 ou 1 (vrai ou faux) et enregistre l'ensemble de ces valeurs dans une nouvelle variable `_0xe`. Cette fonction contient également certaines valeurs auxquelles il est fait référence, mais qui ne sont utilisées nulle part ailleurs ; cela a pour but de semer la confusion chez les analystes et de leur faire perdre davantage de temps.
- Un comptage de pop est effectué dans la variable `_0x10`. La fonction « popcount » permet de compter le nombre de « 1 » présents (cette fonction servira à déterminer le nombre total de variables).
- La variable `_0x11` gère les combinaisons comprises entre 0000 et> 1111 ; toutes les combinaisons possibles sont examinées ici.
- Les deux variables restantes, `_0x12` et `_0x13`, remplissent les fonctions décrites ci-dessus : l'une vérifie si les bits de poids fort sont activés, tandis que l'autre examine la valeur dans son ensemble pour déterminer si elle dépasse un certain seuil.
Le principe de base de tous ces exemples est similaire : il s'agit de vérifier les caractéristiques des visiteurs et de déterminer ce qu'il convient d'afficher. Cette complexité n'a d'autre but que de faire perdre du temps aux analystes et d'entraver la détection automatisée.
Ce qui se passe dans la nature
D'après les exemples étudiés par l'équipe Mimecast Threat Research, lorsqu'elle est déployée dans le cadre de campagnes menant à des pages destinées à collecter des identifiants, cette logique obscurcie détermine principalement s'il faut afficher le formulaire de Phishing ou rediriger vers un contenu inoffensif.
Si le code détecte des outils d'automatisation, des navigateurs « headless », l'absence de cookies ou des appareils mobiles (selon le profil cible), il redirige discrètement le visiteur vers un site web légitime, sans laisser aucune trace d'intention malveillante. Les chercheurs en sécurité qui analysent l'URL tombent sur un contenu inoffensif, tandis que les cibles visées voient s'afficher le formulaire destiné à récupérer leurs identifiants.
Cette approche sélective prolonge considérablement la durée de vie opérationnelle des campagnes de Phishing, car les systèmes de sécurité automatisés ne parviennent pas à détecter les comportements malveillants lors des analyses initiales.
Objectifs
Une technique observée à l'échelle mondiale, utilisée par plusieurs familles de kits de phishing ciblant divers secteurs d'activité et différentes régions
Considérations relatives à la détection
L'utilisation d'opérations binaires sur un site peut être considérée comme inhabituelle dans le contexte d'une page web classique. Lorsque des opérations au niveau des bits sont détectées, d'autres indicateurs (ancienneté du domaine, certificat, informations de livraison, etc.) doivent être pris en compte pour déterminer si un site est légitime ou non.
Gardez une longueur d'avance en matière de renseignements sur les menaces
Rejoignez les milliers de professionnels de la sécurité qui s'appuient sur nos alertes sélectionnées avec soin, nos analyses d'experts et nos indicateurs de compromission (IOC) liés aux campagnes pour se prémunir contre les dernières cybermenaces.
Inscription réussie
Merci de vous être inscrit pour recevoir nos notifications relatives aux informations sur les menaces.
Nous vous contacterons !