AccueilđŸ‡«đŸ‡·Chercher

Suhosin

Suhosin (수혞신 en CorĂ©en, prononcĂ© en corĂ©en : [suÉŠoɕin], signifiant « ange gardien ») est un patch open source pour PHP, ainsi qu'une extension pour ce dernier, Ă©crit par l'entreprise allemande Sektion Eins[1]. Le patch et l'extension sont deux parties distinctes, pouvant ĂȘtre utilisĂ©es ensemble ou sĂ©parĂ©ment. « Le but de Suhosin est d'ĂȘtre un filet de sĂ©curitĂ© protĂ©geant les serveurs contre les mauvaise pratiques de code au niveau de PHP. »[2]

Suhosin

Informations
Créateur Stefan Esser
PremiĂšre version
DerniĂšre version 0.9.38 ()
DĂ©pĂŽt GitHub
État du projet Inactif
Écrit en C
Environnement PHP
Licence Licence PHP
Site web https://suhosin.org

Suhosin rĂ©duit Ă©galement la surface d'attaque prĂ©sentĂ©e par PHP, via un systĂšme de liste blanche pour les fonctions pouvant ĂȘtre appelĂ©es, des limites en termes de ressources, du chiffrement transparent de cookies de session, du filtrage de contenu binaire, de la journalisation[3]
, minimisant ainsi les risques liĂ©s au dĂ©ploiement de code PHP dangereux, et protĂ©geant d'attaques connues et inconnues.

Fonctionnalités

Le patch contient des techniques de durcissement visant Ă  empĂȘcher les attaques par corruption mĂ©moire, qui ne sont pas prĂ©sentes dans le module. La plupart d'entre elles ont toutefois Ă©tĂ© intĂ©grĂ©es directement dans PHP.

  • Chiffrement des cookies : afin de protĂ©ger des attaques de type XSS visant Ă  voler des cookies, ces derniers sont chiffrĂ©s avec une clef dĂ©rivĂ©e du user-agent ainsi que d'une partie de l'adresses IP de l'utilisateur. Ce qui empĂȘche un attaquant d'utiliser des cookies dĂ©robĂ©s, ceux-ci ne se dĂ©chiffrant pas correctement avec son adresse IP.
  • Protection contre les inclusions arbitraires : les fichiers envoyĂ©s, ainsi que les fichiers distants ne peuvent pas ĂȘtre inclus, rendant plus difficile l'exploitation de Remote File Inclusion.
  • DĂ©sactivation de vecteurs courants d’exĂ©cution de code arbitraire : le mot clef eval n'Ă©tant pas une fonction en PHP, il ne peut ĂȘtre dĂ©sactivĂ© via la directive disable_function. Suhosin ajoute cette possibilitĂ©, tout comme celle de dĂ©sactiver le modificateur /e de la fonction preg_replace, lui aussi frĂ©quemment utilisĂ© Ă  des fins malveillantes.
  • Protection contre des boucles infinies : PHP possĂšde un comportement documentĂ© (et acceptĂ©) entraĂźnant une erreur de segmentation en cas de rĂ©cursion infinie. Cette erreur Ă©tant due Ă  une corruption mĂ©moire, Suhosin va plutĂŽt arrĂȘter l’exĂ©cution dĂšs qu'un certain niveau de profondeur dans la pile d'exĂ©cution est atteint.
  • Liste noire et liste blanche de fonctions : la directive disabled_function de PHP n'est pas vraiment granulaire, c'est pourquoi Suhosin fournit un mĂ©canisme permettant d’autoriser ou d'interdire des fonctions, globalement, par virtual-host, ou encore par dossiers.
  • Liste noire de noms de variables suspects : Suhosin peut interdire des variables dans les zones GET, POST, COOKIE contenant des noms rĂ©servĂ©s, comme GLOBALS, _COOKIE, _ENV, _FILES, _GET, _POST

  • Durcissement des envois de fichiers : Suhosin permet d'appeler un script arbitraire lors de l'envoi de fichiers, permettant ainsi d'y adjoindre, par exemple, un anti-virus. Cette fonctionnalitĂ© peut Ă©galement servir Ă  empĂȘcher l'envoi de fichiers ELF, ou de binaires.
  • Lancement d'actions arbitraires en cas de dĂ©tection d’éventements : blocage de variables, envoi de code de rĂ©ponse http spĂ©cifiques, d'une redirection, ou encore exĂ©cuter un script PHP particulier.
  • Journalisation dĂ©taillĂ©e : il est possible, via Suhosin, de loguer un grand nombre de dĂ©tails en cas d’éventements, le nom du fichier, le numĂ©ro de ligne, l'adresse IP du client


Distribution

Le module ainsi que le patch furent inclus dans plusieurs distributions Linux , notamment Debian jusqu’à sa version 6.x (Squeeze), et fut rĂ©intĂ©grĂ© plus tard[4], ou encore dans Gentoo Hardened. Il Ă©tait Ă©galement activĂ© sur la version serveur de Mac OS X.

À partir de PHP5.4, openSuse arrĂȘta de supporter le patch, mais continue son support du module[5].

FreeBSD maintient Ă©galement le module dans sa collection de ports.

Développement et héritiers

La premiĂšre version de Suhosin sortit en 2006[6], et supportait PHP 5.2.0. La derniĂšre version du patch fut publiĂ©e quelques mois aprĂšs la sortie du module. Le dernier article publiĂ© sur le site officiel date de 2007[6], et le dĂ©veloppement du mode s’arrĂȘta de Ă  . Ce qui poussa certaines distributions Ă  considĂ©rer le projet comme inactif, jusqu'Ă  ce que la communautĂ© prenne le relai, aux alentours de 2014[7]. Il n'est actuellement pas prĂ©vu[8] de pousser dans PHP les fonctionnalitĂ©s de Suhosin.

En , suhosin7 vit le jour[9], afin de proposer des fonctionnalitĂ©s Ă©quivalentes pour PHP 7.x, mais n'a pour l'instant pas rencontrĂ© d'engouement[10]. Le projet Snuffleupagus vise Ă  en ĂȘtre le successeur moderne, pour PHP 7 et au-delĂ .

Voir aussi

Références

  1. (en) « Frequently Asked Questions », sur SUHOSIN, (consulté le ).
  2. Chapter 13, Securing PHP Web Applications by Tricia Ballad; William Ballad Publisher: Addison-Wesley Professional, Web (ISBN 978-0-321-57431-2)
  3. Official Feature List
  4. Overview of package php5-suhosin in Debian sid
  5. Mailinglist Archive: opensuse-factory (418 mails)
  6. « Hardened-PHP Project - PHP Security - News », sur hardened-php.net (consulté le )
  7. (en) « sektioneins/suhosin », sur GitHub (consulté le )
  8. « 'Re: [PHP-DEV] Suhosin patch disabled by default in Debian php5 builds' - MARC », sur marc.info (consulté le )
  9. (en) « first commit · sektioneins/suhosin7@aee7faf », sur GitHub (consulté le )
  10. (en) « sektioneins/suhosin7 », sur GitHub (consulté le )

Liens externes

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplĂ©mentaires peuvent s’appliquer aux fichiers multimĂ©dias.