URL: https://linuxfr.org/news/sortie-de-snuffleupagus-0-7-0-los-elefantes Title: Sortie de Snuffleupagus 0.7.0 - Los Elefantes Authors: jvoisin Xavier Teyssier, palm123, Ysabeau đ§¶, Anonyme, tisaac et Pierre Jarillon Date: 2021ćčŽ01æ02æ„T21:21:32+01:00 License: CC By-SA Tags: php, php8, web, php7, sĂ©curitĂ© et suhosin Score: 23  Snuffleupagus est un module pour PHP, version 7+ et maintenant 8+, qui a pour but dâaugmenter drastiquement la difficultĂ© des attaques contre les sites Web. Cela sâobtient, entre autres, via la dĂ©sactivation de fonctions et de classes, et en fournissant un systĂšme de correctifs virtuels, permettant Ă lâadministrateur de corriger des vulnĂ©rabilitĂ©s spĂ©cifiques sans modifier le code PHP. La version 0.7.0 sortie aujourdâhui, est un excellent prĂ©texte pour reparler de ce projet sur LinuxFr.org ---- [DĂ©pĂȘche prĂ©cĂ©dente sur Snuffleupagus version-0-3-0](https://linuxfr.org/news/snuffleupagus-version-0-3-0-dentalium-elephantinum) [Billet de blog d'annonce de la nouvelle version](https://dustri.org/b/snuffleupagus-070-los-elefantes.html) [Site officiel](https://snuffleupagus.readthedocs.io/) [Compte twitter du projet](https://twitter.com/sp_php) [DĂ©pĂŽt github](https://github.com/jvoisin/snuffleupagus) ---- La principale nouveautĂ© de cette version est le support de [PHP 8](https://www.php.net/releases/8.0/fr.php), qui bien que nâayant pas Ă©tĂ© trĂšs difficile fĂ»t fastidieuse. En effet, PHP a changĂ© la capitalisation de certains de ses messages dâerreurs, ainsi que les paramĂštres par dĂ©faut de logging, cassant un grand nombre de tests unitaires. Quitte Ă moderniser le code, autant faire les choses Ă fond, en utilisant PCRE2 autant que possible tout en maintenant la compatibilitĂ© avec PCRE1 pour les *vieilles* versions de PHP. En effet, Snuffleupagus supporte toutes les versions de PHP7, y compris les versions en fin de vie, qui continuent dâexister dans certaines distributions linux bĂ©nĂ©ficiaire de support long. Câest Ă©galement lâoccasion de corriger un bogue passĂ© inaperçu jusquâici : le [mode de typage strict]( https://www.php.net/manual/fr/migration70.new-features.php) apportĂ© par Snuffleupagus nâĂ©tait pas dĂ©sactivable. Ce souci a Ă©tĂ© mis en lumiĂšre grĂące Ă un bug dans [composer](https://github.com/composer/composer/pull/9498), qui a au passage Ă©tĂ© corrigĂ©. La bonne nouvelle, câest que ce bogue nâa pas dĂ» embĂȘter grand monde pour ne jamais avoir Ă©tĂ© rencontrĂ© avant : soit personne nâutilise Snuffleupagus, soit les gens lâutilisant ont des bases de codes suffisamment propres pour ne pas comporter de fautes de types ! Dâautres fonctionnalitĂ©s mineures ont Ă©galement Ă©tĂ© ajoutĂ©es, comme la possibilitĂ© de « sauter » des fonctions avec lâopĂ©rateur `>`: par exemple, la rĂšgle `sp.disable_function("bla>blop").drop()` terminera lâexĂ©cution si la fonction `blop` a dans ses parents la fonction `bla`. Ce qui devrait permettre dâĂ©crire facilement des rĂšgles pour se prĂ©munir des attaques basĂ©es sur de la dĂ©sĂ©rialisation, en interdisant Ă des fonctions dangereuses de sâexĂ©cuter si `unserialize` est dans leurs fonctions parentes. Afin dâobtenir toujours plus de visibilitĂ©, les requĂȘtes sauvegardĂ©es lorsquâune rĂšgle de filtrage est dĂ©clenchĂ©e contiennent maintenant lâensemble de lâarbre dâappel des fonctions, permettant de comprendre le cheminement qui a menĂ© Ă la rĂšgle. Tout ça câest intĂ©ressant, mais est-ce que Snuffleupagus fonctionne ? Il semblerait que oui : un des auteurs publie [chaque](https://dustri.org/b/snuffleupagus-versus-recent-high-profile-vulnerabilities.html) [annĂ©e](https://dustri.org/b/snuffleupagus-versus-recent-high-profile-vulnerabilities-again.html) une rĂ©trospective des rĂ©sultats du logiciel contre les vulnĂ©rabilitĂ©s les plus critiques. Force est de constater que la plupart des failles sont soit rendues inexploitables, soit le deviennent moins trivialement. Quid de la suite ? Bien que le projet ait Ă©tĂ© abandonnĂ© par la sociĂ©tĂ© lâayant open-sourcĂ© ([NBS-System](https://www.nbs-system.com/)), un des auteurs principaux continue de maintenir et de faire Ă©voluer le projet, qui continue son bonhomme de chemin, gagnant en fonctionnalitĂ©s tout en perdant des bugs.