TAC: Theme Authenticity Checker : Sa review controversée

TAC: Theme Authenticity Checker : Sa review controversée

TAC : The Annoying Challenge

Oui, plutôt gênant le défi de se dire « Un plugin va m’indiquer si mon thème contient des codes malicieux et vulnérabilités ».

Le but de cet article n’est pas de démonter TAC, mais de montrer que se fier à un plugin pour indiquer si telle ou telle chose est sécurisée ou non n’est pas correct.

Je crée l’article suite à cette discution chez GeekPress : http://www.geekpress.fr/wordpress/guide/7-conseils-securite-wordpress-802/

TAC : Quel est son but :

Le but de ce plugin est de vous indiquer par une petite boà®te d’info si vos thèmes contiennent ou non du code malicieux ou non attendus, je cite « TAC checks themes for malicious or potentially unwanted code ».

TAC : Comment ça marche :

TAC n’est qu’un script PHP qui vérifie des mots-clés considérés comme « mauvais », c’est tout.

Prélude :

Voici le screenshot de mes 3 thèmes dans mon dashboard :

J’ai donc clairement un thème considéré comme « mauvais », et 2 autres considérés comme « bons ».

Ma démonstration :

Je vais traiter 3 cas :

  1. Le premier (Brave Zeenat) sera celui du thème premium que j’ai téléchargé sur un site qui me le propose gratuitement
  2. Le second (Renova) celui du thème gratuit que j’ai pris chez l’auteur lui même
  3. Le troisième (TwentyEleven) est celui d’un thème connu que je modifie pour le rendre vulnérable/malicieux.

CAS 1

J’ai donc téléchargé un thème premium gratuitement (ce qui légal puisque les thèmes WordPress sont sous GPLv2, mais en faisant ça je prends le risque d’avoir du code malicieux et je n’aurais ni les mises à jour, ni le support utilisateur, je vous invite donc à acheter vos thèmes au lieu de les télécharger, merci).

Il s’agit de Brave Zeenat. Comme vous le voyez sur la capture précédente, ce thème contient du code malicieux … zut !!

Voici le détail :

Et le fichier incriminé « footer.php » en gros plan :

Aie, je vois effectivement du code incompréhensible, développeur ou pas, j’ai bien compris que ce code doit faire des saletés sur mon site si je l’active, pour savoir ce qu’il fait, il faudrait faire de la Rétro-ingénierie, ce qu’on ne peut faire QUE si on a un profil de développeur avancé.

Disons que … je suis l’auteur de ce hack, j’ai donc acheté le thème, puis j’insère mon code malicieux qui va par exemple ajouter du BalckHat SEO ou dérober vos informations de connexion à la BDD etc, je vois que TAC me grille !! Je vais modifier mon thème pour que TAC soit gentil avec lui, ça donne :

Ha, merci TAC ça fait plaisir. Il m’a suffit de regarder comment TAC détecte mon code pour déjouer ses vérifications.

Voici mes modifications apportées au fichier « footer.php » :

Moralité : La recherche de mots-clés n’est pas pertinente pour ce genre de travail de détection de fonctions dangeureuses

CAS 2

Ce thème disponible ici : http://www.llow.it/renova/ contient des failles web de niveau critique. J’ai alerté l’auteur, il m’a répondu mais n’a pas donné suite. J’ai donc annoncé sur twitter que ce thème (et les autres du même auteur) contiennent des failles.

Voici 2 captures illustrant par un simple exemple de quoi est capable la faille : modifier la description de mon blog, mais la faille CSRF permet bien pire car elle peut être utilisée pour modifier n’importe quelle option de vote site dont les token de sécurité, garants de la sécurité de mes formulaires dans WordPress, une fois en possession du hacker, il peut utiliser la faille CSRF sur toute mon installation …

Mais alors que fait la police TAC ? Il lui est impossible de détecter des failles web, certes ici les failles présentes ne sont pas volontaires, néanmoins, ce n’est pas moins dangeureux d’utiliser ce thème, voire pire !!

Allez pour en rajouter un peu, je vais le modifier pour qu’il ne voit pas les liens « statics« , avant modification du code :

Voici le code modifié :

Oui, j’ai « juste » ajouté des balises PHP au milieu du mot HTTP et la détection s’arrête là …

CAS 3

Ici je vais modifier TwentyEleven pour ajouter du code malicieux et une faille web de type XSS. Idem je vais le faire dans le footer.

Voici le code ajouté :

Qu’en penses TAC ? Détecte-t-il la faille XSS ? Détecte t-il le code malicieux qui ajoute un lien ? Peut être en lien « static » comme pour les autres thèmes ?

Non, tout va bien, pas de lien, pas de faille, tout est OK, je peux donc partager ce thème et laisser penser que c’est le thème d’origine.

Moralité

TAC est utile dans un premier jet, si il découvre du code qu’il n’aime pas, il vous le dira, néanmoins cela peut aussi être du code nécessaire au thème sans pour autant être mauvais, premier cas du faux positif. Si il vous indique que tout est OK, vous vous devez de ne pas le croire et regarder le code de vous même si vous avez le profil ou le faire vérifier par un expert WordPress.

Je rappelle que le but n’est pas de démonter TAC, d’autres plugins font le même travail en scannant les plugins, j’aurais fait le même article qu’ici car c’est la même chose, même finalité pour moi :

Un script ne peut pas faire le travail d’un humain, cela revient au chat et à la souris. L’auteur met à jour son script pour mieux détecter les vulnérabilités, je lis son code, je détourne d’une autre façon, et on recommence en boucle…

J’attends vos critiques 😉

Vous aimez ? Partagez !


Réagir à cet article

220 caractères maximum