• Li chevron_right

      Sortie de Snuffleupagus 0.7.0 - Los Elefantes

      jvoisin · pubsub.eckmul.net / linuxfr_news · Wednesday, 6 January, 2021 - 08:02 · 4 minutes

    <div><p><img src="//img.linuxfr.org/img/68747470733a2f2f6475737472692e6f72672f622f696d616765732f73702e706e67/sp.png" alt="Logo du projet" title="Source : https://dustri.org/b/images/sp.png"></p> <p>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.</p> <p>La version 0.7.0 sortie aujourd’hui, est un excellent prétexte pour reparler de ce projet sur LinuxFr.org</p> </div><ul><li>lien nᵒ 1 : <a title="https://linuxfr.org/news/snuffleupagus-version-0-3-0-dentalium-elephantinum" hreflang="fr" href="https://linuxfr.org/redirect/107641">Dépêche précédente sur Snuffleupagus version-0-3-0</a></li><li>lien nᵒ 2 : <a title="https://dustri.org/b/snuffleupagus-070-los-elefantes.html" hreflang="en" href="https://linuxfr.org/redirect/107642">Billet de blog d&#39;annonce de la nouvelle version</a></li><li>lien nᵒ 3 : <a title="https://snuffleupagus.readthedocs.io/" hreflang="en" href="https://linuxfr.org/redirect/107643">Site officiel</a></li><li>lien nᵒ 4 : <a title="https://twitter.com/sp_php" hreflang="en" href="https://linuxfr.org/redirect/107647">Compte twitter du projet</a></li><li>lien nᵒ 5 : <a title="https://github.com/jvoisin/snuffleupagus" hreflang="en" href="https://linuxfr.org/redirect/107648">Dépôt github</a></li></ul><div><p>La principale nouveauté de cette version est le support de <a href="https://www.php.net/releases/8.0/fr.php">PHP 8</a>, 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 <em>vieilles</em> 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.</p> <p>C’est également l’occasion de corriger un bogue passé inaperçu jusqu’ici : le <a href="https://www.php.net/manual/fr/migration70.new-features.php">mode de typage strict</a> apporté par Snuffleupagus n’était pas désactivable. Ce souci a été mis en lumière grâce à un bug dans <a href="https://github.com/composer/composer/pull/9498">composer</a>, 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 !</p> <p>D’autres fonctionnalités mineures ont également été ajoutées, comme la possibilité de « sauter » des fonctions avec l’opérateur <code>&gt;</code>: par exemple, la règle <code>sp.disable_function("bla&gt;blop").drop()</code> terminera l’exécution si la fonction <code>blop</code> a dans ses parents la fonction <code>bla</code>. 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 <code>unserialize</code> est dans leurs fonctions parentes.</p> <p>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.</p> <p>Tout ça c’est intéressant, mais est-ce que Snuffleupagus fonctionne ? Il semblerait que oui : un des auteurs publie <a href="https://dustri.org/b/snuffleupagus-versus-recent-high-profile-vulnerabilities.html">chaque</a> <a href="https://dustri.org/b/snuffleupagus-versus-recent-high-profile-vulnerabilities-again.html">année</a> 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.</p> <p>Quid de la suite ? Bien que le projet ait été abandonné par la société l’ayant open-sourcé (<a href="https://www.nbs-system.com/">NBS-System</a>), 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.</p> </div><div><a href="https://linuxfr.org/news/sortie-de-snuffleupagus-0-7-0-los-elefantes.epub">Télécharger ce contenu au format EPUB</a></div> <p> <strong>Commentaires :</strong> <a href="//linuxfr.org/nodes/122799/comments.atom">voir le flux Atom</a> <a href="https://linuxfr.org/news/sortie-de-snuffleupagus-0-7-0-los-elefantes#comments">ouvrir dans le navigateur</a> </p>