Considérations sur la sécurité de Gepi

Cette page contient des réflexions importantes sur les questions de sécurité en lien avec Gepi. Si vous mettez en place un Gepi en production dans votre établissement, prenez le temps de lire cette page et de définir une stratégie de sécurité solide pour votre Gepi.

Principes généraux

Quelques principes à garder en permanence à l’esprit :

  • Une application n’est jamais sûre à 100%.
  • La sécurité d’une application dépend en grande partie de la sécurité de l’environnement dans lequel celle-ci est déployée.
  • La première source de vulnérabilité (et la plus complexe à gérer) est l’utilisateur lui-même.
  • La gestion de la sécurité est un processus dynamique : une vigilance constante doit être exercée, et les mises à jour régulières.
  • Une politique de sécurité efficace est souvent basée sur des principes et actions simples.

La sécurité du côté de Gepi

Les développeurs de Gepi portent une attention particulière aux questions de sécurité. C’est d’autant plus vrai depuis la version 1.5, qui ouvre les portes de Gepi aux élèves et aux parents.

La gestion des failles de sécurité de Gepi

Gepi n’est pas exempt de failles de sécurité. Depuis la création du projet, deux failles critiques ont été détectées. Ces failles ont été corrigées dans les heures qui ont suivi leur découverte, avec publication immédiate de patchs et de paquets mis à jour.

Si vous détectez une faille de sécurité dans Gepi, contactez immédiatement le chef de projet ! Ne passez pas par les listes publiques de Gepi pour annoncer une faille de sécurité, car des attaquant potentiels peuvent y être inscrits. Le chef de projet, dès qu’il sera averti, informera les autres développeurs et toute l’équipe sera mobilisé à la correction immédiate de la faille.

L’équipe de Gepi privilégie l’ouverture et la transparence sur les questions de sécurité. Ainsi une faille sera annoncée publiquement dès sa correction effective par les développeurs, ou bien immédiatement si la correction est trop complexe à mettre en oeuvre dans un délai raisonnable (quelques dizaines d’heures).

Il est donc indispensable, en tant qu’administrateur d’un Gepi utilisé en production, que vous restiez en contact permanent avec les canaux de communication utilisés par l’équipe de développement de Gepi. Il s’agit essentiellement de la liste de diffusion gepi-users et du flux RSS d’actualité du site officiel de Gepi. Une liste de diffusion spécialement dédiée à la sécurité sera peut-être mise en place dans un avenir proche, mais ça n’est pas le cas pour l’instant.

Lorsqu’une faille de sécurité est annoncée, la première chose à faire est de mettre à jour votre installation de Gepi avec les patchs diffusés. L’équipe de développement diffusera des versions à jour pour les dernières versions stables. Si un patch n’est pas présent pour votre version, vous pouvez le réaliser vous-même à partir des sources disponibles sur le SVN de Gepi.
Définir une politique de sécurité au sein de Gepi

La sécurité intrinsèque de Gepi est une chose, mais la première vulnérabilité n’a rien à voir avec la technique : c’est l’utilisateur lui-même. Il est donc important de définir dans Gepi une politique de sécurité efficace pour prévenir autant que possible les faiblesses de l’utilisateur.

Communiquez !

Mieux vaut prévenir que guérir. Gepi n’est qu’une brique au sein de systèmes d’informations utilisés de plus en plus massivement. Tous les systèmes d’information requérant une authentification de l’utilisateur sont confrontés aux mêmes problèmes de sécurité concernant les utilisateurs. Prenez donc du temps pour sensibiliser les utilisateurs aux principes de base : l’identifiant est personnel, le mot de passe doit être suffisamment complexe et ne doit jamais être transmis à quiconque, ne saisir ses identifiant et mot de passe que sur des sites connus et utilisant une connexion cryptée, etc.

Forcez des mots de passe complexe

Gepi effectue des tests sur les mots de passe. Vous pouvez changer la longueur minimale du mot de passe dans le fichier /lib/global.inc.php.
Définir un timeout de session raisonnable

Vous pouvez définir la durée d’inactivité maximale au-delà de laquelle une session Gepi est automatiquement fermée. La valeur par défaut, 30 minutes, devrait être largement suffisante pour une utilisation normale de Gepi.

La sécurité du côté du serveur

C’est sans doute la partie la plus complexe si vous administrez vous-même votre serveur, car elle requiert des compétences avancées.

Utilisez toujours des connexions cryptées (SSL)

D’une manière générale les informations sensibles doivent toujours circuler de manière cryptée sur le réseau. Il est extrêmement simple, sur un réseau local, d’utiliser des sniffer réseaux pour récupérer par exemple un login et un mot de passe.

Au niveau de la configuration du serveur web où est installé Gepi, vous devrez donc configurer un certificat SSL pour permettre une connexion à Gepi en HTTPS (et non HTTP).

Si vous hébergez Gepi sur un serveur pour lequel vous n’êtes pas administrateur, choisissez un prestataire qui vous fourni un certificat (un certificat mutualisé est suffisant, l’important est d’avoir une connexion cryptée).

Protégez les données de Gepi

L’accès à la base de données MySQL utilisée par Gepi doit être restreint à un seul utilisateur, spécialement dédié à cette base. Aucun autre utilisateur de la base ne doit pouvoir y accéder. Définissez les privilèges de cet utilisateur de manière suffisante mais limitée (pas besoin de donner des droits administratifs à cet utilisateur).

Assurez-vous que les sauvegardes sont également stockées de manière sécurisée. Il s’agit des sauvegardes du côté serveur autant que des sauvegardes que vous conservez de manière séparée sur un autre serveur, ou sur CD, ou sur votre ordinateur personnel. L’accès à une sauvegarde de la base de données donne accès à tous les identifiants et mots de passe des utilisateurs. Les mots de passe sont cryptés par MD5 mais ce cryptage faible peut être décodé rapidement en brute-force.

Sauvegardez, mettez à jour, recommencez…

La sauvegarde des données de Gepi doit être au minimum quotidienne, sinon vous allez être assaillis de professeurs mécontent (à juste raison) le jour où un problème apparaît et que vous perdez deux semaines de saisie parce que votre sauvegarde la plus récente date de deux semaines…

Ne prenez donc aucun risque. Sauvegardez quotidiennement les données.

De même, mettez à jour le serveur très régulièrement pour fermer les éventuelles failles de sécurité.
Utilisez les outils à votre disposition

Toutes les distributions Linux contiennent des outils efficaces de monitoring, détection et prévention d’intrusion, statistiques, sauvegardes automatisées, etc. Prenez le temps de vous documenter et de mettre en place ces outils.

La sécurité d’un serveur web ne s’improvise pas. Sa mise en place n’est jamais définitive et demande beaucoup de temps. Si vous externalisez l’hébergement de vos applications web comme Gepi, assurez-vous que le prestataire répond à ces exigences de sécurité (c’est en général le cas).