Articles sur la sécurité

Il existe un nombre important d'articles sur la sécurité de Joomla remontant à de nombreuses années. Malheureusement, beaucoup d'entre eux sont obsolètes et peut-être trompeurs. Par exemple, il existe une série d'articles de liste de contrôle de sécurité qui ne traitent pas tous réellement de la sécurité.

Cet article est basé sur un article du Joomla! Community Magazine écrit par Ahmad Moussa dans l'édition d'avril 2021.

Bonnes pratiques pour sécuriser votre site Joomla

Le système de gestion de contenu (CMS) Joomla est largement répandu sur internet en raison de sa facilité d'utilisation et de sa popularité, puisqu'il s'agit du deuxième CMS le plus téléchargé avec plus de 110 millions de téléchargements. Mais, même s'il est populaire, Joomla et tous les autres sites web, applications, sites de e-commerce ou autres CMS comportent des risques de sécurité. Vous ne pouvez pas y échapper, mais heureusement, prendre les bonnes précautions dès le départ peut garantir la protection de votre site.

Nous avons compilé pour vous ce guide complet et détaillé, étape par étape, sur la sécurité de Joomla. Il vise à fournir des étapes faciles à suivre pour renforcer la sécurité de votre site Joomla. Donc, si la sécurisation de votre site Joomla contre toutes les attaques à venir est à votre agenda, alors lisez-le. Tous les conseils mentionnés dans cet article visent à vous assurer que vous mettez en œuvre les meilleures pratiques de sécurité et de maintenance pour protéger vos actifs les plus importants en ligne.

1. Choisir des identifiants et mots de passe intelligents

Soyez intelligent lorsque vous choisissez vos identifiants et mots de passe d'administration Joomla. N'utilisez pas "admin" comme identifiant et choisissez un mot de passe complexe. C'est probablement l'un des meilleurs moyens de renforcer la sécurité de Joomla, et ironiquement, c'est l'un des plus simples.

L'utilisation d'un mot de passe sécurisé est nécessaire pour une bonne sécurité de Joomla. Assurez-vous que votre mot de passe de connexion est suffisamment long (8 à 14 caractères) et comprend des lettres, des chiffres et des symboles. Comme les mots de passe sont sensibles à la casse, l'utilisation de lettres majuscules et minuscules le rend encore plus fort. De plus, prenez l'habitude de changer les mots de passe d'administration au moins une fois par mois.

2. Appliquer le principe du moindre privilège

Assurez-vous de bien comprendre les trois groupes de droits distincts :

  1. Gestionnaires : Disposent du moins d'accès à l'administration de Joomla. Peuvent créer et modifier des catégories et des articles. Ont accès au gestionnaire de médias et peuvent téléverser et supprimer des médias. Ne peuvent pas installer ni supprimer d'extensions.
  2. Administrateurs : Disposent de tous les droits des Gestionnaires, ainsi que de quelques droits supplémentaires. Ont accès à la Gestion des utilisateurs, au Gestionnaire de menus et au Gestionnaire d'extensions. Ne peuvent pas accéder au menu de Configuration globale de Joomla.
  3. Super utilisateurs : Disposent d'un accès complet à l'Administration de Joomla. Ont tous les droits des Gestionnaires et des Administrateurs, ainsi que l'accès à la Configuration globale. Seuls les Super utilisateurs peuvent ajouter, modifier et supprimer des Super utilisateurs.

Il est important de répartir soigneusement ces rôles entre votre groupe d'utilisateurs. Toute personne ayant un rôle de Super utilisateur peut effectuer n'importe quelle action dans le système Joomla. Si vous déléguez des tâches à un membre de l'équipe qui nécessitent moins de droits, attribuez au compte de ce membre la description d'accès minimale.

3. Utiliser l'authentification multifacteurs de Joomla

