Security/Fr

From TuxFamilyFAQ
Revision as of 22:42, 22 May 2012 by Trent (talk | contribs) (Created page with "Cette page à pour but de fournir les conseils de sécurité que vous devriez suivre en tant qu'hébergé chez TuxFamily. Nous rappellerons que l'équipe de TuxFamily essaie de g...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

Cette page à pour but de fournir les conseils de sécurité que vous devriez suivre en tant qu'hébergé chez TuxFamily. Nous rappellerons que l'équipe de TuxFamily essaie de garantir et de définir vos responsabilités concernant vos données en général et vos sites web en particulier. Cette page se concentre principalement sur la gestion de vos espaces web. En effet, la possibilité de générer des pages dynamiquement (en exécutant différents scripts) est aussi bien souvent la cible facile des attaquants. Si cela semble fastidieux ou ennuyeux, et bien… essayer d'imaginer à quel point c'est ennuyeux quand votre site est modifier par un "pirate" et à quel point c'est fastidieux de tout nettoyer/réinstaller.

La cruel loi de l'hébergement ou Pourquoi la sécurité dépend de vous…

En tant qu'hébergeur, TuxFamily vous laisse générer votre site web avec la plupart des outils disponibles du moment qu'ils utilisent l'interface "CGI". Malgré ceci, la plupart d'entre vous continuerons de penser que TuxFamily ne fournit que PHP. Une fois que vous avez choisit PHP, vous êtes comme n'importe quel développeur web voulant construire un site web par lui-même (utilisant peut-être un framework comme Zend par exemple) ou un non développeur qui préfère confier cela à un système de gestion de contenu (CMS), comme MediaWiki, WordPress, Drupal, Joomla, phpBB, etc. Dans les deux cas, cela donne un site fonctionnel très facilement, mais cela ne guarantie en aucun cas sa sécurité. Les erreurs typiques sont :

  • mauvais développement : oublie de nettoyer les entrées et sorties des données, injections SQL, XSS, CSRF, etc.
  • fichiers sensibles laissés en lecture pour tout le monde (un fichier config.php avec les identifiants de la base de données par exemple)
  • CMS ou bibliothèques que vous utilisez NON mise à jour et contenant donc des failles de sécurités connues : rien de plus simple alors pour un attaquant de modifier votre site ou pire, de placer une porte dérobée (backdoor) dans votre espace web.

Nous rencontrons très souvent ces erreurs qui pourraient facilement être éviter, c'est pourquoi nous les rappelons.

Ce que TuxFamily fournit

D'un point de vue technique

Les fichiers que vous envoyez sont créés avec votre uid, le gid avec le groupe de votre projet, et les permissions spécifiques avec votre umask. Si cela ne veut rien dire pour vous, alors vous avez le devoir de lire et d'apprendre Unix permissions.

TuxFamily utilise PHP fournit par Debian stable, avec eAccelerator et suPHP. Ainsi (pas comme la plupart des installations Apache+PHP) les scripts ne sont pas exécutés par l'utilisateur Apache, ils sont lancés par le propriétaire du fichier, ce qui la plupart du temps signifie… votre compte.

TuxFamily ajoute des méchanismes de sécurité supplémentaires qui vous empêchent (et vos scripts) de lire des fichiers appartenant à d'autres groupes/projets. Cela vous empêche aussi de mettre vos fichiers en lecture pour tout le monde (o+w).

Dans un espace web, TuxFamily fournit deux répertoires intéressants :

  • htdocs: le répertoire racine (DocumentRoot) délivré par Apache. Il peut être utilisé pour stocker des fichiers statiques ainsi que des points d'entrée comme index.php. Les fichiers .htaccess dans ce répertoire sont interprétés par Apache.
  • php-includes: ce dossier peut contenir tous les fichiers qui ne seront jamais délivrés directement par Apache (bibliothèques, includes, etc). Noté que le nom php-includes est resté pour des raisons historiques mais il n'est pas réservé qu'aux sites web utilisant PHP.

Ainsi, TuxFamily permet de séparer votre espace web en deux, les fichiers délivrés par Apache et les autres. Note: notre démon Apache est capable de lire n'importe quel fichier qui est en lecture pour tout le monde (o+w).

En résumé : votre responsabilité en tant qu'hébergé

TuxFamily fait de son mieux pour séparer les données entre hébergés malgré un hébergement mutualisé. En appliquant les conseils ci-dessous, vous ferez en sorte de bénéficier de ces mesures de sécurités. Si vous ne les suivez pas, vous serez entièrement responsable en cas de fuites de données, de vol d'identifiants ou de problèmes dus aux pourriels(spam), hameçonnage(phishing) ou autres attaques faites à partir d'un espace web corrompu.

Conseils

  • Lisez ceci Unix permissions. Sérieusement, ça prend une page pour connaitre les permissions Unix, pas besoin d'un BAC+8.
  • Quand vous travaillez sur votre espace web, mettez les bonnes permissions aux fichiers :
    • vos ressources statiques (images, scripts, CSS…) devraient être en lecture pour tout le monde (o+r) -- En fait vous devriez les placer dans un espace de téléchargement pour bénéficier de meilleurs performances mais ce n'est pas le propos ici.
    • Les scripts agissants comme points d'entrée (i.e : index.php) devraient être en lecture pour tout le monde (assurez-vous qu'ils ne contiennent pas de données sensibles)
    • les fichiers inclus par les points d'entrées devraient être en lecture pour tout le monde pour peu qu'ils ne contiennent rien de sensibles. Mais n'hésitez pas à les mettre non lisible pour tout le monde quand même.
    • les fichies (.php, ini, etc.) contenant des données sensibles (mot de passe, etc) ne devraient JAMAIS être en lecture pour tout le monde ; chmod o-rwx est votre ami.
  • Vous devez mettre à jour votre CMS régulièrement, c'est à dire dès la publication d'un correctif pour une faille de sécurité.
    • Certains CMS intègrent des systèmes d'alertes, utilisez-les.
    • Vous devriez aussi suivre les mailing listes ou les flux RSS du CMS que vous utilisez pour rester informer.
    • Comme les mises à jour et correctifs peuvent comporter des régressions ou des bugs qui peuvent casser votre site nous vous recommandons fortement de le faire d'abord dans un environnement de test sur votre propre ordinateur (de préférence distinct de votre environnement de développement, vous permettant ainsi de tester votre procédure de déploiement au moins une fois).
  • TuxFamily vous permet de faire des backup facilement : utilisez rsync via SSH pour automatisez les sauvegardes de vos espaces web, espaces de téléchargement et vos bases de données (vos bases de données sont exportées dans un fichier SQL chaque nuit) et snvsync pour sauvegarder vos dépots SVN. Garder en tête que ces sauvegardes sont extrêmement utiles pour récupérer ses données après une attaque.