Nouvelles

Détection de faux web shops par le PU Learning

28 septembre 2021

Senne Batsleer a suivi cette année un Master-après-Master Artificial Intelligence à la KULeuven. Il a rédigé une thèse consacrée à la détection de fausses boutiques en ligne dans le domaine .be à l'aide de l’apprentissage automatique (machine learning) : 

"The detection of fake webshops in the .be zone".

Quel était l’objet de votre thèse ? 

Senne : 'La thèse a pour objet de détecter les fausses boutiques en ligne dans la zone .be. Les achats en ligne sont de plus en plus populaires, y compris en Belgique. Selon une étude de Comeos, 72 % des Belges ont effectué des achats en ligne en 2020. Hélas, il existe aussi des boutiques en ligne frauduleuses qui vendent des marchandises de contrefaçon, voire qui ne livrent pas de marchandises du tout.'

‘Afin d’assurer une sécurité optimale de la zone .be, DNS Belgium s’attache à expulser très vite ces fausses boutiques de la toile, avant même qu'elles ne fassent des victimes. Il existe plus de 100. 000 sites .be qui hébergent une boutique en ligne. Une vérification manuelle est bien entendu exclue.

En conséquence, DNS Belgium recourt depuis 2019 à l’intelligence artificielle pour traquer les fausses boutiques en ligne. Depuis lors, DNS Belgium a retiré plus de 3 900 noms de domaine de fausses boutiques en ligne. Pour tous les sites vérifiés, l’entreprise a défini des caractéristiques (‘features’) à partir du contenu HTML ainsi que des données d'enregistrement des noms de domaine correspondants. Sur la base de ces données, elle a entraîné un classificateur Random Forest  (forêt d’arbres décisionnels)’

C’est très bien, mais en quoi votre aide était-elle dès lors nécessaire ?

Senne : 'Malgré ces résultats prometteurs, la guerre contre les boutiques en ligne frauduleuses est loin d’être terminée. Pour évaluer un classificateur supervisé (supervised classifier), nous recourons à un test set. Ce dernier renferme des exemples qui n’ont pas été utilisés pendant l’entraînement (training) mais dont on sait pertinemment s’il s’agit ou non de fausses boutiques. Le classificateur Random Forest affiche un taux de précision élevé et un bon recall au niveau du test set. DNS Belgium a toutefois observé que, dans la réalité, le classificateur éprouvait de plus en plus de difficulté à détecter les nouvelles fausses boutiques en ligne et, surtout, générait de nombreux faux positifs.'

Pouvez-vous expliquer ce point, Senne ?

Senne : 'La précision correspond au pourcentage de fausses boutiques en ligne que le classificateur détecte et qui se sont effectivement avérées être fausses. Dans le cas des faux positifs, il s’agit de sites web fiables que le classificateur qualifie pourtant de faux. Le recall désigne le pourcentage de fausses boutiques en ligne que le classificateur considère effectivement comme fausses. C’est en quelque sorte le raisonnement inverse de la précision'

Pourquoi pensez-vous que le classificateur Random Forest a généré de moins bons résultats sur des données réelles au fil du temps ?

Senne : 'Je vois trois explications possibles : 

  1. Tout d'abord, sachant que nous les traquons, les cybercriminels s’abstiennent peut-être d’utiliser des noms de domaine .be.
  2. Deuxième possibilité, il se peut que les labeled data ne soient pas suffisamment représentatives pour l'ensemble de la zone .be.
  3. Enfin, il est possible que les cybercriminels aient changé de tactique et que le classificateur ne généralise pas suffisamment pour reconnaître ces nouvelles formes de fausses boutiques.'

Par quoi avez-vous entamé cette mission ?

Senne : 'Dans un premier temps, bien sûr, je me suis plongé dans la littérature spécialisée existante. Ensuite, j'ai analysé en détail les labeled data et les features utilisées par DNS Belgium pour le classificateur existant. La distribution du nombre d'images, du nombre de liens (links) internes et du nombre total de html tags sur les sites web m'a amené à penser que notre data set comporte des clusters de fausses boutiques en ligne très similaires. Il est possible que le classificateur ne retienne que ces clusters et ne généralise donc pas suffisamment.’

‘Si ces clusters sont répartis entre l’entraînement (training) et le test set, cela pourrait expliquer aussi pourquoi le classificateur génère de si bons résultats au niveau du test set. Pour éviter un fitting excessif au regard de ces clusters, j'ai d'abord regroupé les fausses boutiques et fait en sorte que, lors de la validation croisée, tous les domaines d'un même cluster se retrouvent dans le même fold. Le training s’effectue toujours sur un ensemble de clusters tandis que la validation se fait sur un autre ensemble de clusters.’

'Dans la pratique, nous avons utilisé tous les domaines de la zone .be intégrant une technologie de e-commerce.'

Le résultat a-t-il répondu aux attentes ?

