Aller au contenu
AI Website Security
Les chiffres, et de quoi les refaire

Résultat de nos mesures

Tout éditeur d’antivirus affirme qu’il détecte. Presque aucun ne publie le nombre qui compte vraiment pour un marchand : combien de fois s’est-il trompé sur un site parfaitement sain ? Voici les nôtres, avec le protocole et les commandes pour les refaire.

sur 27 sites réels et vivants

0,0 %

de faux positifs

Se taire quand il n’y a rien à dire. C’est la mesure qu’aucun éditeur ne publie, et c’est celle qui décide si vous lirez encore nos alertes dans six mois.

dans une arborescence WordPress officielle

19/19

implants détectés

Parler quand il y a quelque chose à dire. Les implants sont posés dans un vrai cœur de CMS, pas dans un fichier d’exemple.

Ces deux nombres ne mesurent pas la même chose, et aucun ne remplace l’autre. Un outil qui accuse tout le monde affiche une détection parfaite — et personne ne peut s’en servir. Un outil qui ne dit jamais rien n’a aucun faux positif. C’est de tenir les deux à la fois qu’un produit tire sa valeur.

Le silence, mesuré

27 sites réels, choisis pour être difficiles

Un panel de sites complaisants ne prouverait rien. Celui-ci est choisi contre nous : de la presse saturée de publicité jusqu’aux sites de sécurité qui publient du code d’attaque en clair — c’est exactement cette dernière famille qui nous a fait trébucher, et vous lirez comment plus bas.

Presse et médias

le plus de régies publicitaires et de traceurs par page du web

lemonde.fr · theguardian.com · bbc.com · edition.cnn.com · nytimes.com · liberation.fr

Commerce

le terrain réel du produit : tunnels, tags marketing, bandeaux de consentement

fnac.com · cdiscount.com · leboncoin.fr · laredoute.fr · decathlon.fr · shopify.com · prestashop.com · woocommerce.com

Service public

l’autre extrême, austère, où un faux positif serait éclatant

service-public.fr · gouvernement.fr · economie.gouv.fr · cnil.fr

Documentation

des sites qui publient du code à longueur de page

developer.mozilla.org · stackoverflow.com · php.net · wordpress.org · github.com

Sécurité

ils CITENT du code d’attaque, montrent des webshells, racontent des incidents

wordfence.com · blog.sucuri.net · cert.ssi.gouv.fr · krebsonsecurity.com

Trois règles d’honnêteté tiennent ce chiffre, sans quoi il ne vaudrait rien. Un site injoignable n’est pas un site sain : il sort du calcul et il est nommé. Le taux se calcule sur les sites réellement analysés, jamais sur la liste de départ. Et les recommandations de durcissement — un en-tête de sécurité absent, par exemple — ne comptent pas : elles conseillent, elles n’accusent personne.

Le silence, sur du vrai code

28 972 fichiers PHP authentiques, zéro accusation

La seconde condition réelle ne regarde plus des pages, mais des fichiers — le métier de la partie payante. Elle tourne sur du code que personne n’a écrit pour nous : l’archive officielle de WordPress, et le cœur d’une vraie boutique PrestaShop en production, avec ses modules et son code hérité.

CorpusFichiers PHP lusAccusés à tort
WordPress 6.5.2, archive officielle1 1490
Une boutique PrestaShop 9 en production27 8230
Total28 9720

Le second corpus est le plus dur qui existe ici : un cœur PrestaShop complet, c’est-à-dire précisément l’endroit où du code parfaitement légitime fait toute la journée ce qu’un programme malveillant ferait.

Cette condition réelle sert d’abord contre nous

Nous cherchons nos propres erreurs avant qu’un client les trouve

Une condition réelle de faux positifs n’a d’intérêt que si elle nous prend en défaut. Celle-ci l’a fait : elle a démasqué deux façons dont nous accusions du code parfaitement honnête, que nos épreuves automatiques d’alors ne voyaient pas. Les voici, et elles sont fermées.

Une clé publique est reconnue comme telle

Chercher « une longue chaîne illisible » et « de quoi la déchiffrer » dans le même fichier ne prouve rien : sur un site moderne, les deux sont vrais en permanence. Une clé publique, un jeton d’essai de navigateur, la configuration d’un bandeau de consentement en ont tous l’apparence. Désormais, ce qui accuse n’est plus la rencontre des deux — c’est que le résultat du déchiffrement soit exécuté.

Un cookie envoyé à une régie est reconnu comme légitime

