La parole est aux speakers : Charles FOL

Publié le

Jusqu’au Forum PHP 2024, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence !

La conférence

Utiliser une faille de la glibc pour attaquer le moteur PHP

Cette conférence décrit la découverte, l'impact et l'exploitation de la vulnérabilité CVE-2024-2961, publiée par LEXFO il y a quelques mois. Ici, pas d'injection SQL, de Cross-Site Scripting ou d'injection de commande : on attaque directement l'interpréteur du langage ! En effet, cette faille de dépassement de tampon (buffer overflow), située dans la GLIBC, la librairie standard utilisée par tous les programmes Linux, offre la possibilité de corrompre l'allocateur PHP, et ainsi prendre le contrôle d'un serveur à distance.

À travers l'exploitation de cette vulnérabilité, de deux façons différentes (via les failles de lecture de fichier, et les appels directs à la fonction vulnérable), cette conférence vous donnera un aperçu du fonctionnement interne de PHP, son allocateur, et ses structures principales (zval, zend_string, etc.), et comment un hacker peut compromettre l'interpréteur du langage, à même son coeur.

Ballroom Johnson / ABCDEF
11/10/2024
10:30-11:10

Tu es chercheur en sécurité. Quel est ton quotidien ?

Je suis spécialisé dans la recherche de vulnérabilités : cela consiste à trouver des bogues de sécurité dans des logiciels, et à les exploiter. Sur les cibles sur lesquelles je travaille, la recherche peut prendre quelques jours, quelques semaines, voire des mois.

De façon générale, je me focalise sur un sujet à la fois ; le travail quotidien consiste donc à comprendre une partie d’un logiciel, et d’en même temps essayer d’en discerner les failles.

Plus concrètement, c’est lire du code source (lorsqu’il est disponible), de la documentation, et faire de la rétro-ingénierie. Lorsque je trouve un bug, s’il peut être utilisé pour obtenir un avantage (élévation de privilèges, accès à la base de données, prise de contrôle du serveur), je tente de l’exploiter.

Tes recherches en sécurité se portent aussi sur des projets en Java ou en Python. Y a-t-il des spécificités liées au langage PHP et la sécurité ?

PHP est réputé, depuis toujours, comme étant un langage peu sécurisé.

Ceci est dû, je dirais, à son design, qui permet une grande liberté dans l’écriture du code. Un exemple qui le séparait historiquement de ses congénères était sa gestion des types, très laxiste : jusqu’à PHP 7, la chaîne de caractères « abc » est égale au chiffre 0, alors que « 123hello » est égale à 123. On peut facilement imaginer les implications !

Dans les dernières années, cependant, PHP a fait un grand pas en avant sur la question de la sécurité, et l’utilisation fréquente de frameworks (tels que Symfony ou Laravel) plutôt que du développement « from scratch » a joué un grand rôle là-dedans.

La sécurité étant une fonctionnalité à part entière, as-tu quelques ressources à destination des devs à recommander ?

Lorsqu’on développe, on apprend en faisant ; c’est pareil en sécurité. Se renseigner sur les vulnérabilités classiques (injection SQL, Cross-Site Scripting, CSRF …) est une chose, mais essayer par soi-même, c’est encore mieux ! Je vous conseillerais donc d’aller voir des sites de challenges, tels que Root-Me (français).

Pas besoin de faire les challenges les plus durs, mais un par type de vulnérabilité, ça ne peut pas faire de mal. En plus, c’est amusant !

Ensuite, posez-vous la question : comment ferais-je pour sécuriser ce type de vulnérabilité ? Et finalement, regardez l’état de l’art sur la protection de ces failles. Par exemple, comment font les frameworks modernes pour s’en protéger ?

Une conférence présentée par

Charles FOL
Charles FOL
Charles Fol, aussi connu sous le nom de cfreal, est un chercheur en sécurité dans l'entreprise française LEXFO / AMBIONICS. Il a découvert des vulnérabilités permettant d'exécuter des commandes à distance dans de nombreux CMS et frameworks tels que Drupal, Magento, Symfony ou Laravel, mais il attaque aussi des cibles binaires telles que Apache ou PHP-FPM, et les solutions de sécurité (Sqreen de DataDog, les VPNs Fortinet et Watchguard...). Charles est aussi le créateur de PHPGGC, un outil permettant d'exploiter des failles de désérialisation sur PHP. Il est reconnu en tant qu'expert sur la sécurité du moteur PHP.

Autres intervenants