PHP est un langage de script de site Web très populaire, mais sa sécurité inhérente est très faible. Cet article décrit le plan d'amélioration PHP (projet Hardened-PHP) et le nouveau plan Suhosi fournit une configuration de sécurité PHP améliorée.
PHP est le langage de script de site Web controversé mais le plus populaire. Il est populaire en raison de son prix bas. Cependant, ce faible prix a conduit à de plus en plus d'applications de sites Web écrites en PHP, et en même temps, de plus en plus de PHP lui-même est exposé en termes de vulnérabilités de sécurité. Les fonctionnalités montrent que PHP est extrêmement peu fiable, mais en même temps, le langage de script lui-même est très flexible et il est facile d'implémenter du code en l'utilisant, mais ces codes sont volumineux et dangereux, bien qu'il en ait encore beaucoup utilisateurs. On pourrait supposer que, à maintes reprises, des applications de toutes sortes présentent cette vulnérabilité : vulnérables à l’injection SQL, aux scripts intersites, à l’exécution arbitraire, etc.
Étant donné que les mesures de sécurité PHP intégrées telles que safe_mode et open_basedir sont ignorées, le projet d'amélioration PHP crée un PHP plus sécurisé et effectue également des contrôles de validation sur PHP. Initialement, cela a été réalisé avec des correctifs PHP améliorés qui nécessitaient que PHP lui-même soit corrigé et recompilé. Récemment, le PHP Enhancement Project a publié un nouveau projet appelé Suhosin.
Sohosin se compose de deux parties : La première partie est un patch PHP. Ce patch renforce le moteur Zend lui-même pour éviter d'éventuels débordements de tampon et prévenir les faiblesses associées. La deuxième partie est l'extension de Suhosin, qui est un module autonome pour PHP. Les deux parties peuvent fonctionner ensemble ou l’extension peut fonctionner indépendamment.
Les développeurs ne veulent pas avoir à maintenir leurs propres installations PHP pour assurer la sécurité et ils préfèrent certainement utiliser PHP directement sur le système de distribution Linux fourni par le fournisseur, en utilisant des modules d'extension pour fournir plus de fonctionnalités de sécurité que PHP lui-même ne peut pas avoir.
L'extension est facile à installer ; elle peut également être installée via PECL, ou téléchargée et compilée :
$ tar xvzf suhosin-0.9.17
$ cd suhosin-0.9.17
$ phpize
$ ./configure
$ make
$ sudo make install
Pour utiliser suhosin , vous devez également ajouter /etc/php.ini, comme indiqué ci-dessous :
extension=suhosin.so
Pour la plupart des gens, les options de configuration par défaut suffisent. Afin de renforcer les paramètres, vous pouvez ajouter les valeurs correspondantesdans /etc/php.ini. Les différentes options de configuration sont présentées en détail sur le site Web. Ces instructions peuvent vous aider lors de la configuration initiale.
En utilisant Suhosin, vous pouvez obtenir des journaux d'erreurs. Vous pouvez placer ces journaux dans le journal système ou les écrire dans n'importe quel autre fichier journal en même temps ; il peut également créer des listes noires et des listes blanches pour chaque hôte virtuel que vous pouvez filtrer GET et POST ; demandes, téléchargements de fichiers et cookies. Vous pouvez également envoyer des sessions et des cookies cryptés, configurer un stockage qui ne peut pas être envoyé, et bien plus encore. Contrairement au patch de renforcement PHP d'origine, Suhosin est compatible avec des extensions tierces comme Zend Optimizer.