Senne : ‘Oui. A partir du coefficient de silhouette, je suis arrivé à 152 clusters. Nous les avons regroupés de manière à obtenir 10 folds d’une taille à peu près identique. Ensuite, j'ai ajouté les exemples négatifs aléatoirement aux dix folds et lancé l’entraînement d’un autre classificateur Random Forest. Après tuning des hyperparamètres, le recall au niveau du test set a chuté de 96 % à 75 %, tandis que la précision est passée à 100 %. Ce résultat en apporte la confirmation : des modifications mineures aux fausses boutiques en ligne peuvent être source de problèmes pour le classificateur actuel, qui ne détecte qu’un seul nouveau type de fausses boutiques sur quatre.’

Quelle autre piste avez-vous suivie pour améliorer le classificateur ?

Senne : ‘La principale contribution de ma thèse réside vraisemblablement dans le passage d’une technique d’apprentissage automatique supervisé (supervised machine learning) où tous les exemples de training sont affectés d’un label (faux ou pas faux), à une technique appelée Learning from Positive and Unlabeled Data, en abrégé PU Learning

‘En PU Learning, les labels négatifs ne sont pas nécessaires. La possibilité d'ajouter des domaines à label inconnu permet d'augmenter sensiblement le nombre de domaines servant au training est appliqué. Dans la pratique, nous avons utilisé tous les domaines de la zone .be intégrant une technologie de e-commerce.'

'Les méthodes de PU Learning ne sont pas encore implémentées dans les bibliothèques Python usuelles. Par conséquent, j'ai dû baser mes implémentations sur du code issus de rapports de recherche. Sur la base des recherches récentes en matière de détection de fausses boutiques en ligne, j'ai également implémenté des features supplémentaires.'

Comment avez-vous comparé les différentes méthodes de PU Learning ?

Senne : ‘J'ai employé quelque 80 % unlabeled data pour le training et les 20 % restants pour le testing. Pour évaluer comment le modèle peut être généralisé au regard des tactiques évolutives des fausses boutiques en ligne, j'ai pris les 20 000 domaines les plus récents comme test set et les domaines plus anciens pour le training.’

‘Pour chaque méthode, j’ai combiné le tuning des hyperparamètres à la vérification manuelle des 500 domaines affichant le score le plus élevé. Il est apparu d’emblée que, même pour un client attentif, il n'est pas toujours facile de distinguer une fausse boutique d'une boutique légitime ou encore, en construction. Parmi les trois classificateurs de PU Learning soumis au training, c’est le Robust Ensemble SVM qui a été en mesure de détecter le plus grand nombre de fausses boutiques en ligne : parmi les 500 sites que le modèle a taxés de suspects, j’en considérais moi-même quelque 58 comme frauduleux.'

S’agit-il d’une amélioration marquante par rapport à l'approche de l’apprentissage supervisé ( supervised learning ) ?

Senne : ‘La question est très pertinente. Sachant que nous utilisons des data sets différents, il n'est pas simple de comparer les deux. Le PU Learning produit des résultats similaires en termes de précision. En termes de recall, il semble que le PU Learning généralise un peu mieux les nouveaux types de fausses boutiques, mais d’autres fausses boutiques en ligne ont été détectées par Random Forest et non par le PU Learning. L'utilisation du seul PU Learning PU n'est donc pas la panacée.'

Comment voyez-vous DNS Belgium poursuivre dans cette voie ?

Senne : DNS Belgium doit étendre ses recherches à l'ensemble de la zone .be et ne pas les limiter aux unlabeled data. Ce data set accueille uniquement les noms de domaine où Wappalyzer repère de la technologie de e-commerce. Toutefois, Wappalyzer n'est pas infaillible. Ainsi, certaines fausses boutiques en ligne passent encore entre les mailles du filet. Le périmètre d’apprentissage de DNS Belgium se situe donc au niveau de l'ensemble de la zone .be et non pas seulement des boutiques en ligne. Une alternative pour DNS Belgium consiste à organiser un entraînement sur les boutiques en ligne pour ensuite formuler des prédictions à l’échelon de l'ensemble de la zone.'

'Une autre solution encore serait de de prévoir un entraînement sur l’ensemble de la zone (et donc non pas seulement sur les boutiques en ligne). Le PU Learning n’est sans doute pas l’idéal à cet effet, vu que le pourcentage de fausses boutiques en ligne s’avère très faible dans ce cas. Une formule d’apprentissage semi-supervisé (semi-supervised learning) (avec aussi des negative labels) est dans ce cas peut-être préférable. L’active learning pourrait à cet égard s’avérer très intéressant : en lieu et place du labelling de domaines aléatoires, c’est le classificateur même qui indique quels sont les domaines les plus informatifs.'

'A mon avis, toutefois, la principale amélioration consisterait à ajouter les fausses boutiques en ligne récemment détectées aux training data et d’organiser un retraining régulier. Vu le très petit nombre de fausses boutiques en ligne détectées, tout ajout à ces data peut être une source d’amélioration.'

Avec cet article, nous contribuons à réaliser ces objectifs de développement durable de l’Organisation des Nations Unies.