Le Règlement Général sur la Protection des Données (RGPD) de l’UE est censé inciter les entreprises à faire très attention aux données personnelles de leurs clients. Cela inclut de récupérer un consentement explicite afin d’utiliser de telles données et les protéger vis à vis de potentiels usurpateurs d’identité.
WP GDPR Compliance est un plugin qui permet aux propriétaires de sites WordPress d’ajouter une case à cocher au niveau de leurs sites web. La case à cocher permet aux visiteurs, qui confient leurs données personnelles, de donner aux propriétaires de ces sites l’autorisation de les utiliser dans un but bien précis, tels que le traitement d’une commande client par exemple. Il permet également aux visiteurs de demander des copies des données que le site détient à leur sujet.
Les utilisateurs envoient ces demandes via admin-ajax.php
, un fichier permettant aux navigateurs de se connecter au serveur WordPress. Il utilise Ajax, une combinaison de technologies JavaScript et XML qui crée des interfaces utilisateur plus fluides. Ce système est apparu pour la première fois dans WordPress 3.6 et permet au système de gestion de contenu d’offrir, entre autres, un meilleur suivi automatique des enregistrements et des sauvegardes.
Le plugin GDPR WordPress permet également aux utilisateurs de le configurer via admin-ajax.php
, et c’est là que les problèmes commencent. Les attaquants peuvent lui envoyer des commandes malveillantes qu’il stocke et exécute. Ils peuvent aussi l’utiliser pour déclencher leurs propres actions WordPress.
Wordfence, l’entreprise de sécurité WordPress qui a découvert la faille, a déclaré que les pirates l’exploitaient de deux manières.
Dans le premier cas, les attaquants ont créé des comptes administratifs en permettant aux nouveaux utilisateurs de s’enregistrer, puis de modifier un paramètre pour en faire automatiquement des administrateurs. Ensuite, ils ont installé un plugin malveillant qui a infecté le site avec des malwares. Les attaquants utilisaient cette méthode pour installer un shell Web PHP, à savoir un script qui leur donne des capacités d’administration distante sur le serveur web, leur fournissant ainsi un accès terminal et un gestionnaire de fichiers, a rapporté Wordfence.
Dans le deuxième cas, les attaquants ont uploadé une série de tâches scriptées via WP-Cron. Cron est un système de planification de tâches commun qui gère les travaux sur les systèmes Unix, et WP-Cron est le moyen utilisé par WordPress pour gérer les tâches planifiées.
Cette attaque, plus complexe que la première, utilisait le plugin ecommerce WooCommerce, qui est l’un des plugins pris en charge par WP GDPR Compliance. Il a piraté une fonction WooCommerce pour installer un autre plugin appelé 2MB Autocode. Ce plugin permettait aux administrateurs d’injecter leur propre code PHP dans les publications WordPress.
Les attaquants ont utilisé cette attaque pour injecter un script PHP de type backdoor qui téléchargeait du code depuis un autre site. Le plugin 2MB Autocode s’est ensuite lui-même supprimé.
Wordfence n’a pas trouvé de charge virale exécutable évidente dans cette attaque, mais a déclaré que les attaquants étaient peut-être en train de construire une collection de sites web et attendaient le moment opportun :
Il est possible que ces attaquants stockent des hôtes infectés pour les packager et les vendre à un autre acteur qui aura ses propres intentions. Il est également possible que ces attaquants aient leurs propres objectifs en tête, mais n’ont pas encore enclenché la phase suivante de cette attaque.
Les développeurs de ce plugin GDPR WordPress ont corrigé la faille après que l’équipe de sécurité WP ait supprimé le plugin du répertoire en question. Depuis lors, l’équipe WP l’a rendu accessible au public.
Cependant, certains utilisateurs n’ont pas été assez rapides pour mettre à jour leurs systèmes. Voici un message publié sur le forum d’assistance du plugin GDPR WordPress :
Je n’ai pas été assez rapide pour mettre à jour et j’ai été victime du piratage du plugin GDPR WordPress. Le site web est maintenant HS. Erreur HTTP 500.
Billet inspiré de WordPress GDPR compliance plugin hacked, sur Sophos nakedsecurity.