Samedi 27 mars en fin de journée, l’équipe en charge de la sécurité de PHP a observé deux étranges modifications dans son code source, réalisées quelques heures auparavant. Ces commits (i.e. le terme consacré pour désigner les changements sur le code), déposés sous les noms de deux développeurs très actifs de PHP, Nikita Popov et Rasmus Lerdorf, servaient prétendument à régler une erreur de saisie dans le code. Sauf qu’en réalité, il s’agissait d’un ajout de code, réalisé par un hacker pour le moment inconnu. Son objectif : installer une backdoor, c’est-à-dire un accès frauduleux, sur tous les sites utilisateurs de PhP.

Autant dire que l’équipe de sécurité a évité une gigantesque catastrophe : PHP est un langage de programmation utilisé par près de 80% de la totalité des sites du web, autant de cibles dont les hackers auraient pu entièrement prendre le contrôle. « Les commits ont été découverts dans le cadre d’une révision de routine du code. Il était assez évident que les deux modifications étaient malicieuses, et elles ont immédiatement été annulées », a précisé Nikita Popov au Bleeping Computer.

labelscommunautaires-big.png

Une ligne de code modifiée, et un logiciel peut se transformer en malware. // Source : Louise Audry pour Numerama

Si les modifications malveillantes ont bien été approuvées avant d’être retirées, elles n’ont pas été mises en production. Elles se trouvaient sur l’environnement de développement de la version 8.1 de PhP, dont le déploiement n’est prévu que pour la fin de l’année. D’après Popov, le hacker est parvenu à obtenir les autorisations nécessaires sur le serveur Git géré par l’organisation elle-même, mais n’a pas compromis de compte de contributeurs. En réponse à cet incident de sécurité, l’équipe PHP va arrêter de gérer son propre serveur Git (git.php.net) et va migrer son code vers GitHub, la plus grande plateforme de dépôt de code, gérée par Microsoft.

Jusqu’ici, le groupe PHP autorisait un certain niveau d’accès à son code source à tout développeur qui effectuait des contributions régulières. Autrement dit, toute personne extérieure à l’organisation, mais suffisamment impliquée dans le projet pouvait obtenir un accès. Désormais, il faudra faire partie du groupe PHP pour accéder au dépôt GitHub, et activer la double authentification sur son compte avant de pouvoir faire des modifications.

Supply chain attack ratée

Sans la vigilance des équipes de sécurité de PHP, les hackers auraient réussi une supply chain attack. Si vous avez suivi l’affaire SolarWinds, vous devriez être familier avec ce type d’attaque : elle consiste à insérer des modifications malveillantes dans un logiciel (ou ici, un langage de programmation) avant même qu’il ne soit déployé. L’objectif des hackers : faire valider leur code malveillant par l’éditeur du logiciel, qui le diffusera lui-même à tous ses clients. La supply chain attack est donc une méthode particulièrement puissante pour toucher un large nombre de victimes en toute discrétion.

Si l’attaque contre la librairie PHP avait abouti, les hackers auraient pu prendre le contrôle de tout site qui aurait déployé la mise à jour, grâce à la backdoor qui s’y serait trouvée. Même s’ils n’avaient touché qu’une fraction des utilisateurs de PHP — ceux qui effectuent des mises à jour régulières –, ils auraient certainement contaminé plusieurs milliers de sites. Afin d’être les seuls à exploiter la faille, les hackers avaient même prévu qu’il faille entrer un mot de passe, « Zerodium », pour emprunter la backdoor.

C’est ici que l’histoire se complique. Zerodium est une entreprise controversée, qui achète la connaissance de vulnérabilités logicielles à des chercheurs pour les revendre aux autorités. Autrement dit, elle vend des clés pour pirater certains logiciels. Non seulement les malfaiteurs utilisaient le nom de l’entreprise comme mot de passe, mais ils le faisaient également figurer dans leur code. Sur Twitter, le CEO de Zerodium Chaouki Bekrar a balayé toute implication dans l’incident : « Évidemment, nous avons rien à voir avec cela. Vraisemblablement, le(s) chercheur(s) qui ont trouvé ce bug ont essayé de le vendre à plusieurs organisations, mais personne n’a voulu acheter cette merde, alors ils l’ont exposé volontairement pour s’amuser ». Le mystère reste entier sur pourquoi les intrus ont choisi de mentionner Zerodium.

PHP a ouvert une enquête sur la faille, afin de s’assurer que les hackers n’ont pas effectué d’autres modifications, et d’éviter que la catastrophe se produise pour de bon.

Nouveauté : Découvrez

La meilleure expérience de Numerama, sans publicité,
+ riche, + zen, + exclusive.

Découvrez Numerama+

Abonnez-vous à Numerama sur Google News pour ne manquer aucune info !