Meilleures pratiques de sécurité WordPress

Publié: 2022-03-10

Il existe de nombreux mythes et FUD (peur, incertitude et doute) sur la sécurité de WordPress. Et il y a beaucoup à prendre en compte lors du renforcement d'un site Web contre les attaques potentielles. Alors, comment les entreprises peuvent-elles apprendre les meilleures pratiques de sécurité WordPress qui leur offriront la meilleure protection Web possible ?

La semaine dernière, j'ai organisé une conversation en ligne pour démystifier les problèmes de sécurité de WordPress. Ayush Malakar (développeur full-stack et WordPress chez Fresh Consulting) et Sean O'Shaughnessy (leader de l'ingénierie des solutions WordPress VIP) m'ont rejoint pour la session.

À travers quatre questions directrices, ces deux experts ont exploré les meilleures pratiques de sécurité que les développeurs, les administrateurs, les propriétaires de sites et les cadres doivent garder à l'esprit. Récapitulons ce dont nous avons parlé.

Les logiciels open source sont-ils sécurisés ?

Tous les open source ne sont pas créés égaux. Mais comme WordPress existe depuis 18 ans et alimente plus de 40% des sites Web dans le monde, il est clair que l'adoption est en croissance. Mais même avec le logiciel open source le plus populaire au monde, des questions sur ses vulnérabilités de sécurité se posent. Tout ce code, au grand jour, n'est-il pas vulnérable aux attaques ?

Pas nécessairement, dit Ayush : "Puisque nous avons tant d'yeux qui le regardent, c'est plus sûr."

Bien que cela puisse sembler contre-intuitif, les logiciels open source peuvent en fait être plus sûrs que les logiciels propriétaires à source fermée. Voici pourquoi.

Plus de regards sur les menaces potentielles

Puisque l'open source fonctionne à découvert, il n'y a rien à cacher. De nombreux développeurs de la communauté l'examinent et font des mises à jour, inspirant confiance. Si une vulnérabilité est découverte, elle est corrigée dès que possible, souvent en un jour ou deux.

Tests de code continus et primes de bogues

Tout le monde peut contribuer à WordPress, et le code est testé par la communauté de milliers de contributeurs principaux de WordPress. Comme le code est continuellement testé, il est de plus en plus fiable.

De plus, les programmes de primes de bogues encouragent le public à trouver des failles et des vulnérabilités, y compris les attaques par force brute, les attaques DDoS, le phishing, etc.

Mises à jour de sécurité

Lorsque des mises à jour de sécurité se produisent, il incombe aux développeurs de sites Web de s'assurer que le code principal est tenu à jour et protégé contre les derniers vecteurs d'attaque. Des mises à jour automatiques sont également disponibles, et les développeurs d'entreprise doivent déterminer s'il s'agit du bon choix pour chaque projet.

Mon code est-il sécurisé ?

Le noyau de WordPress n'est qu'un des "seaux" de code qui composent un site Web WordPress. Au-dessus du logiciel développé par la communauté se trouve le code d'application d'un site Web - son thème ou son interface et ses plug-ins.

Alors que le code principal open source de WordPress est développé par la communauté, le code d'application écrit ou déployé sur des sites Web individuels peut également introduire des vulnérabilités de sécurité.

Il existe diverses mesures que vous pouvez prendre pour vous assurer que votre code d'application est aussi résistant que possible contre les attaques. Bien que vous puissiez prendre des décisions différentes pour différents projets, selon le niveau de risque acceptable, le plus important est d'être conscient des vecteurs d'attaque potentiels.

Ici, nos experts en webinaires ont quelques conseils.

Outils pour la sécurité de WordPress

Il existe divers outils que les développeurs peuvent utiliser pour aider à identifier les failles de sécurité dans le code propriétaire et tiers.

"Chaque fois que nous parlons d'outils, nous devons comprendre quels sont les avantages et les inconvénients de ces outils et comment nous devrions les utiliser au mieux à notre avantage ?"

— Ayush Malakar, Fresh Consulting

Ces outils peuvent effectuer une analyse de code statique ou dynamique. L'analyse statique est effectuée sans exécuter aucun code et peut généralement détecter environ 85% des défauts du code. L'analyse de code dynamique repose sur l'étude du comportement du code pendant l'exécution et a la possibilité supplémentaire de détecter les problèmes de sécurité causés par l'interaction du code avec d'autres composants du système tels que les bases de données SQL, les serveurs d'applications ou les services Web.

Il est important de peser les avantages des humains par rapport aux machines effectuant cette analyse de code. L'apprentissage automatique (ML) et l'intelligence artificielle (IA) peuvent être utilisés comme première ligne de défense pour garantir l'identification des sécurités communes. Mais il est également utile d'avoir un regard humain sur le code par la suite. Cela garantit que les humains peuvent travailler sur différents aspects, tels que la vulnérabilité basée sur les fonctionnalités, les cas extrêmes, etc.

Quelques outils recommandés par nos experts :

  • WPScan est un outil CLI que les développeurs peuvent utiliser pour analyser leur code à la recherche de failles de sécurité. Ayush recommande aux développeurs de l'exécuter dans une tâche cron.
  • PHP_CodeSniffer (PHPCS) inspecte le code et met en évidence les problèmes allant de la syntaxe aux vulnérabilités de sécurité. Il existe un ensemble de normes spécifiques pour WordPress. Cela peut être configuré pour s'exécuter dans un pipeline d'intégration continue (CI) et s'exécute dans tous les référentiels WordPress VIP.
  • Sonar Cloud, utilisé par Fresh Consulting pour l'analyse de code statique, analyse à la fois le code PHP et JS à la recherche de vulnérabilités et d'une implémentation plus sécurisée.

« Faisons-nous la bonne quantité de validation des entrées ? Désinfectons-nous correctement tout type de sortie que nous allons avoir dans notre code ? »

— Sean O'Shaughnessy, WordPress VIP

Plugins de sécurité et WordPress

Lorsque vous choisissez des plugins tiers, recherchez un plugin qui a de bonnes critiques et notes, un nombre élevé de téléchargements et une flexibilité d'utilisation sur votre site Web. Assurez-vous que le plugin est mis à jour et compatible avec la dernière version de WordPress.

N'utilisez pas un plugin que vous pouvez écrire vous-même. Surtout dans les cas où seule une petite quantité de code est nécessaire, écrivez ce code dans votre thème au lieu d'utiliser un plugin. Cela garantira qu'aucune vulnérabilité ne sera introduite lors de la mise à jour du plugin.

"Ce que je recommanderais, c'est d'écrire le code dans le thème lui-même, car ce que j'ai vu dans le passé, ce sont des plugins qui font un travail très minimal pour effectuer des mises à jour. Et il y a de fortes chances que, à mesure que la technologie évolue, ces plugins ne le fassent pas. Le potentiel de ces plugins introduisant des vulnérabilités pourrait être plus élevé que ce que nous anticipons.

— Ayush Malakar, Fresh Consulting

Comme toujours, il est important de garder votre code à jour. Faites attention aux mises à jour du noyau et des plugins, et maintenez WordPress, les plugins et les thèmes à jour.

Sécurité et terminaux WordPress

XML-RPC et l'API REST sont des points de terminaison que WordPress utilise pour communiquer avec d'autres systèmes ou avec le frontal d'une application. Il est important de comprendre ces points de terminaison et de savoir s'ils seront importants pour votre application, car ce sont des vecteurs d'attaque potentiels qui peuvent être désactivés s'ils ne sont pas nécessaires.

XML-RPC comme vecteur d'attaque potentiel

XML-RPC est une spécification qui permet la communication entre WordPress et d'autres systèmes. Dans les premières versions de WordPress, XML-RPC était désactivé par défaut. Mais depuis la version 3.5, il est activé par défaut. La principale raison en était de permettre à l'application mobile WordPress de communiquer avec votre installation WordPress.

L'API REST comme vecteur d'attaque potentiel

Assurez-vous d'utiliser les meilleures pratiques de sécurité lors de l'utilisation de l'API WordPress REST. Bien que les entreprises puissent avoir besoin de les garder ouvertes, par exemple dans une architecture sans tête où le contenu doit être acheminé vers un frontal découplé, assurez-vous que ceux qui restent exposés disposent de l'authentification et de l'autorisation appropriées.

« Vous avez ce château, WordPress, votre application, et avoir la présence d'un pont-levis ne rend pas intrinsèquement votre application sécurisée. Mais c'est une piste. C'est un moyen d'entrer dans ce château. Il est donc essentiel d'avoir une bonne compréhension, une bonne connaissance et une bonne comptabilité de ces choses pour avoir une meilleure posture autour de la sécurité de votre application.

— Sean O'Shaughnessy, WordPress VIP

Mon hébergement est-il sécurisé ?

Il y a beaucoup de considérations à prendre en compte pour déterminer si votre hébergeur est suffisamment sécurisé pour vos besoins. C'est une bonne idée de considérer toutes les options de sécurité disponibles, et n'oubliez pas l'importance d'une assistance rapide en cas d'urgence, comme une mise à jour de plugin provoquant un incident de sécurité.

“Votre hébergeur offre-t-il un support rapide et proactif ? De plus, comment réagissent-ils lorsque des vulnérabilités d'application ou de plug-in sont publiées ? »

— Sean O'Shaughnessy, WordPress VIP

Dans l'ensemble, recherchez une plate-forme qui considère l'hébergement comme une responsabilité partagée. Certaines fonctionnalités à prendre en compte incluent :

Autorisations du système de fichiers

Certains hôtes offrent un système de fichiers en lecture seule, plutôt que de pouvoir écrire des fichiers. Cela empêche les utilisateurs de processus Web de pouvoir écrire des fichiers partout, fermant ainsi un vecteur d'attaque potentiel.

Conteneurisation

Recherchez un hébergeur qui isole les ressources de votre site des sites Web de ses autres clients. Bien qu'il ne s'agisse pas d'une mesure de sécurité complète, la conteneurisation fournit une mesure de sécurité de base. En prime, il permet également des ressources dédiées pour une évolutivité horizontale ou même verticale.

Contrôle de version

Lorsqu'une plate-forme d'hébergement WordPress bloque SFTP et autorise les mises à jour de code via un système de contrôle de version, elles diminuent la surface d'attaque de votre application. De plus, la gestion du code source de l'application via le contrôle de version fournit une copie « vierge » du code comme source de vérité, ainsi qu'un historique complet, auditable et riche en contexte de ce code.

Comment mon entreprise peut-elle appliquer la sécurité WordPress ?

La sécurité n'est pas seulement une considération au niveau du code ou de l'hôte. Il existe également des facteurs humains, et les entreprises peuvent intégrer des processus tels que des contrôles de sécurité réguliers et des règles d'hygiène des mots de passe, qui contribueront grandement à accroître la sécurité de votre site Web.

"Au niveau organisationnel, il est important de penser en termes de mise en place de plusieurs couches d'authentification continue ou de validation."

— Sean O'Shaughnessy, WordPress VIP

Gestion des accès zéro confiance et moindre privilège

Grâce à des rôles et à une gestion des accès soigneusement étudiés, les organisations peuvent donner aux employés les moyens de faire leur travail avec le moins de privilèges, donc le moins de risques possible. Assurez-vous de définir et d'affecter correctement les rôles et les capacités des utilisateurs. Cette capacité est livrée avec WordPress prête à l'emploi et peut être étendue pour n'importe quel cas d'utilisation.

Hygiène des mots de passe

Les utilisateurs doivent créer des mots de passe uniques et difficiles à deviner pour chaque application. Sean aime particulièrement cette bande dessinée, qui préconise d'utiliser une collection de mots aléatoires, plutôt qu'une combinaison de lettres, de chiffres et de symboles :

Bande dessinée XKCD

2FA et authentification unique

Bien que les technologies d'authentification à deux facteurs (2FA) et d'authentification unique (SSO) n'augmentent pas intrinsèquement la sécurité de votre site Web, elles offrent l'avantage d'une gestion centralisée des utilisateurs dans toutes les applications prises en charge.

Points clés de la sécurité WordPress

  • L'open source présente des avantages en matière de sécurité
  • Gardez WordPress et les plugins à jour
  • Utiliser le contrôle de version
  • Comprendre les points de terminaison WordPress
  • Recherchez un hébergeur qui tient compte de la sécurité
  • Adopter des pratiques de sécurité matures au niveau de l'organisation

Nous avons couvert beaucoup plus de terrain sur la sécurité WordPress dans le webinaire d'une heure. Si vous l'avez manqué en direct, je vous encourage à consulter l'enregistrement ici.