Posté le avril 10, 2021 à 21:15
DES HACKERS ATTAQUENT LE SERVEUR GIT AUTO-HÉBERGÉ DE PROGRAMMATION PHP, MAIS LES DÉVELOPPEURS SE DÉFENDENT
Récemment, un groupe de hackers a attaqué et compromis le serveur Git auto-hébergé appartenant aux mainteneurs du langage de programmation PHP. D’après ce que l’on sait, l’attaque est classée comme une attaque de la chaîne d’approvisionnement des logiciels, et elle a vu les hackers compromettre le serveur et insérer une porte dérobée.
Toutefois, les responsables du serveur du langage PHP ont réussi à éviter l’attaque, qui a eu lieu le 28 mars 2021. Quant au serveur lui-même, il a servi de dépôt Git d’une nouvelle version de PHP qui est actuellement en cours de développement.
Plusieurs contributeurs PHP ont inspecté le code après l’attaque, découvrant que plusieurs modifications y avaient été apportées.
Quel était l’objectif des hackers ?
Le véritable objectif des hackers n’est pas connu, mais pour l’instant, il semble qu’ils aient visé tout serveur qui utilise la compression PHP ZLib lors de l’envoi de données. Une grande majorité de serveurs utilise cette fonctionnalité sur à peu près tout le contenu transmis, à l’exception de quelques exemples, comme les images et les archives qui sont déjà optimisées en termes de taille.
Après avoir analysé l’attaque, les chercheurs pensent que l’objectif était de transformer PHP en un shell web distant, que les attaquants pourraient utiliser pour exécuter à peu près n’importe quelle commande par la suite, sans aucune authentification requise. En fait, ils auraient les mêmes privilèges que le serveur qui exécute PHP.
La porte dérobée se déclenche dès qu’une nouvelle requête contenant le mot déclencheur « zerodium » arrive. Si cette condition est remplie, PHP exécute le code contenu dans l’en-tête de la requête User-Agent, comme l’ont expliqué les experts.
Une autre chose à noter est que l’en-tête ressemble beaucoup à la requête User-Agent de PHP pour vérifier les propriétés du navigateur.
Ainsi, si le mot déclencheur est inclus, le système traite le reste de la requête comme une commande et l’exécute en utilisant les privilèges du serveur, indépendamment de ce que dit la commande. Par conséquent, les hackers seraient en mesure d’exécuter n’importe quelle commande, sans avoir besoin d’autres privilèges.
Zerodium est en fait une société qui fonctionne comme un courtier en vulnérabilités. En fait, elle achète des vulnérabilités zero day et les revend ensuite à des agences gouvernementales. Cependant, l’entreprise a fermement nié avoir quoi que ce soit à voir avec cette attaque particulière. En fait, son PDG, Chaouki Bekrar, est même allé jusqu’à accuser les chercheurs d’avoir installé la porte dérobée eux-mêmes, puis d’avoir essayé de la vendre. Puis, comme ils n’ont pas trouvé d’acheteurs, ils ont décidé de divulguer la faille.
Cependant, compte tenu de la durée de vie de la porte dérobée, l’accusation n’a pas beaucoup de sens.
L’attaque a été commise en utilisant les noms de l’auteur du projet PHP, Rasmus Lerdorf, et de Nikita Popov.
Les conséquences de l’attaque
Selon Nikita Popov, un important contributeur PHP travaillant chez JetBrains, l’équipe n’a pas encore réussi à établir comment l’intrusion s’est produite en premier lieu. Une explication possible est que le serveur git.php.net a été compromis, ce qui est beaucoup plus probable que la possibilité que le compte Git lui-même soit compromis.
Mais, indépendamment de la façon dont les attaquants ont réussi à compromettre le serveur, les membres de l’équipe ont déclaré que le maintien d’une infrastructure Git constitue un risque de sécurité inutile. Par conséquent, ils ont décidé de ne plus utiliser le serveur. Ils ont également fait des dépôts stockés sur Github les nouvelles copies canoniques pour les futures versions, puisque la version sur le serveur a été compromise.
De plus, les contributeurs PHP doivent être ajoutés comme faisant partie de l’organisation sur Github, et avoir un accès 2FA, ce qui en fait un endroit beaucoup plus sûr pour travailler et détenir des copies de PHP.
En outre, M. Popov a également déclaré qu’il était prévu d’examiner le code de PHP, au-delà des seuls commits malveillants. Le public a également été invité à examiner le code et à tirer la sonnette d’alarme s’il remarque quelque chose de suspect.
Quant au reste de l’équipe PHP, elle a mis en place un système de gestion des privilèges qu’elle a baptisé Karma, et qui réside désormais sur son propre serveur Git. Mais il n’y a aucune preuve que Karma ait été utilisé pour compromettre les serveurs de quelque manière que ce soit.
Il convient également de noter que ce n’était pas la première fois que le serveur Git était compromis. En 2019, l’équipe a également dû fermer temporairement le serveur après avoir découvert qu’un attaquant inconnu avait remplacé le PEAR (PHP Extension and Application Repository) officiel par une copie malveillante. Étant donné que PHP alimente actuellement environ 80 % de tous les sites Web dans le monde, une attaque réussie de la chaîne d’approvisionnement pourrait avoir des conséquences catastrophiques.
Heureusement, il est très peu probable qu’une compromission puisse affecter les utilisateurs de PHP dans la nature. En tout cas, il est possible que les hackers aient fait cela juste pour prouver qu’ils peuvent le faire.