Chez Voyages-SNCF, la chasse aux bots est ouverte

Chez Voyages-SNCF, jusqu’à récemment, plus d’une requête sur deux provenait… d’un robot. Un trafic néfaste que le marchand a décidé de filtrer, avec un algorithme maison basé sur le Machine Learning.

Plus de trafic sur un site Internet signifie en théorie plus de clients. Sauf quand les clics en question proviennent de robots logiciels, qui auscultent les pages afin d’y collecter des données. Ce problème des bots – le nom de ces robots logiciels -, les équipes de Voyages-SNCF l’ont touché du doigt très concrètement. « A un moment, les bots représentaient quasiment 70 % des demandes de devis sur notre site », se rappelle Gilles de Richemond, qui dirige Voyages-SNCF Technologies (VSCT), la DSI de la filiale de distribution digitale de la SNCF.

Le phénomène, majeur pour le e-commerçant, se traduit évidemment par des surcoûts en matière d’infrastructures. Car il faut bien des serveurs pour répondre à ces requêtes, fussent-elles non souhaitées. « Sans même parler de la gêne pour nos vrais clients, le trafic venant des bots se traduit probablement par des centaines de milliers d’euros dépensés en pure perte. Sans même parler de la sur-sollicitation des systèmes centraux, sur mainframes, appartenant à la SNCF. Sur ces derniers, on peut estimer que la surcharge est de 10 à 20 %, les systèmes de cache jouant ici un rôle atténuateur. Ce qui peut représenter des millions d’euros quand on connaît le tarif de la puissance sur mainframe », reprend Gilles de Richemond.

Filtrage manuel : inefficace

Gilles de Richemond
Gilles de Richemond

Si les conséquences sont majeures, encore faut-il les mettre en évidence. Chez Voyages-SNCF, la prise de conscience provient de la décorrélation entre la hausse du trafic et la progression du chiffre d’affaires. C’est en analysant cette bizarrerie que le e-commerçant mesure réellement l’ampleur du phénomène : les bots représentent jusqu’à 50 % du trafic total du site. Certes, les équipes techniques de la filiale de la SNCF n’ont pas attendu ce constat pour s’attaquer au phénomène des mauvais bots (pas question évidemment de filtrer les robots des moteurs de recherche). Mais, de l’aveu même du directeur général de VSCT, les mesures prises jusqu’alors – basées sur le filtrage des adresses IP – étaient inefficaces. « Nous ne parvenions à filtrer que les plus mauvais des scrapers (organisations spécialisées dans l’exfiltration du contenu de sites Web, NDLR). Et ce procédé générait trop d’interventions en production, ce qui faisait peser un risque sur la qualité de service du site. »

Problème : quand les équipes de Voyages-SNCF se tournent vers d’autres cybercommerçants pour échanger sur la problématique, elles se rendent compte que tout le monde est certes confronté au sujet, mais que personne ne dispose d’une solution autre que des interventions manuelles. En face, les assaillants profitent, eux, des prix bas du Cloud. Ce qui, selon Gilles de Richemond, leur permet « d’agir de façon massive, en envoyant un trafic délirant vers nos infrastructures ».

2 millions de requêtes filtrées par jour

Chez le e-commerçant, on cherche à mieux cerner le comportement de ces robots perturbateurs. « L’idée consistait à corréler les données de navigation, les logs techniques et toutes les données qu’on agrège dans notre datalake Hadoop afin d’identifier les comportements suspects. Et sans nous tromper, pour ne pas bloquer Google ou les comparateurs de prix », détaille le dirigeant. Les analyses préliminaires des informaticiens de la SNCF débouchent sur la construction d’une vraie solution de filtrage, avec des algorithmes de scoring basés sur du Machine Learning. « Afin que la solution s’adapte car les scrapers vont eux aussi évoluer ». Pour l’instant, la solution serait très efficace : Gilles de Richemond affirme filtrer 50 % du trafic arrivant vers le site, soit environ 2 millions de requêtes par jour pour moins de 5 positifs. En pratique, chaque requête que l’algorithme estime issue d’un bot se voit retourner une page avec un capcha, étape que ne peut franchir le robot.

Transmettre la solution à un éditeur

Développé en Python à Nantes en début d’année, l’algorithme a été testé à partir de mars dernier pour être mis en production en juin. Selon le directeur général de VSCT, le projet a demandé au maximum 6 personnes sur une durée de six mois. S’il existe quelques solutions de filtrage similaires proposées par des éditeurs, celles-ci seraient peu avancées, selon Gilles de Richemond. « On est au démarrage de ce sujet. C’est aussi pour cela que notre solution est si efficace ; le jeu du chat et de la souris avec les scrapers ne fait que commencer. » Elle permet en tout cas à VSCT de se placer dans une nouvelle perspective, où l’organisation n’envisage plus de faire grossir ses infrastructures. D’autant que Voyages-SNCF s’est rapproché d’OVH pour des opérations de débordement de trafic.

Reste que le voyagiste ne se voit pas réellement dans la peau d’un éditeur de logiciels et aimerait bien confier sa solution de filtrage de bots à une société dont c’est le métier. Par exemple son éditeur de WAF (web application firewall). « Nous sommes assez ouverts de ce côté, mais n’envisageons pas de placer notre développement en Open Source, tranche Gilles de Richemond. Ce serait donner aux attaquants tous les détails de notre mode de défense. » Donc, les moyens de le contourner.

A lire aussi :

49 % du trafic Internet mondial provient de… robots

Voyages-SNCF passe au débordement dans le Cloud public et lorgne vers OpenStack

Comment le devops transforme l’organisation de Voyages-SNCF

Crédit photo : agsandrew / shutterstock