Il est fortement recommandé d'activer l'authentification multifacteurs de Joomla, qui ajoute une couche de sécurité supplémentaire à votre site Joomla. Traditionnellement, lorsque vous souhaitez vous connecter à votre site web, vous devez saisir votre identifiant et votre mot de passe afin de vous identifier dans le système. Le plus gros problème avec cette approche est que votre identifiant et votre mot de passe peuvent être volés ou devinés. Par conséquent, les plugins d'authentification multifacteurs de Joomla peuvent protéger votre site web des pirates en ajoutant une deuxième couche de sécurité. Vous avez le choix entre cinq méthodes différentes après avoir saisi votre identifiant.

4. Restreindre l'accès à l'administration de Joomla

Il est judicieux de limiter l'accès à l'administration de Joomla à l'aide d'un filtrage par IP, car il s'agit d'une ressource sensible. Cela peut également être fait pour d'autres dossiers sensibles de Joomla en suivant les étapes mentionnées ci-dessous :

Étape 1 : Créer tout d'abord un fichier .htaccess s'il n'est pas déjà présent dans le répertoire que vous souhaitez protéger.

Étape 2 : Ajouter le code suivant au fichier .htaccess : Order Deny, Allow Deny from all Allow from xx.xx.xx.xx

Étape 3 : Saisir l'adresse IP dédiée depuis laquelle vous souhaitez autoriser l'accès à la place de xx.xx.xx.xx.

Plus d'informations sur la restriction de l'accès à un répertoire par adresse IP à l'aide du htaccess peuvent être trouvées dans cet article de la Documentation Joomla!. Vous pouvez également utiliser des extensions de sécurité qui peuvent restreindre l'accès à l'Administration de Joomla à l'aide de la fonctionnalité de filtrage par IP et qui incluent de nombreuses autres fonctionnalités renforçant la sécurité de votre site Joomla.

5. Utiliser des connexions FTP sécurisées

Assurez-vous que les connexions utilisées pour accéder aux fichiers de votre site Joomla sont sécurisées. Vous devriez utiliser le cryptage SFTP si votre hébergeur le propose, ou bien SSH. Si vous utilisez un client FTP, le port par défaut pour SFTP est généralement le 22.

Certains clients FTP stockent les mots de passe en texte brut ou encodés sur votre ordinateur. Même certains mots de passe encodés peuvent être reconvertis dans leur forme d'origine. Nous recommandons fortement de ne pas enregistrer les mots de passe FTP dans le client afin d'éviter tout piratage.

6. Effectuer des sauvegardes régulières

Gagnez du temps en vous préparant au pire scénario possible en cas d'attaque de votre site. Il est donc conseillé de créer une sauvegarde complète et fonctionnelle de votre site Joomla. Une sauvegarde fonctionnelle permet de restaurer votre site en quelques minutes après une cyberattaque.

Les deux composants principaux d'une sauvegarde sont :

  • Le noyau Joomla et les autres fichiers importants
  • La base de données

De plus, les méthodes de sauvegarde peuvent également être flexibles. Vous pouvez effectuer une sauvegarde de deux manières – manuelle et automatisée, comme décrit ci-dessous :

Processus manuel

La sauvegarde manuelle d'un site Joomla nécessite deux composants : les fichiers et la base de données. Pour sauvegarder vos fichiers et dossiers Joomla, utilisez un utilitaire FTP ou le gestionnaire de fichiers si vous utilisez un hébergement tiers.

Les clients FTP peuvent télécharger tous les fichiers un par un sur votre machine locale. Cependant, ce processus peut être lent. Une fois les fichiers téléchargés, compressez le dossier en un seul fichier zip puis protégez-le par un mot de passe.

La base de données peut quant à elle être sauvegardée en exportant une copie de la base de données sur votre ordinateur. Connectez-vous à la base de données que vous souhaitez exporter à l'aide de phpMyAdmin. Cliquez sur le nom de la base de données sur le côté gauche de la page. Une fois que vous avez cliqué sur votre base de données Joomla, vous devriez arriver sur un écran comportant un onglet intitulé « Exporter ». Sélectionnez l'onglet Exporter puis cliquez sur le bouton intitulé « OK ». Enregistrez-le ensuite dans un emplacement sécurisé.

Processus automatisé

