Quelles sont les meilleures pratiques pour sécuriser votre site Joomla ?
Le système de gestion de Contenu (CMS) Joomla est d' un usage très rependu sur le web, c'est le résultat de sa simplicité d'utilisation & de sa popularité, il est ainsi le deuxième CMS le plus téléchargé au monde : plus de 110 million de Fois. Bien qu'il soit populaire, Joomla comme que tous les autres sites web, application, sites e-commerce et autres CMS, doit gérer des risques liés à la sécurité. Vous pouvez apprendre les bonnes précautions/réflexes au plus tôt afin de sécuriser votre site.
Nous avons compilé cette checklist exhaustive sur la sécurité de Joomla. Son but est de vous fournir une liste d'étapes faciles à suivre pour améliorer la sécurité de votre site. Toutes ces recommandations sont là pour s'assurer que vous mettrez en place les meilleurs pratiques de sécurité et de maintenance afin de protéger votre plus important asset en ligne.
1. Choisissez des identifiants et mots de passe complexes
Soyez vigilants lors du choix de vos identifiants et vos mots de passe. N'utilisez pas "admin" comme identifiant et choisissez un mot de passe complexe. C'est fort probablement la façon la meilleure pour améliorer la sécurité de Joomla et, ironiquement c'est aussi la plus simple.
Utilisez un mot de passe sécurisé est nécessaire pour la bonne sécurité de Joomla. Assurez vous que votre mot de passe soit assez long (8 à 14 charactères) et qu'il contienne des lettres, numéros, et symboles. Comme les mots de passe peuvent inclurent des majuscules et des minuscules faîtes en bon usage. Enfin, prenez l'habitude de changer votre mot de passe au moins une fois par mois.
2. Utilisez le principe du moindre privilège
Assurez-vous que vous compreniez les permissions des 3 différents groupes d'utilisateurs suivant :
- Gestionnaires : ont l'accès le plus restreint au backend de Joomla. Ils peuvent créer et éditer des catégories & articles. ils ont accès au média manager & peuvent télécharger et supprimer des médias. Ils ne peuvent pas installer ou désinstaller des extensions.
- Administrateurs : ont les droits des Gestionnaires, mais aussi quelques permissions supplémentaires. Ils ont accès à la gestion des utilisateurs, le gestionnaire de menus, et le gestionnaire des Extensions. Il n'ont pas accès au menu de la configuration global de Joomla.
- Super Utilisateurs : ont un accès complet au backend de Joomla. Ils ont les droits des Gestionnaires et Administrateurs et ont accès à la configuration globale. Seuls les Super Utilisateurs peuvent ajouter, éditer et supprimer des Super Utilisateurs.
Il est important d'assigner ces rôles avec précautions à vos groupes d'utilisateurs. Toute personne assignée au groupe Super Utilisateurs peut accomplir n'importe quelle tache dans le système de Joomla. Si vous déléguez des taches à un membre de votre équipe qui à besoin de moins de permissions, assignez le au groupe avec le minimum de permission d'accès.
3. Utilisez l'authentification en 2 étapes de Joomla
Il est grandement recommandé d'activer l' authentification en deux étapes de Joomla qui ajoute une protection de sécurité supplémentaire à votre site Joomla. Traditionnellement lorsque vous vous voulez connecter à votre site Joomla, vous devez fournir votre identifiant et mot de passe. Le gros problème avec cette approche est que votre identifiant et mot de passe peuvent être volés ou devinés. Le plugin d'authentification en 2 étapes de Joomla peut protéger votre site contre les hackers en ajoutant une 2ème couche de sécurité supplémentaire qui vous demande de saisir une code à 6 chiffres, après avoir saisie votre identifiant et mot de passe, ce code change toutes les 30 secondes ce qui rend quasiment impossible aux hackers de deviner ce code.
4. Restreindre l'accès à l'administration/backend de Joomla
Il est avisé de limiter l'accès à l'administration de Joomla en utilisant la technique de filtre d'IP. La technique décrite ci-dessous peut aussi être appliquée sur des dossiers critiques de Joomla.
Etape n°1 : Créer un fichier .htaccess si il n'est pas déjà présent dans le répertoire que vous souhaitez protéger.
Etape n°2 : ajouter le code ci-dessous dans votre fichier .htaccess :
Order Deny, Allow
Deny from all
Allow from xx.xx.xx.xx
Etape n°3 : Saisissez l' adresse IP pour laquelle vous souhaitez permettre l'accès en remplaçant xx.xx.xx.xx par votre adresse IP.
Pour plus d'informations sur l'utilisation du .htaccess afin de restreindre l' accès à des répertoires via l' adresse IP consultez cette page : How do you restrict directory access by IP address using htaccess?
5. Utilisez une connexion FTP sécurisée
Assurez-vous que les connexions pour accéder au fichiers de votre site Joomla soient sécurisées. Vous devez utiliser SFTP, un protocole sécurisé si votre hébergement le permet ou sinon SSH. Si vous utilisez un client FTP le port par default pour SFTP est d'ordinaire 22.
Certains clients FTP enregistrent les mots de passe encryptés ou non sur votre ordinateur. Même les mots de passe encryptés peuvent être décryptés. Nous vous recommandons donc de ne pas sauver vos mots de passe dans votre client FTP pour éviter de vous faire pirater.
6. Faîtes des sauvegardes/backups régulièrement
Prenez le temps de vous préparer au pire des scénarios dans le cas ou votre site soit attaqué. Il est important de créer une sauvegarde complète de votre site Joomla. Une sauvegarde fonctionnelle vous permet de restaurer votre site en quelques minutes après une cyber-attaque.
Les deux composants d'une sauvegarde sont :
- Les fichiers de Joomla
- La base de donnée.
Vous pouvez faire votre sauvegarde de 2 façons, manuel ou automatique :
Sauvegarde manuelle
La sauvegarde manuelle d'un site Joomla se composent de deux composants : fichiers et base de donnée. Pour sauvegarder vos fichiers & répertoires Joomla, utilisez un client FTP ou un gestionnaire de fichiers de votre hébergement.
Les clients FTP peuvent télécharger les fichiers 1 par 1 sur votre ordinateur. Ce processus peut être long. Une fois que tous les fichiers sont téléchargés, comprimez le répertoire dans un seul fichier zippé et protégez par un mot de passe.
La base de donnée peut être sauvegardée en l'exportant sur votre ordinateur. Accédez à la base de données que vous souhaitez exporter en utilisant phpMyAdmin. Cliquez sur le nom de la base de données à gauche de votre page. La page à laquelle vous accédez doit contenir un onglet nommé "Exporter". Sélectionnez l'onglet Exporter puis cliquez sur le bouton "Exécuter". Puis sauvegardez la en lieu sûr.
Sauvegarde automatique
Pour créer une sauvegarde automatique vous pouvez utiliser une extensions Joomla comme Akeeba Backup. Téléchargez Akeeba Backup depuis le site https://www.akeeba.com/ et installez le comme toute extension Joomla. Une fois l'installation terminée ouvrez Akeeba Beackup puis faites la sauvegarde de votre site. Une fois la sauvegarde effectuée vous allez être rediriger vers une page, cliquez sur "Manage Backups". Vous accéderez ainsi à la page contenant tous vos backups. Depuis cette page vous pouvez télécharger votre sauvegarde pour la transférée sur votre ordinateur.
7. Maintenez votre site Joomla à jour
Maintenir votre site Joomla à jour vous permet de sécuriser votre site et d'améliorer sa stabilité . Toutes les mises à jour ne sont pas des mises à jour de version majeure, certaines sont des mises à jour mineures et adressent simplement le débogage de Joomla.
Joomla a une équipe dédiée de sécurité qui crée rapidement des patchs de sécurité. Ne pas mettre à jour votre site Joomla rend le rend vulnérable au piratage.
Pour vérifier si votre site est à jour :
- Connectez vous à l'administration de Joomla
- Rendez-vous dans Composants > Mise à Jour de Joomla!
- Joomla va maintenant vérifier si il y a des mises à jours disponibles. Si il en détecte une cliquez sur le bouton "Installer la mise à jour"
Avant de faire votre mise à jour de Joomla il y a certain points à vérifier :
- Mise à jour du template : Vérifier que votre template est bien compatible avec la nouvelle version de Joomla. Si ce n'est pas le cas demandez au créateur du template de le mettre à jour ou utiliser un autre template.
- Mise à jour des extensions : Vérifiez que toutes les extensions sont compatibles avec la nouvelle version de Joomla. Pour mettre à jour vos extensions rendez-vous dans Extensions > Gérer> Mises à jour sélectionnez les extensions que vous souhaitez mettre à jour puis cliquez sur "Mise à jour "
- Vider la cache : Après avoir mis à jour Joomla, videz le cache de votre site. Pour ce faire vous pouvez utiliser la fonctionnalité de suppression du cache de Joomla.
8. Utilisez des extensions tierces & template fiables
Il est recommandé d'utiliser un minimum d'extensions afin d'optimiser le niveau de sécurité de votre site. L'utilisation d' extensions tierces ou templates non fiables, peut créer des vulnérabilités de sécurité et altérer la performance de votre site. Une partie mineur d' extensions peuvent poser problèmes, mais si vous pouvez vous passer d' extensions tierces, n'hésitez pas ! Choisissez des extensions & templates de sociétés fiables et tenez les à jour.
9. Mettez à jour la version de PHP de votre site Joomla
Protéger votre site d'attaques variées de piratage et améliorez en sa sécurité en mettant à jour la version de PHP à sa dernière version stable. Assurez-vous que la version de PHP soit compatible avec votre template et extensions. Il y a différentes façons de mettre à jour la version de PHP. Les principales sont décrites dans l'article de septembre 2020 du Joomla Community Magazine : How do I update my PHP version ?
10. Renforcer les HTTP security headers
Il est fortement recommandé de mettre en place ou mettre à jour les HTTP security headers car ils ajoutent une couche de sécurité supplémentaire à votre site Joomla en minimisant les attaques et les vulnérabilités de sécurité. Ils ne nécessitent qu'une légère modification de votre serveur. Ces headers indique à votre navigateur comment réagir au contenu de votre site. Vous trouverez ci-dessous les six HTTP security headers communs à considérer :
- 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é
Il est nécessaire de limiter le nombre de tentatives de connexion à l'administration/backend de votre site pour déjouer les cas d'attaque par force brute (brute force attacks). Ce type de protection peut être mis en place par diverses extensions, que vous pouvez trouver sur le Joomla extension directory dans la rubrique security.
12. Choisissez un Hébergement sécurisé
Assurez-vous que votre hébergeur met en place les protections de sécurité de Joomla. Si vous avez choit un hébergement mutualisé assurez vous que le subnetting est mis en place pour prendre en compte la sécurité de Joomla. Acheter un hébergement mutualisé à bac coût n'est peut être pas le meilleur choix, votre site peut être plus lent, et peut être compromis si d'autres sites sur le même hébergement sont piratés.
13. Utiliser SSL pour booster la sécurité de Joomla
Il est fortement recommandé d'installer un certificat SSL (Secure Socket Layer) pour votre site, l'intérêt est qu' il permet de crypter les communications entre votre site et le navigateur de vos visiteurs. Obtenez ce certificat SSL d'une autorité certifiée et assurez-vous que votre trafic HTTP soit redirigé vers le HTTPS. Pour ce faire ajouter le code ci-dessous à 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. Des audit de sécurité fréquents
Il est extrêmement important d'identifier les vulnérabilités avant tout pirate afin de garder votre site Joomla sûr & sécurisé. Ce peut être fait en choisissant un outil professionnel & méticuleux d'audit qui peut vous faire gagner beaucoup de temps dans la gestion de vos sites web. Beaucoup de services le font en automatisant des taches comme la création de sauvegardes du site, le scan des signes d'intrusion, la mise à jour de l'ensemble des extensions en qui vous avez toute confiance. Ils peuvent aussi scanner votre site afin de s'assurer que les meilleurs pratiques de sécurité sont bien mises en place, et réaliser un scan en profondeurs pour rechercher une menace de sécurité. Ces services utilisent un mix de scan manuel et automatique afin d'identifier les vulnérabilités de votre site Joomla.
15. Vérifier les messages de post-installation
Il est fortement recommandé de lire tous les messages de post-installation, en effet l'équipe de Joomla vous-y fourni d'importantes informations qui nécessitent toute votre attention, ces messages apparaissent après mise à jour ou après l'installation de Joomla. Ces messages adressent majoritairement la sécurité de la configuration de Joomla ou des changements de fichiers qui ne peuvent être faits que manuellement et qu'une mise à jour ne peut modifier.
16. Identifier les Extensions Vulnérables
Vérifiez toujours la lise d'extensions vulnérables (Vulnerable Extensions List) afin de découvrir les dernières extensions à risques et les potentiels patchs qui on été mis en place. Il vous est recommandé de désinstaller les extensions identifiées comme vulnérables pour lesquelles aucun patch n'existe. Mettez à jour votre extension vulnérable dès qu'un patch est disponible. Si votre site utilise une extension vulnérable pour laquelle aucun patch n'a été développé, il vous est recommandé de la remplacer.
Conclusion
Comme il y a toujours un risque potentiel, la sécurité de Joomla nécessite un processus de suivi continu, de fréquentes évaluations doivent être mises en place afin d'identifier des vulnérabilités potentielles qui pourrait être exploitées par des hackers. Les propriétaires de site & leurs administrateurs doivent toujours être vigilant afin d' améliorer la sécurité de leur site et de réduire le risquer d'être piraté.
Cet article est une traduction libre de l'article "Best Practices to Secure your Joomla Website" d' Ahmad Moussa
N'hésitez pas à nous contacter :
- Si votre site a été piraté
- Pour nous confier la sécurité de votre site Joomla