Beaucoup se demandent comment WordPress peut être vulnérable aux attaques malgré sa popularité et son suivi. D’autres ignorent totalement le risque. Analyse.
Qu’est-ce qu’une vulnérabilité ?
WordPress est programmé avec le langage PHP.
Le code PHP permet d’obtenir des sites « dynamiques ». C’est à dire que le contenu est généré à chaque page par un programme PHP. Un site dynamique permet aussi l’interaction avec les visiteurs. En termes techniques, il permet de recevoir et traiter des requêtes.
Cette force est aussi une faiblesse en ce sens qu’elle peut laisser place à des interactions non désirées, permettant ainsi le piratage d’un site internet.
On appelle cela une « faille de sécurité » ou « vulnérabilité ».
Les vulnérabilités en PHP
Les vulnérabilités dans le code PHP peuvent avoir diverses causes.
En voici quelques exemples fréquents.
- Entrées non validées : Lorsque le code PHP accepte des données d’utilisateurs, telles qu’un formulaire ou une requête, sans validation appropriée, il peut être vulnérable aux attaques d’injection de code malveillant.
- Permissions excessives : L’attribution de permissions excessives aux fichiers et aux utilisateurs peut permettre des attaques de manipulation non autorisée.
- Mauvaise gestion des erreurs : La révélation d’informations sensibles dans les messages d’erreur peut donner aux attaquants des indices pour exploiter davantage le système.
En outre, il peut y avoir des vulnérabilités dans PHP. L’exécuteur PHP lui-même, contient parfois des failles de sécurité s’il n’est pas tenu à jour. (voir image)
D’autres failles non liées directement à PHP telles que les failles XSS sont également courantes. Celles-ci permettent d’exécuter du code malveillant.
Nous allons voir comment cela s’articule concrètement pour WordPress.
Les vulnérabilités des sites WordPress
Failles de sécurité dans WordPress
WordPress est un système de gestion de contenu robuste, mais il comporte près d’un million de lignes de code PHP (924.096 lignes présentement).
WordPress, ce sont aussi 59.772 plugins et 11.378 thèmes disponibles rien que sur wordpress.org. Des millions de lignes de code en plus disponibles à l’installation sur votre site.
Cette richesse de code crée un terrain fertile pour les failles de sécurité. Plus vous multipliez le code, plus vous multipliez le risque. Ainsi, chaque jour, des vulnérabilités sont découvertes. Elles peuvent se trouver dans le cœur de WordPress mais aussi des thèmes et plugins installés.
Détection, correction, révélation des failles
Si un intervenant détecte une faille (un développeur particulier, un « white hat », un organisme spécialisé dans la sécurité), il averti les développeurs du script comportant la faille.
Si les développeurs sont réactifs, ils corrigent la faillent et publient le correctif.
Puis, typiquement 30 à 90 jours après sa découverte, la faille de sécurité est révélée publiquement. Afin d’une part de donner crédits de la découverte au lanceur d’alerte, et d’autre part d’avertir les usagers du script du risque encouru en cas de non mise à jour.
Faille actuelle non corrigée
WordPress comporte actuellement une faille non corrigée depuis la version 6.1.1 (donc depuis plusieurs mois). Celle-ci permet d’utiliser un site web pour exécuter des requêtes vers d’autres cibles. Elle est mitigable en bloquant l’accès à xmlrpc.php et en désactivant les pingbacks WordPress (sécurisation effectuée sur tous les sites que j’ai en gestion avant même la détection de cette faille).
Quand est-ce que WordPress est vulnérable et que faire ?
Failles révélées
Lorsqu’une faille est révélée, toutes les installations possédant le script vulnérable sont par essence atteints de cette vulnérabilité. Les pirates risquent d’exploiter la faille si c’est votre cas.
On trouve alors deux cas de vulnérabilités :
- Votre site comporte un script (WordPress, plugin, thème) ayant une faille connue et n’étant pas corrigée par les développeurs. Le développement de ce script est peut-être abandonné. Il convient alors de désactiver ce script ou de le remplacer par un script non vulnérable et mieux suivi par ses développeurs.
- Votre site n’est pas à jour. Vous n’avez pas corrigé la faille de sécurité. Il faut donc effectuer les mises à jour le plus régulièrement possible et vous assurer de ne pas avoir de script obsolète (ce qui vous mettrait potentiellement dans le cas précédent à terme).
Failles « zero-day »
Parfois, les pirates vont trouver une faille avant qu’elle soit révélée puis corrigée. Ils vont l’exploiter directement. On appelle cela une faille « zero-day ».
Plus un script est populaire, plus les pirates vont chercher des failles zero-day dans celui-ci. Cela est rare, mais arrive.
Voici une autre raison de concevoir des sites simples : Plus vous multipliez les plugins populaires, plus vous multipliez la vulnérabilité de votre site WordPress. Non seulement aux failles zero-day, mais également aux failles en général.
Pour se protéger des failles 0-day, il faut que le serveur hébergeant votre site soit sécurisé. Pour cela, il peut notamment bloquer les requêtes suspectes des pirates à l’aide d’un pare-feu applicatif. Puis bloquer les IP attaquantes avec par exemple fail2ban. Cela n’est généralement pas le cas sur les offres d’hébergement mutualisées. A l’exception d’HaiSoft chez qui j’ai poussé ces sécurités, ce qui a d’ailleurs grandement divisé le nombre de piratages. Mais cela peut créer des faux positifs : Des requêtes bloquées alors qu’elles sont légitimes, en particulier avec les builders WordPress (Elementor, Divi, WP-Bakery et autres). Le support technique demandé est alors supérieur, raison pour laquelle la plupart des prestataires n’implémentent pas ce type de sécurités. La sécurité est toujours plus complexe que l’absence de sécurité.
Malgré toutes les sécurités possibles en place, il faut garder à l’esprit que certaines requêtes pirate peuvent passer outre les filets. Le risque zéro n’existe pas et quiconque prétend le contraire est un ignorant ou un menteur.
Alors comme la sécurité parfaite n’existe pas, partez du principe que votre site peut être piraté demain. Si cela arrive, que faites-vous ? Vous avez intérêt à avoir une sauvegarde à jour, facilement restorable et qui ne soit pas stockée dans votre site.
Conclusion
Les piratages n’arrivent pas qu’au autres. Très régulièrement, des possesseurs de sites WordPress viennent à ma rencontre avec un site web piraté à réparer.
Tout système informatique est potentiellement vulnérable, y-compris votre site WordPress. L’enjeu est de minimiser les risques de piratage en appliquant toutes les mesures préventives. Cela passe d’abord par un serveur à jour et sécurisé, capable de bloquer les attaques. Puis, cela passe par un suivi régulier de votre site WordPress et une mise à jour la plus fréquente possible, une vérification permanente des failles de sécurité connues et une action rapide en cas de problème. Dans tous les cas, une sauvegarde externalisée, automatisée et indépendante de votre site doit être effectuée quotidiennement. C’est précisément l’ensemble des services que vous retrouverez dans mes offres de Webmastering WordPress.
Si votre site est important pour votre entreprise, n’attendez pas d’être piratés, prenez les devants et faites vérifier votre site grâce à un audit de sécurité WordPress ou passez directement sur mon offre de Webmastering.
Laisser un commentaire