Pour une sauvegarde automatisée, une extension Joomla comme Akeeba Backup peut être utile. Installez l'extension Akeeba Backup sur votre site Joomla après l'avoir téléchargée depuis le site officiel du développeur. Une fois l'installation terminée, accédez au tableau de bord de l'extension puis sauvegardez votre site. Une fois la sauvegarde terminée, vous serez redirigé vers une page. Ici, cliquez sur « Gérer les sauvegardes ». Cela ouvrira une page contenant toutes les sauvegardes. Vous pouvez télécharger la sauvegarde depuis cet endroit et l'enregistrer localement.

7. Maintenir votre site Joomla à jour

La mise à jour de votre site Joomla peut apporter sécurité et stabilité au site. De plus, toutes les mises à jour ne sont pas des mises à jour complètes de version du site ; certaines sont mineures et ne concernent que des corrections de bugs, tandis que d'autres sont des mises à jour de version.

Joomla dispose d'une équipe de sécurité dédiée reconnue pour déployer rapidement des correctifs. Ne pas appliquer de correctifs à votre site Joomla peut le rendre vulnérable au piratage.

Pour vérifier si des mises à jour sont disponibles pour votre site, vous pouvez procéder comme suit :

Étape 1 : Connectez-vous à votre site Joomla en tant qu'administrateur

Étape 2 : Naviguez ensuite vers Composants > Mise à jour Joomla

Étape 3 : Joomla va maintenant vérifier si une nouvelle mise à jour est disponible. Si une nouvelle mise à jour s'affiche, il suffit de cliquer sur l'option « Installer la mise à jour ».

Avant de passer à une nouvelle version de Joomla, certains points doivent être vérifiés :

  • Mise à jour des templates : Vérifiez que vos templates Joomla sont compatibles avec la nouvelle version de Joomla. Si ce n'est pas le cas, demandez à l'auteur du template de le mettre à jour ou utilisez une alternative.
  • Mise à jour des extensions : Inspectez et assurez-vous que toutes les extensions Joomla sont compatibles avec la nouvelle version de Joomla. Supprimez celles qui ne le sont pas. Pour mettre à jour les extensions, accédez à Extensions > Gestion et cliquez sur mettre à jour.
  • Vider le cache : Après avoir mis à jour votre site vers une nouvelle version de Joomla, videz le cache de votre site Joomla. Cela peut être fait à l'aide de la fonctionnalité intégrée de Joomla.

8. Utiliser des extensions et templates tiers de confiance :

Il est recommandé d'utiliser un nombre minimal d'extensions sur votre site web afin d'obtenir un niveau de sécurité Joomla optimal. L'utilisation d'extensions ou de templates tiers non fiables peut entraîner des vulnérabilités et affecter les performances de votre site Joomla. Toutes les extensions tierces ne sont pas exemptes de problèmes ; si vous avez la possibilité d'éviter une extension tierce, faites-le ! Choisissez et utilisez des extensions et templates professionnels provenant d'entreprises réputées, et maintenez-les à jour pour protéger votre site.

9. Mettre à jour la version PHP de votre site Joomla

Protégez votre site contre divers types d'attaques et renforcez la sécurité de votre site Joomla en mettant à jour la version PHP de votre site vers la dernière version stable. Veillez à choisir une version de PHP compatible avec vos templates et extensions Joomla afin d'éviter de casser votre site. Il existe plusieurs façons de mettre à jour votre version de PHP. Les principales sont présentées dans un article du numéro de septembre 2020 du Joomla Community Magazine : How do I update my PHP version?.

10. Renforcer les en-têtes de sécurité HTTP

Il est fortement recommandé de mettre en place ou de mettre à jour les en-têtes de sécurité HTTP, car ils offrent une couche de sécurité supplémentaire pour votre site Joomla en aidant à atténuer les attaques et les vulnérabilités de sécurité. Ils ne nécessitent généralement qu'une petite modification de configuration sur votre serveur web. Ces en-têtes indiquent à votre navigateur comment se comporter lors du traitement du contenu de votre site. Voici six en-têtes de sécurité HTTP courants à vérifier :

  • Content-Security Policy
  • X-XSS-Protection
  • Strict-Transport-Security
  • X-Frame-Options
  • Public-Key-Pins
  • X-Content-Type

