Le projet Snuffleupagus développe un module PHP pour bloquer les vulnérabilités

Dans le cadre du projet Snuffleupage développe un module de connexion à l'interpréteur PHP7, conçu pour améliorer la sécurité de l'environnement et bloquer les erreurs courantes qui conduisent à des vulnérabilités dans l'exécution des applications PHP. Le module vous permet également de créer des correctifs virtuels pour résoudre des problèmes spécifiques sans modifier le code source de l'application vulnérable, ce qui est pratique pour une utilisation dans les systèmes d'hébergement de masse où il est impossible de maintenir toutes les applications utilisateur à jour. Le module est écrit en C, est connecté sous la forme d'une bibliothèque partagée (« extension=snuffleupagus.so » en php.ini) et distribué par sous licence LGPL 3.0.

Snuffleupagus fournit un système de règles qui vous permet d'utiliser des modèles standard pour améliorer la sécurité ou de créer vos propres règles pour contrôler les données d'entrée et les paramètres de fonction. Par exemple, la règle « sp.disable_function.function(« system »).param(« command »).value_r(« [$|;&`\\n] »).drop(); » vous permet de limiter l'utilisation de caractères spéciaux dans les arguments de la fonction system() sans changer l'application. De la même manière, vous pouvez créer correctifs virtuels pour bloquer les vulnérabilités connues.

À en juger par les tests effectués par les développeurs, Snuffleupagus ne réduit guère les performances. Pour assurer sa propre sécurité (d'éventuelles vulnérabilités dans la couche de sécurité peuvent servir de vecteur supplémentaire d'attaques), le projet utilise des tests approfondis de chaque commit dans différentes distributions, utilise des systèmes d'analyse statique et le code est formaté et documenté pour simplifier l'audit.

Des méthodes intégrées sont fournies pour bloquer des classes de vulnérabilités telles que des problèmes, liée avec sérialisation des données, peu sûr utilisation de la fonction PHP mail(), fuite du contenu des Cookies lors d'attaques XSS, problèmes dus au chargement de fichiers avec du code exécutable (par exemple, au format phar), génération de nombres aléatoires de mauvaise qualité et substitution constructions XML incorrectes.

Les modes suivants sont pris en charge pour améliorer la sécurité PHP :

  • Activer automatiquement les indicateurs « sécurisé » et « samesite » (protection CSRF) pour les cookies, Cryptage Biscuit;
  • Ensemble de règles intégré pour identifier les traces d'attaques et de compromission des applications ;
  • Activation globale forcée du "strict" (par exemple, bloque une tentative de spécification d'une chaîne lorsqu'on attend une valeur entière comme argument) et protection contre manipulation de type;
  • Blocage par défaut wrappers de protocole (par exemple, interdire « phar:// ») avec leur liste blanche explicite ;
  • Interdiction d'exécuter des fichiers inscriptibles ;
  • Listes noires et blanches pour évaluation ;
  • Requis pour activer la vérification du certificat TLS lors de l'utilisation
    boucle;

  • Ajout de HMAC aux objets sérialisés pour garantir que la désérialisation récupère les données stockées par l'application d'origine ;
  • Mode de journalisation des demandes ;
  • Blocage du chargement de fichiers externes dans libxml via des liens dans des documents XML ;
  • Possibilité de connecter des gestionnaires externes (upload_validation) pour vérifier et analyser les fichiers téléchargés ;

Le projet a été créé et utilisé pour protéger les utilisateurs dans l'infrastructure d'un des grands opérateurs d'hébergement français. C'est notéque la simple connexion de Snuffleupagus protégerait contre bon nombre des vulnérabilités dangereuses identifiées cette année dans Drupal, WordPress et phpBB. Les vulnérabilités dans Magento et Horde pourraient être bloquées en activant le mode
"sp.readonly_exec.enable()".

Source: opennet.ru

Ajouter un commentaire