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

Le second banc ne regarde plus des pages, mais des fichiers — le métier de la partie payante. Il 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.

Ce banc sert d’abord contre nous

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

Un banc de faux positifs n’a d’intérêt que s’il nous prend en défaut. Celui-ci l’a fait : il a démasqué deux façons dont nous accusions du code parfaitement honnête, que nos onze cent quarante-trois épreuves automatiques ne voyaient pas. Les voici, et elles sont fermées.

Une clé publique n’est plus prise pour une charge chiffrée

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 n’est plus une exfiltration

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, pas dans une brochure

Les deux bancs 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 banc:faux-positifs

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

npm run banc

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

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

Ce que ces chiffres ne disent pas

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 gratuite, 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.
  • « 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.
  • Un implant est écrit par nous. Un banc mesure ce que son corpus contient — c’est pourquoi nous publions le corpus et la commande, pour que le vôtre puisse nous contredire.

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

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

CHAQUE FICHIER JUSTIFIE SA PRÉSENCE · AI WEBSITE SECURITY ·