Sortie de Snuffleupagus 0.5.1, un module de blocage des vulnérabilités dans les applications PHP

Après un an de développement publié lancement du projet Snuffleupagus 0.5.1, qui fournit un module pour l'interpréteur PHP7 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 correctifs virtuels pour éliminer 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. Les frais généraux du module sont estimés minimes. 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. 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.

Modes d'amélioration de la sécurité PHP fournis par Snuffleupagus :

  • 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 ;

parmi changements dans la nouvelle version : prise en charge améliorée de PHP 7.4 et compatibilité implémentée avec la branche PHP 8 actuellement en développement. Ajout de la possibilité de journaliser les événements via syslog (la directive sp.log_media est proposée pour inclusion, qui peut prendre des valeurs php ou syslog). L'ensemble de règles par défaut a été mis à jour pour inclure de nouvelles règles pour les vulnérabilités et techniques d'attaque récemment identifiées contre les applications Web. Prise en charge améliorée de macOS et utilisation étendue de la plateforme d'intégration continue basée sur GitLab.

Source: opennet.ru

Ajouter un commentaire