authenticity-seal[1]

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 :

Et après modification rapide :

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à …

Hors sujet : Dans la v3.0 de boiteaweb.fr il y aura une catégorie pour indiquer quels sont les thèmes vulnérables.

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 ;)

Lire la suite

Vous aimez ? Partagez !

6 réflexions sur “ TAC: Theme Authenticity Checker

  1. Et bien, ça c’est de l’article! très belle démonstration. On est d’accord:-) Il suffit de lire le plugin TAC pour le contourner en l’occurrence, même si il permet de détecter certaines banalités malgré tout, cela reste insuffisant pour le newbie qui croira avoir le thème/plugin le plus sûr de la planète…
    1. Merci à toi, j’attendais ton avis, mais pas si rapide, ça me fait plaisir :)
      Les plugins étant en source lisible, un développeur peut effectivement réussir à contourner les vérifications. Le fameux jeu du chat et de la souris :/
  2. Bonjour,
    je suis arrivé sur votre blog par la newsletter de GeekPress et ne suis pas déçu.
    Je ne suis pas du tout informaticien et je n’ai certes pas tout compris, si ce n’est l’essentiel : le recours à l’Humain est prépondérant !
    Je suis en phase de recherche d’un thème un peu plus « sexy » que celui que j’utilise actuellement (lequel a quand même été amélioré par un copain) mais je reste perplexe devant la profusion et la diversité de l’offre en la matière.
    Votre très brillante démonstration, à l’évidence désintéressée, et ne peut que m’inciter à recourir à des « services externes ».
    Désormais je vous suis (du verbe suivre) et ne manquerai pas de m’adresser à vous quand mon CA prendra un peu plus d’ampleur.
    1. Pour la recherche de thème je conseille wp-themes-pro.com que vous retrouverez dans la side bar de droite –>
      Pour ce qui est des audits de thème ou plugin, contactez moi quand en avez le besoin, peut importe le CA ;)
  3. Je suis totalement d’accord avec ta conclusion, rien ne vaut une vérification humaine. Le plus sympa c’est de voir les différents types de contournements qu’essayent de mettre en place ceux qui conçoivent les thèmes pour afficher leur lien vers des cibles sensibles.
  4. Merci à vous pour votre article,
    Je pense que je suis déjà victime de mon ignorance et je souhaiterais que tu m’aides à régler mon problème.

    Actuellement je n’arrive pas à accéder à l’admin de blog wordpress . Le blog est accessible mais aucune possibilité de me connecter à mon admin pour faire quoique ce soit. Je suis un débutant et je ne m’y connais pas trop sur les aspects techniques. Mon hébergeur n’a pas pu régler encore mon problème. Il me dit que cela nécessite le travail d’un technicien.

    Voici le diagnostic de mon hébergeur:

    Je viens de tester, et effectivement, il y a un gros conflit qui interdit l’affichage de la zone wp-admin.
    Plusieurs causes sont possibles :
    - les fichiers .htaccess étaient corrompus, je les ai renommés pour tenter un accès, sans succès (il faudra cependant les reconstruire pour un fonctionnement normal)
    - W3C , le plugin « cache », est très dangereux à utiliser, et il perturbe énormément le fonctionnement des sites. Il serait préférable de le désactiver directement dans la base de données.

    Il semble que votre thème WP soit également corrompu, probablement des codes de type eval() qui trainent… Le traitement global du problème nécessite l’intervention d’un technicien, pour une remise aux normes de l’ensemble de l’installation.

    C’est là son message et je suis encore dans mes soucis.

    Je vous prie de bien vouloir m’aider à résoudre ce problème.

    D’avance merci!

Envie de dire quelque chose ?

Avant de parler, merci de lire la charte des commentaires.

Utiliser le tag [php][/php] pour ajouter du code ou utilisez un service comme pastebin.com.
Cibler un commentateur avec un "@", merci à Mention Comments Authors !