Matt Mullenweg répond à Security Rant : les signatures numériques pour les mises à jour de WordPress sont importantes mais pas une priorité
Publié: 2017-02-16Scott Arciszewski, directeur du développement pour Paragon Initiative Enterprises, qui est surtout connu pour son travail d'ingénierie en cryptographie, a publié un article sur Medium critiquant Matt Mullenweg, co-créateur du projet de logiciel open source WordPress, pour ne pas se soucier suffisamment de la sécurité. Arciszewski a depuis retiré le message, mais vous pouvez le lire via la Wayback Machine.
Arciszewski travaille sur un projet connu sous le nom de libsodium, une extension principale de PHP 7.2 qui permet le cryptage, le décryptage, les signatures, le hachage de mot de passe et plus encore. Son objectif est de permettre aux développeurs de créer des outils cryptographiques de haut niveau.
Le système de mise à jour automatique de WordPress est géré via api.wordpress.org. Étant donné que les mises à jour n'ont pas de signature numérique, si api.wordpress.org était compromis, les attaquants pourraient envoyer des mises à jour malveillantes à des milliers ou des millions de sites. Ce scénario était au premier plan des préoccupations des gens à la fin de l'année dernière après que Wordfence a publié les détails d'une vulnérabilité de sécurité complexe qui aurait pu compromettre les serveurs de mise à jour.
Arciszewski suggère la signature de code hors ligne et la cryptographie à courbe elliptique comme solutions : "La clé qui peut produire une signature valide pour un fichier n'est pas stockée sur le serveur (seuls le fichier lui-même et une signature valide le sont), donc même si le serveur est piraté , les attaquants ne peuvent pas simplement ajouter des chevaux de Troie malveillants au fichier », a-t-il déclaré.
OpenSSL est une extension de PHP et est couramment utilisé comme cryptographie à clé publique, mais il ne prend en charge que RSA, ce qu'Arciszewski juge inadéquat. Étant donné que WordPress est écrit en PHP et prend en charge les versions 5.2-7+, Arciszewski devait créer une solution aussi compatible. Cela l'a inspiré à créer sodium_compat qui ajoute la vérification de signature Ed25519 au programme de mise à jour automatique de WordPress.
Arciszewski a soumis un certain nombre de correctifs à WordPress, mais Dion Hulse, développeur principal de WordPress, lui a dit que la bibliothèque sodium_compat ne pouvait pas être fusionnée avec le noyau tant qu'elle n'avait pas passé un audit de sécurité par un tiers. Les audits peuvent coûter très cher. Le plan d'Arciszewski était donc de voir si Automattic pouvait assumer une partie des coûts ou collecter les fonds. Cependant, son projet a été suspendu après que Mullenweg a informé Hulse d'arrêter de travailler sur la fonctionnalité car elle n'est pas liée aux trois principaux domaines d'intérêt de l'éditeur, du personnalisateur et de l'API REST.
Arciszewski a décrit la décision comme irresponsable et que chaque utilisateur a une raison de s'alarmer : "L'équipe WordPress a montré qu'elle n'est pas suffisamment responsable pour gouverner son impressionnante propriété d'Internet (à l'exception de certaines personnes impuissantes à corriger le cours de l'organisation )," il a dit. "Cet acte de négligence mettra le reste du Web en danger."
La signature des mises à jour est importante mais pas une priorité
Mullenweg a répondu au message sur Medium.com avec l'un des siens et a réitéré l'engagement de l'équipe de développement WordPress en matière de sécurité.
"Toutes les personnes impliquées prennent leur responsabilité très au sérieux, et la croissance de WordPress a signifié que de nombreuses personnes réfléchies et travailleuses se sont impliquées et pensent à la sécurité des sites WP de manière globale, sous tous les angles", a-t-il déclaré.
Mullenweg a également précisé quelles attaques seraient stoppées en implémentant des signatures numériques dans les mises à jour de WordPress.
"Cela pourrait arrêter une attaque d'homme au milieu, où quelqu'un modifie les fichiers de mise à jour sur le réseau entre votre blog et WordPress.org, ou cela pourrait arrêter une situation où la partie de .org qui sert la mise à jour est compromise mais la signature une partie ne l'est pas, et quelqu'un a décidé d'envoyer des mises à jour même s'il savait qu'elles seraient rejetées », a-t-il déclaré.

