Récemment, le blog de Sucuri a publié un article sur les possibles utilisations malveillantes du manager de balises de Google. C'est une occasion de rappeler, une fois de plus, que la sécurité doit rester votre priorité, particulièrement lorsque vous utilisez des outils aussi puissants dans un site Joomla!®, ou n'importe quel autre CMS.
Qu'est-ce que le Google Tag Manager ?
Si (presque) tout le monde connaît Google Analytics, l'outil d'analyse de trafic Internet de Google, beaucoup de propriétaires de sites n'ont pas entendu parler de ce gestionnaire de balises. Le Google Tag Manager est un outil gratuit qui permet aux gestionnaires d'insérer (assez) facilement une multitude de balises sur les pages de leurs sites.
En effet, si vous voulez en même temps :
- étudier le comportement des visiteurs avec une (ou plusieurs) solution analytique
- gérer des campagnes de remarketing
- suivre les résultats de vos campagnes publicitaires Facebook, ou d'autres réseaux sociaux
- comptabiliser les événements se déroulant sur votre site, tels que les clics sur certains boutons ou sur le lien vers un numéro de téléphone
- ajouter un service de chat en direct, comme Zopim,...
- ...
vous devez chaque fois insérer un script sur la ou les pages correspondantes, ce qui peut rapidement s'avérer fastidieux ou très compliqué.
Avec le gestionnaire de balises, vous avez une seule ligne de code à insérer dans votre template, tout le reste est configuré au sein du gestionnaire, par vous-même ou par un administrateur que vous désignez et qui n'aura pas besoin d'avoir accès à votre site.
Quels sont les risques de l'utilisation du Google Tag Manager ?
Une fois le code du gestionnaire de balises ajouté dans le template du site, l'avantage principal est de pouvoir insérer rapidement n'importe quel code dans les pages sans avoir accès au site lui-même : tout se fait dans la console du gestionnaire. Il s'agit d'un gain de temps considérable, mais aussi d'une source de danger, tout aussi considérable, si les mesures de sécurité appropriées ne sont pas appliquées.
En effet, si une personne mal intentionnée arrive à prendre le contrôle du gestionnaire, elle peut injecter virtuellement n'importe quel code dans votre site, depuis les publicités pour les produits pharmaceutiques jusqu'aux scripts de minage de bitcoins ou les tentatives de phishing. Ce n'est donc pas une utilisation à prendre à la légère, mais il existe des moyens d'éviter le pire.
Il y a en gros deux modes d'attaque à considérer :
- Le pirate a gagné l'accès au manager lui-même : c'est évidemment à éviter. Pour se protéger, comme cet accès s'effectue via un compte Google, nous vous recommandons :
- de créer un compte en utilisant une adresse email liée à votre domaine et jamais une adresse Gmail. De cette façon, vous avez (sauf cas de piratage très grave) toujours accès à la configuration de votre compte email et pourrez reprendre la main en cas de piratage.
- de sécuriser impérativement l'accès au Tag Manager avec la validation en deux étapes. Google met plusieurs moyens différents à votre disposition : clé de sécurité, message vocal ou SMS, application Google Authenticator, ....
- Le pirate a gagné l'accès à votre site : s'il a accès aux fichiers se trouvant sur le serveur, il lui suffit remplacer l'ID de votre Tag Manager par le sien pour commencer à envoyer ses propres balises sur le site. C'est certainement une situation plus grave que la précédente parce que les dégâts potentiels peuvent être considérables. Vous devrez procéder à un nettoyage du site en profondeur pour être sûr d'éliminer toutes les "portes dérobées" que le hacker n'aura pas manqué de laisser derrière lui pour répéter son attaque encore et encore. Il est donc essentiel de protéger le plus soigneusement possible l'accès aux fichiers de votre installation Joomla! en respectant les règles suivantes :
- Désactivez le protocole FTP, qui n'est pas du tout sécurisé, et préférez-lui le mode SFTP (SSH File Transfer Protocol) ou, à défaut, le FTP-SSL (Explicit AUTH TLS). Ces réglages s'effectuent dans la console de votre hébergement. Dans le cadre de notre formule d'hébergement Joomla! "sans soucis", l'accès au serveur s'effectue uniquement par SFTP.
- Utilisez toujours un logiciel FTP pour accéder au serveur (nous recommandons Cyberduck, disponible pour MacOs et Windows) et n'installez pas d'extension FTP pour Joomla!, comme eXtplorer par exemple. Une autre alternative sûre est d'utiliser le gestionnaire de fichier disponible dans la console de votre hébergement, bien qu'il soit en général moins pratique à utiliser pour le chargement/téléchargement de nombreux fichiers.
- Ne sauvegardez pas le mot de passe de l'accès (S)FTP dans le logiciel, car de nombreux cas de piratages ont été perpétrés suite à la récupération de ceux-ci par des spywares ou des keyloggers installés sur les ordinateurs. Confiez ce mot de passe à un gestionnaire sécurisé comme Lastpass.
- Enfin, retenez que, dans la gestion courante de Joomla!, vous n'avez qu'exceptionnellement besoin de l'accès aux fichiers. Vous pourriez donc désactiver complètement la fonction FTP, quitte à la réactiver ponctuellement si nécessaire.
Dans les deux situations décrites ci-dessus, une protection supplémentaire est possible via la mise en place d'une CSP : Content Security Policy. Il s'agit d'une liste de tous les domaines autorisés à injecter du contenu (JavaScript, images, css, iframe) dans un site. Le contenu provenant de domaines ne figurant pas dans cette liste est rejeté par le navigateur. Cette CSP peut être ajoutée au site via le fichier .htacces situé à la racine de l'installation Joomla!, mais si un pirate gagne l'accès au serveur, il pourra modifier le contenu du fichier et supprimer la protection. Dans notre formule d'hébergement sécurisé pour Joomla!, nous insérons la CSP au niveau du serveur pour éviter ce type de modification. Vous pouvez tester la présence (ou l'absence) d'une CSP sur le site Security headers.
Si vous avez besoin d'aide pour configurer le Google Tag Manager ou installer une Content Security Policy, n'hésitez pas à nous contacter. Et quoi qu'il arrive, restez vigilants !