Jusqu'à présent, je "protégeais" les fichiers PHP de mon site Web en les rendant en lecture seule avec chmod
.
Est-ce une tactique de sécurité utile? Ou est-ce un "vieux conte" et je perds mon temps?
Je suis enclin à penser que quiconque est en mesure de modifier mes fichiers PHP pourrait également chmod
les (ce qui ralentirait à peine tout attaquant potentiel). Ou ils pourraient simplement créer un nouveau fichier quelque part (comme un répertoire de cache ou de téléchargement). Pensées?
L'inconvénient de cette technique est que je dois Shell et rendre les fichiers accessibles en écriture chaque fois que je souhaite mettre à jour automatiquement WordPress (ou, en réalité, apporter des modifications à mon site). Donc, je mets à jour moins souvent que je devrais probablement. Donc, même si cela n’a qu’une utilité marginale, en vaut-il la peine?
Si vous créez également les fichiers PHP appartenant à un utilisateur autre que celui sous lequel Apache est exécuté, alors oui, vous avez bloqué hors un scénario d'attaque potentielle. Si vous les laissez la propriété de l'utilisateur Apache, un attaquant disposant de privilèges de niveau Apache (par exemple, une injection de code ou une inclusion de fichier à distance) serait capable de chmod
les fichiers et de les éditer quand même.
Cela ne bloque aucun autre scénario d'attaque, par exemple un attaquant qui devine votre mot de passe SSH ou qui trouve une faille lui donnant un accès root.
Si un attaquant parvient à obtenir des privilèges de niveau Apache sur votre serveur mais ne peut pas modifier les fichiers PHP en raison de la propriété et des autorisations correspondantes, il est probable qu'ils fassent ce qu'ils peuvent pour atteindre leurs objectifs (par exemple, télécharger un nouveau script dans le répertoire uploads ou créer un fichier .htaccess quelque part) ou utiliser cet accès pour élever leurs privilèges jusqu'à ce qu'ils puissent éditer les fichiers.
Si vous ne mettez pas à jour Wordpress aussi souvent que vous le devriez, la sécurité globale est probablement réduite. L'ancien Wordpress est bien pire que les fichiers PHP en écriture appartenant à l'utilisateur Apache.
Linux a la notion de groupes de sécurité, vous pouvez donc définir un fichier en lecture seule sur un groupe, mais pas sur un autre. Il sera plus facile pour un attaquant de prétendre être n'importe quel utilisateur, plutôt que des utilisateurs avec plus de privilèges, comme root
. S'ils parviennent à prétendre être un utilisateur avec des privilèges moindres, ils ne pourront pas chmod
les fichiers, alors que si vous les avez laissés en écriture à tous les utilisateurs, ils peuvent les modifier.
C'est donc une bonne chose à faire, mais ce n'est certainement pas la seule chose à faire.