L'équipe n'a connaissance d'aucun site WordPress attaqué de cette manière. Bien que cette possibilité existe, l'étendue des dommages serait probablement limitée. Les serveurs de mise à jour sont surveillés 24 heures sur 24 et comme de nombreuses grandes sociétés d'hébergement Web analysent automatiquement les sites de leurs clients à la recherche de logiciels malveillants, la mise à jour malveillante serait probablement découverte rapidement.
Mullenweg décrit ce qui se passerait si un serveur de mise à jour était compromis.
"Nous l'éteindrions très rapidement, informerions le monde qu'il y avait un problème, résoudrions le problème, le rallumerions et informerions les sites ou les hôtes spécifiques autant que possible", a-t-il déclaré. Bien que WordPress propulse 27,5 % des 10 millions de sites les plus suivis par Alexa, il est très peu probable que le nombre de sites soit compromis.
Il poursuit en disant qu'il existe des moyens plus simples de compromettre un site WordPress et a répertorié les plus gros problèmes de sécurité de WordPress en fonction de l'impact.
- Les sites ne mettent pas à jour le noyau.
- Les sites ne mettent pas à jour les plugins.
- Les sites ne mettent pas à jour les thèmes.
- Mots de passe faibles, sans protection contre la force brute ni authentification à deux facteurs.
- Les hébergeurs (professionnels ou ad-hoc) ne scannent pas et ne corrigent pas les sites.
- Problèmes hypothétiques non observés dans la pratique, qui détournent l'attention des priorités existantes ci-dessus.
Mullenweg confirme qu'il a proposé de faire un don à l'audit de sodium_compat un jour avant qu'Arciszewski ne publie son article. Même si la bibliothèque passait un audit, le code ne pourrait pas être immédiatement ajouté au noyau, "Vous auriez également besoin de faire un travail important côté serveur pour isoler la signature du serveur de mise à jour, donc cela vaut la peine en premier lieu ," il a dit.
Et si le code était ajouté au noyau, seuls les sites mis à jour vers la version contenant la bibliothèque cryptographique et la vérification des mises à jour pourraient en profiter. WordPress.org aurait toujours besoin d'envoyer des mises à jour aux anciennes versions qui n'ont pas de vérification des mises à jour. Ces sites seraient toujours vulnérables à la réception d'une mise à jour malveillante.
Mullenweg dit que les signatures numériques et la signature des mises à jour finiront par se retrouver dans WordPress, mais ce n'est pas une priorité car il y a d'autres problèmes de sécurité devant lui, "Nous donnons la priorité à ces problèmes plutôt qu'à un effort de défense en profondeur agréable à avoir, " il a dit.
« Une bonne approche serait de construire d'abord le côté serveur, car le faire correctement, disons avec un HSM, est la partie la plus difficile et la plus importante ; puis faites signer les colis ; puis testez la vérification dans un plugin car nous ne voulons pas interrompre les mises à jour automatiques ; puis enfin fusionner dans le noyau et configurer le client pour qu'il rejette les mises à jour non signées. Côté client, nous devons choisir une bibliothèque de cryptographie et la faire auditer. »
Mullenweg a terminé son message en expliquant pourquoi il a publié sa réponse sur Medium au lieu de son site personnel. "Cela semble être l'endroit le plus populaire pour des diatribes comme celle-ci. Je voulais aussi essayer le célèbre éditeur Medium », a-t-il déclaré.
Quelle est la prochaine étape pour sodium_compat
Alors que les perspectives ne semblent pas bonnes pour l'ajout de sa bibliothèque à WordPress en 2017, Arciszewski dit qu'il y a beaucoup d'autres projets PHP qui pourraient en bénéficier, "Pour leur bien, je suis toujours fortement enclin à poursuivre un tiers- vérification de la cryptographie du parti et tentative de financement participatif du coût », a-t-il déclaré.