Envoyer un cookie à un tiers est le métier quotidien de la publicité et de la mesure d’audience. Allonger une liste de fournisseurs de confiance n’y aurait rien changé : une liste a toujours un acteur de retard. C’est désormais ce qui est emporté qui décide — une donnée saisie par un client reste une accusation, un cookie n’en est plus une.

Les deux corrections ont été mesurées dans les deux sens : le silence est revenu sur les 27 sites, et la détection n’a pas bougé d’un implant — 19 sur 19. C’est la condition qu’on s’impose : un adoucissement qui ferait perdre une détection ne serait pas une correction, ce serait un maquillage.

Refaites-les

Le protocole est dans le produit

Les deux conditions réelles sont des commandes du logiciel. Le panel de sites, les corpus, les règles de comptage : tout est lisible, et tout se rejoue.

npm run conditions-reelles:faux-positifs

Rejoue les 27 sites réels et rend le taux, en nommant chaque site injoignable.

npm run conditions-reelles

Implante les portes dérobées dans une arborescence officielle et mesure les deux nombres sur le même arbre.

S’y ajoutent 1 535 épreuves automatiques, dont une classe entière n’existe que pour une raison : vérifier qu’un ajout inoffensif à un site porteur d’implants ne fait jamais disparaître un constat.

La portée exacte de ces chiffres

La portée d’une mesure fait partie de la mesure

Une mesure sans sa portée finit toujours par être mal lue — et c’est celui qui l’a publiée qu’on accuse d’avoir laissé faire.

  • Ces 27 sites sont un panel, pas le web. Un site qui ferait quelque chose que nous n’avons jamais vu pourrait produire un faux positif : le taux mesuré dit ce que nous avons observé, pas ce qui ne peut pas arriver.
  • L’analyse externe, sans accès au serveur, ne voit que ce que la page montre. Elle ne remplace pas l’analyse du serveur — et c’est cette dernière que mesurent les 19/19 et les 28 972 fichiers.
  • La page exécutée dans un navigateur isolé a été mesurée à part, sur six grands sites à régie publicitaire : aucune accusation, un inventaire seulement. Ce que ces sites contactent sans l’annoncer est nommé ; seule la réputation d’une destination, ou une page à mot de passe, accuse.
  • « Justifié » ne veut pas dire « sûr ». Un site dont chaque fichier justifie sa présence peut avoir une faille connue, un mot de passe volé, ou une extension malveillante signée par son éditeur.
  • Le rétablissement est prouvé sur des arborescences officielles, pas sur des sites clients : c’est la version de l’éditeur qui est réécrite, empreinte vérifiée avant l’écriture et relue après. Un fichier sans éditeur — votre propre code — n’est jamais réécrit.
  • Un implant est écrit par nous. Une condition réelle ne mesure que ce que son corpus contient — c’est pourquoi nous publions le corpus et la commande, pour que le vôtre puisse nous contredire.
Le rétablissement, mesuré

Onze systèmes remis à l’état de l’éditeur, prouvés de bout en bout

Savoir qu’un fichier a été modifié ne sert à rien si l’on ne sait pas le remettre d’aplomb. Sur chacun de ces onze systèmes, nous greffons une porte dérobée dans un fichier de cœur d’une installation officielle, puis nous mesurons le cycle entier : le fichier est reconnu comme modifié, rétabli à la version publiée par l’éditeur, et relu identique — octet pour octet.

WordPressPrestaShopDrupalJoomlaTYPO3OpenCartGravConcrete CMSMoodleMagentole cadre Laravel

Du plus léger au plus lourd, de 4 943 à 40 199 fichiers selon le système, chaque preuve rejoue la même chaîne, et à chaque fois le fichier revient exactement à ce que l’éditeur publie. Aucun autre outil ne rétablit sur autant de systèmes, et aucun ne le prouve.

La surface

Ce que l’analyseur sait reconnaître, en chiffres

Ces trois nombres se comptent dans le code, et se recomptent à chaque version. Les deux premiers sont ceux qui comptent le moins : la détection repose sur la provenance des fichiers, jamais sur un catalogue.

19
familles nommées
WSO, c99, China Chopper, WP-VCD, AnonymousFox… nommées APRÈS avoir été trouvées sans elles
25
signatures de comportement
chacune décrit un comportement, jamais un fichier — avec sa gravité, son motif et son effet
1 535
épreuves automatiques
la suite complète de l’analyseur — verte, et recomptée automatiquement avant chaque publication

Combien de fichiers de votre site savent justifier leur présence ?

Vous aurez le nombre exact, chaque fichier nommé, et de quoi le prouver à quelqu’un d’autre.

aiwebsitesecurity · aiwebsitesecurity · aiwebsitesecurity ·