11. Utiliser une extension de sécurité Joomla

Il est nécessaire de limiter le nombre de tentatives de connexion sur l'Administration de Joomla afin d'éviter les attaques par force brute sur votre site Joomla. Cela peut être mis en œuvre grâce à diverses extensions de sécurité Joomla qui protègent l'Administration de votre site contre les tentatives de piratage. Vous trouverez de telles extensions dans la catégorie sécurité des extensions Joomla.

12. Choisir un hébergeur sécurisé

Assurez-vous que l'hébergeur que vous choisissez met en œuvre des mesures de sécurité Joomla. Si vous optez pour un hébergement mutualisé, assurez-vous que le sous-réseautage est mis en place en tenant compte de la sécurité Joomla. L'achat d'un hébergement mutualisé bon marché peut ne pas être un point de départ idéal, car votre site sera plus lent, exposé au spam en raison d'un « mauvais voisinage » de sites peu réputés, et pourrait être compromis si d'autres sites étaient piratés. De plus, lors du choix d'un plan d'hébergement, vérifiez divers paramètres tels que la personnalisation, le support, les avis, etc.

13. Utiliser SSL pour renforcer la sécurité de Joomla

Il est fortement recommandé d'installer un certificat SSL (Secure Socket Layer) sur votre site web, car il chiffrera la communication entre votre site Joomla et les navigateurs de vos visiteurs. Obtenez un certificat SSL auprès d'une autorité de certification vérifiée et assurez-vous que tout votre trafic HTTP est redirigé vers HTTPS. Pour ce faire, ajoutez le code suivant à votre fichier .htaccess :

# Redirect HTTP to HTTPS
RewriteEngine On RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

14. Audit de sécurité Joomla fréquent

Il est extrêmement important de découvrir les vulnérabilités avant qu'un pirate ne le fasse afin de garder votre site Joomla sûr et sécurisé. Cela peut se faire en choisissant un outil d'audit de sécurité professionnel qui peut vous faire gagner beaucoup de temps dans la gestion de vos sites. Des audits de sécurité méticuleux sont un excellent moyen de renforcer la sécurité de votre Joomla. De nombreux services le font en automatisant des tâches telles que la création de sauvegardes de sites, la recherche de signes d'intrusion et la mise à jour groupée des extensions auxquelles vous faites confiance. Il peut également analyser votre site pour vérifier l'utilisation des meilleures pratiques de sécurité et effectuer une analyse approfondie pour rechercher les menaces de sécurité potentielles. Ces services utilisent un mélange optimisé de mécanismes manuels et automatisés pour découvrir les vulnérabilités de votre site Joomla.

15. Vérifier les messages post-installation

Il est fortement recommandé de lire tous les messages post-installation, car l'équipe Joomla vous fournit des informations importantes qui nécessitent votre attention après une mise à jour, ou après l'installation de Joomla pour la première fois. Ces messages contiennent le plus souvent des configurations de sécurité Joomla ou des modifications de fichiers qui doivent être effectuées manuellement et qu'une mise à jour ne peut pas modifier.

16. Apprendre à connaître les extensions vulnérables

Vérifiez toujours le site Web de la liste des extensions vulnérables ainsi que ses pages de réseaux sociaux afin de connaître les derniers risques de sécurité et les correctifs possibles. Il est recommandé de désinstaller toute extension répertoriée dans la liste des extensions vulnérables pour laquelle aucun correctif n'est connu. Assurez-vous de mettre à jour votre extension vulnérable dès que son correctif est disponible. Si votre site utilise une version vulnérable d'une extension qui ne dispose pas de mise à jour corrective, il est recommandé de la remplacer.

Conclusion

Comme il y aura toujours un risque, la sécurité de Joomla restera un processus continu, nécessitant une évaluation fréquente des vecteurs d'attaque possibles. Les propriétaires de sites et les administrateurs doivent toujours améliorer la sécurité de leur site afin de réduire le risque de compromission.