J'ai découvert ce petit PHP qui vous permet d'entrer manuellement des requêtes GET depuis la barre d'adresse du navigateur et d'exécuter des commandes. J'ai joué avec et j'ai découvert que je pouvais faire toutes sortes de choses comme www- données, y compris afficher l'intégralité de la structure du répertoire, copier les fichiers des comptes utilisateurs, écrire soigneusement des scripts et PHP fichiers, télécharger des scripts, PHP fichiers et programmes exécutables, et télécharger et compiler le code source C.
J'ai joué avec sur une machine de rechange qui n'est pas accessible depuis Internet mais cela m'a fait penser à ce qui pourrait arriver si ce code était injecté dans une page Web (similaire a été fait avec les logiciels open source que j'ai utilisés dans le passé) et se demandant quelles mesures peuvent être prises pour verrouiller un serveur et l'empêcher.
Alors, existe-t-il un moyen d'empêcher www-data d'exécuter des commandes qui permettraient ces actions sur un serveur, au cas où il y aurait un accès de cette manière?
Si vous n'avez pas besoin de quelque chose, mieux vaut l'éteindre, en effet.
Vous pouvez généralement faire deux choses:
1) Si vous n'avez pas besoin de PHP, désactivez-le. Sous Ubuntu, vous pouvez voir la liste des modules qui sont activés sous /etc/Apache2/mods-enabled/
Essayer:
ls /etc/Apache2/mods-enabled/
Si vous voyez des entrées telles que php5.conf
et php5.load
, supprime-les. De même, vous pouvez trouver des modules cgi *. *, Et si installés d'autres comme Ruby et Perl (non installé par défaut). Comme mentionné par quelqu'un d'autre, le suexec est également un problème potentiel car avec capacité "su" vous pouvez voir le monde entier.
2) Si vous utilisez PHP, vous pouvez essayer d'exécuter mod-security . Cela évitera beaucoup de choses, en supposant que vous activez la plupart des contrôles qu'ils ont là. Cependant, cela empêchera également beaucoup de choses légales (c'est-à-dire que si vous avez du code bash sur une page, cette page peut ne pas être servie du tout!)
Bien sûr, l'idée principale est de pouvoir installer des systèmes tels que Drupal ou Wordpress. Une telle utilisation PHP et donc vous êtes obligé de l'utiliser. Maintenant notez qu'un système tel que Drupal a une équipe de sécurité complète travaillant sur des problèmes qui présentent un danger potentiel pour le serveur ou le client utilisant Drupal. Il est donc généralement sécurise.