2 votes

Pourquoi restreindre les utilisateurs d'Apache à l'exécution de scripts ?

Lorsque les utilisateurs d'Apache sont autorisés à exécuter des scripts bash via PHP - pourquoi cela est-il considéré comme dangereux ? Je comprends que les utilisateurs peuvent parcourir l'ensemble du système de fichiers et même voir quels utilisateurs supplémentaires sont hébergés sur la machine ; ils peuvent également lire les paramètres dans le fichier conf/httpd.conf . Mais comment cette information va-t-elle les aider à pirater le système ? Considérons que Suexec est actif.

4voto

James L Points 5835

Il existe des restrictions de sécurité (généralement par défaut) à l'intérieur de php.ini pour empêcher les scripts d'utiliser trop de mémoire, d'exécuter certaines fonctions ou de faire généralement ce qu'ils ne devraient pas.

Si vous autorisez PHP à exécuter un Shell Shell qui n'est pas restreint de cette manière, vous ouvrez les possibilités aux attaquants. Par exemple, ils pourraient exécuter un bombe à fourche et potentiellement mettre votre serveur hors ligne. Ils pourraient prendre part à un DDoS plus facilement, ou lancer un scanner de vulnérabilité contre d'autres serveurs. Il peut également être beaucoup plus difficile de déboguer le point de départ et la manière exacte dont un serveur a été compromis si vous autorisez un niveau d'abstraction supplémentaire.

En général, si un serveur est verrouillé correctement, le code malveillant est limité, mais les serveurs sont très rarement verrouillés correctement. Il faut généralement deux ou trois vulnérabilités pour compromettre un serveur - les autorisations 777 ne vous causeront pas de problème à moins que quelqu'un ne compromette le code de votre site web ou qu'un utilisateur malveillant ayant un accès se balade, mais pourquoi prendre le risque ?

Lorsque les gens essaient d'entrer dans votre serveur, ils le font généralement à l'aveuglette. Ils devinent vos paramètres PHP, ils devinent la configuration de votre serveur Web, ils devinent les noms d'utilisateur (/etc/passwd est lisible par tous), ils devinent les noms de vos bases de données. Si vous leur permettez de lire les fichiers de configuration, vous leur rendez la vie beaucoup plus facile. Si vous les autorisez à envoyer par courrier électronique vos fichiers PHP contenant les noms d'utilisateur et les mots de passe pour les chaînes de connexion aux bases de données, vous leur rendez la vie extrêmement facile. Les pare-feu entrants (par exemple, la restriction de MySQL à localhost) sont d'une utilité limitée si vous les laissez exécuter ce qu'ils veulent à partir de votre serveur.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X