Drupal et la sécurité : niveau 2

La dernière fois, on a évoqué la façon dont on pouvait protéger au mieux une installation Drupal. Dans cette partie, on continue la thématique, en passant un cran au-dessus par l’acquisition de bonnes pratiques.

La sauvegarde et la restauration

Il peut arriver qu’un site crashe, soit parce qu’une attaque sévère a eu lieu, soit qu’une installation a été mal faite soit parce que la loi de Murphy a frappé. Quoiqu’il en soit, si une sauvegarde a été faite de façon de régulière, les dégâts peuvent être minimes. Pour cela, on se sert de deux choses : des snapshots et Backup & Migrate. Pour les snapshots, c’est relativement simple, on se tourne vers son hébergeur et on met en place un système qui va régulièrement prendre « une photo » à un moment prédéterminé de l’état d’un système, en l’espèce d’un site et surtout de sa base de données.  En cas de problème, ce snapshot va permettre de restaurer rapidement un site.

Sinon, une des choses faisable est d’installer Backup & Migrate, qui est un module qui va sauvegarder toutes les informations d’un site, les organiser en bases de données et permettre des migrations très rapides mais aussi des restaurations rapides. Concrètement, on installe le module, puis on le configure en lui indiquant comment faire la sauvegarde et on peut également programmer des sauvegardes. Les sauvegardes seront alors disponibles dans un dossier sur le serveur. En cas de crash, il suffira de réinstaller le core de Drupal, les modules complémentaires et simplement se rendre dans configuration > système > Backup & Migrate > Restore.

En combinant les snapshots et Backup & Migrate, on a un filet de sécurité en cas de pépins.

Les permissions

Installer un Drupal, c’est bien. Eviter qu’il soit ouvert aux quatre vents, c’est mieux. Pour cela, il faut paramétrer les permissions des dossiers. Pour les développeurs à la souris, on peut faire cela en utilisant tout simplement un client FTP de type Filezilla. En piochant à droite et à gauche et en demandant à des personnes connaissant à la fois bien Drupal et la sécurité, voici un conseil concernant les permissions des dossiers Drupal :

  • Includes/Misc/Modules/Profiles/Scripts/Sites/Thèmes => 755
  • .Gitignore/htaccess/authorize/cron/index/robots/update/web/xmlrpc => 644
  • Le fichier setting.php => 644

Le monitoring des dossiers et des fichiers

Il existe un module complémentaire qui peut vous aider au quotidien pour voir si des dossiers ou des fichiers ont été modifiés, il s’agit de Hacked. Il porte relativement mal son nom mais remplit bien sa fonction. Il ne vous avertit pas si vous avez fait l’objet d’une intrusion mais vous signale si un fichier appartenant à un module, de core ou complémentaire, a été modifié. Cela demande évidemment de se rappeler ce que l’on a corrigé mais cela peut-être utile d’autant qu’il fournit le détail des éléments qui ont été modifiés. On peut tenter de combiner ce module avec une règle personnalisé mais il faut savoir que cela risque de ralentir sévèrement le chargement du site.

L’autre module qui peut venir en complément de Hacked est Security Review. En effet, il vérifie un certain nombre de points dont les rôles, les erreurs, les fichiers, les formats autorisés en fonction des rôles. Sa faiblesse réside dans le fait que s’il vérifie effectivement un certain nombre de points, il demande de bonnes connaissances pour comprendre la façon dont les problèmes peuvent être résolus.

A ce stade, on a parcouru environ la moitié du chemin concernant la sécurité et Drupal. Les prochains articles seront consacrés à la sécurité des utilisateurs, aux façons dont on peut renforcer cette sécurité et surtout avec quels modules et la dernière étape sera consacrée à la pré-production. 

Commentaires

Personnellement je trouve que Hacked porte bien son nom, qui veut dire: "modifier" "avoir apporté une modification" sur un quelconques fichiers/dossier.
Je n'ai pas de site créé avec drupal, mais tu apportes pas mal d'informations sur drupal, je pense que je ne vais pas tarder a passer dessus ;) .

Hello, 

oui dans ce sens là, effectivement, le module porte bien son nom, mais je préférais bien signaler le fait que ce module n'était pas un IDS ou un firewall ou tout autre système préventif d'attaque :) 

Si mes petites écritures ont pu te convaincre de t'intéresser à ce système, tant mieux :) et n'hésites pas à passer le chan IRC de Drupal en cas de besoin, les Drupaliens sont des gens forts sympathiques :) 

Ajouter un commentaire