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.
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.
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.
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.
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é.
| Corpus | Fichiers PHP lus | Accusés à tort |
|---|---|---|
| WordPress 6.5.2, archive officielle | 1 149 | 0 |
| Une boutique PrestaShop 9 en production | 27 823 | 0 |
| Total | 28 972 | 0 |
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.
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.
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.
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.