Sécurité

Attention : vous consultez actuellement la documentation dédiée aux versions 1.x de Moodle. La documentation pour les versions 2.x de Moodle est consultable ici : Sécurité et celle pour Moodle 3.x est consultable là : Sécurité.

Cet article a besoin d'une mise à jour. Veuillez SVP le mettre à jour et retirer cette notice une fois la mise à jour effectuée. Si le bloc "Autres langues" (voir pied de page), comprend un lien "English", vous pouvez vous inspirer du contenu anglais.



Toute application web est complexe, et l'on découvre de temps en temps des trous de sécurité dans chacune d'entre elles. Habituellement, ces problèmes impliquent la saisie de texte que les développeurs n'ont pas anticipée. Le projet Moodle prend la sécurité très au sérieux et améliore continuellement Moodle de façon à résoudre de tels problèmes dès leur apparition, et même avant.

Préambule

  • Dans cet article, vous trouverez d'importantes mesures de sécurité à prendre pour votre installation de Moodle.
  • Les problèmes de sécurité que vous rencontrez doivent être rapportés directement dans le Traqueur de bogues, comme problème de sécurité afin que les développeurs soient prévenus au plus vite, puissent informer les administrateurs de sites Moodle enregistrés, et éviter que ces failles ne soient connues publiquement avant d'avoir une solution (pour prévenir des attaques et éviter de faire peur indûment).
  • Veillez à ne pas poster ni dans le gestionnaire de bogues, ni dans les forums, de messages avec du code permettant d'exploiter une faille de sécurité, afin là encore d'éviter les attaques.

Quelques mesures de sécurité simples

  • La meilleure stratégie de sécurité est une bonne copie de sauvegarde ! Une copie de sauvegarde n'est bonne que si vous pouvez la restaurer. Testez vos procédures de restauration !
  • N'utilisez que des logiciels et services que vous emploierez.
  • Effectuez les mises à jour de façon régulière.
  • Construisez votre modèle de sécurité comme les couches d'habits que vous portez lors d'un hiver froid.

Recommandations de base

  • Mettez à jour Moodle régulièrement, lors de chaque nouvelle version :
les failles de sécurité publiées attirent l'attention des pirates après leur publication. Plus la version est ancienne, plus grande est la probabilité qu'elle contienne des failles.
  • Désactivez l'option PHP register globals :
cela vous aidera à vous prémunir contre des éventuels problèmes XSS dans des scripts de tiers.
  • Utilisez des mots de passe complexes pour les administrateurs et les enseignants :
l'utilisation de mots de passes difficiles à deviner est une pratique de protection de base pour éviter les attaques en force contre les comptes.
  • Ne donnez des privilèges d'enseignants qu'à des utilisateurs fiables. Évitez la création de cours bac à sable avec des comptes d'enseignant ouverts sur des serveurs de production :
les comptes avec privilèges d'enseignant ont des permissions beaucoup plus larges et il est donc plus simple d'y créer des situations dans lesquelles les données peuvent être compromises.
  • Séparez vos systèmes autant que possible :
une autre technique de base consiste à utiliser différents mots de passe sur des systèmes différents, à utiliser différentes machines pour des services différents, etc. Ceci évitera que les éventuels dommages ne se répandent, même si un compte ou un serveur est compromis.

Faites des mises à jour régulières de vos systèmes

  • Utilisez les mécanismes de mise à jour automatique
  • Windows Update
  • Linux : up2date, yum, apt-get
Envisagez de mettre en place un script de mise à jour automatique lancé par cron
  • Mise à jour de logiciels de Mac OS X
  • Utilisez des versions actuelles de php, apache et Moodle

Utilisez les listes de diffusion pour rester au courant

Pare-feu (firewalls)

  • Les experts en sécurité recommandent un pare-feu double :
différentes combinaisons de matériel et logiciels.
  • La désactivation des services non utilisés est souvent aussi efficace qu'un pare-feu :
utilisez netstat -a pour vérifier les ports réseaux ouverts.
  • Les pare-feu ne garantissent pas une protection absolue.
  • Permettre le trafic sur les ports réseaux :
80, 443 (ssl) et 9111 (pour le chat),
pour l'administration à distance : 22 (ssh) ou 3389 (rpd).

Soyez prêt au pire

Alertes de sécurité Moodle

  • Enregistrez votre site auprès de Moodle.org :
les utilisateurs enregistrés reçoivent les alertes par courriel.

Les alertes de sécurité sont aussi publiées en ligne :

Considérations supplémentaires

Les points suivants ont également un impact sur la sécurité de votre Moodle :

  • Désactivez le paramètre opentogoogle, en particulier pour les sites avec des élèves de moins de 12 ans
  • Utilisez SSL et activez le paramètre httpslogins
  • Désactivez l'accès aux visiteurs anonymes en cachant le bouton de connexion comme visiteur anonyme
  • Mettez des clefs d'inscription pour tous les cours
  • Utilisez de bons mots de passe
  • Activez le paramètresecureforms
  • Donnez un mot de passe à l'utilisateur root de MySQL
  • Désactivez l'accès à MySQL par le réseau

Autorisations de fichiers les plus sûres

Si vous faites tourner Moodle sur une machine sur laquelle les connexions des utilisateurs sont interdites et si l'utilisateur root s'occupe des modifications au code et de la configuration de Moodle (fichier config.php), les autorisations suivantes sont les plus sûres :

1. Dossier moodledata et tout son contenu et ses sous-dossiers, y compris les sessions :

possesseur : utilisateur apache (apache, httpd, www-data, etc.)
groupe : groupe apache (apache, httpd, www-data, etc.)
autorisations : 700 sur les dossiers, 600 sur les fichiers

2. Dossier moodle et tout son contenu et ses sous-dossiers, y compris le fichier config.php :

possesseur : root
groupe : root
autorisations : 755 sur les dossiers, 644 sur les fichiers

Si vous autorisez les connexions locales, le point 2. doit être modifié ainsi :

possesseur : root
groupe : groupe apache
autorisations : 750 sur les dossiers, 640 sur les fichiers

Ces autorisations sont à considérer comme paranoïaques. Il est tout à fait possible d'être sécurisé avec des autorisations moins restrictives, tant sur le dossier moodledata que sur le dossier moodle et leurs sous-dossiers.

Voir aussi