Aujourd'hui j'ai décidé de publier un petit test de sécurité afin de déceler des oublis de sécurité ou de mettre en valeur des améliorations possibles pour se protéger sur son site web.
Le test que vous allez voir n'est pas basé sur des méthodes d'intrusions, mais plutôt sur un audit, avec analyse des points forts, des points faibles, suite à l'installation d'une petite application web du type CMS (Système de Gestion de contenu en français), Pluxml. Pluxml permet de créer un site ou un blog sans connaissance en programmation.
Cette application fonctionne sans base de données et stocke le contenu et les réglages dans des fichiers xml [pages web]. Ce test a été fait avec une installation standard tel qu'un utilisateur débutant aurait pu la faire.
Installation
Je ne détaille pas les étapes de téléchargement, décompression et envoi de fichier. Après envoi des fichiers "script" sur le serveur, la phase d'installation de Pluxml depuis le navigateur me demande un nom et mot de passe pour le compte de rédacteur ainsi qu'une confirmation. Je conseille naturellement de mettre un mot de passe aléatoire fort !
Petit défaut
Une fois l'installation effectuée, je vais sur la page d'accueil et constate qu'il y a des informations sensibles dans le pied de page à savoir un lien qui mène sur l'administration, le nom et la version du cms utilisé. Toutes ces informations peuvent servir à une tierce personne pour chercher une faille dans la version de ce cms et de vous nuire. Vous devez vous souvenir que l'administration est environnement privé sensible, et qu'aucun lien ou information ne doivent être présents sur le site, pour éviter qu'une tierce personne ne tente de se connecter.
Vulnérabilité sur la version 4.3.1
En testant les commentaires j'aperçois une vulnérabilité xss dans la variable msgcom, fonction utilisée dans les commentaires. Cette vulnérabilité est la conséquence d'une variable qui n'est pas correctement filtrée et qui pourrait permettre à une tierce personne l'injection un code arbitraire. Je préviens immédiatement Pluxml.org qui réagit rapidement en publiant dans la journée une version 4.3.2. Autre remarque, si vous ne souhaitez pas effectuer la mise à jour, n'utilisez pas la fonction commentaire, qui contient également une légère erreur et désactivez-la.
Administration
Je teste mon identifiant et mot de passe et accède rapidement à l'interface d'administration efficace et simple. En naviguant dans les pages de l'administration je ne relève aucun souci majeur, juste un détail: les fichiers xml ci-dessous, du répertoire data, sont accessibles en écriture et aucun conseil n'est préconisé :
- configuration/parametres.xml
- configuration/categories.xml
- configuration/statiques.xml
- configuration/passwords.xml
- articles/
- commentaires/
- statiques/
- images/
- documents/
Hébergement
Il n'y a pas de fichier .htaccess à la racine du script. Installez-en un, il contiendra les règles de sécurité.
Comme une trace d'installation est toujours présente avec le fichier install.php (qui a permis une installation rapide et simple) après avoir fini l'installation de ce cms, il faut supprimer ce fichier.
Un fichier config.php est également présent et j'y remarque une fonction pour la gestion des erreurs PHP ("error_reporting(E_ALL ^ E_NOTICE);") . Il faut simplement "commenter" la version avec deux // car il est impensable de publier sur un environnement public (ou de production) des erreurs php.
Un fichier ".version" rare sur les scripts, mais indispensable au bon fonctionnement sert à identifier la version que vous possédez et permet de savoir si une mise à mise à jour est disponible. Il est conseillé de rajouter une règle dans le fichier .htaccess pour restreindre sa visibilité afin que personne ne cherche à connaître le degré de vulnérabilité de votre site.
Exemple de règle :
# PROTECTION FICHIERS UNIQUE
<Files version>
Order deny,allow
En cherchant à décrypter mon mot de passe, je m'aperçois qu'il est crypté en MD5 et non SHA1. Le cryptage MD5 est moins fiable, il est plus facile de décrypter un mot de passe faible. L'utilisation du SHA1 permet de crypter de manière plus performante un mot de passe faible. L'équipe de pluxml.org a ouvert un ticket pour ce problème et sa résolution fera certainement partie d'une évolution et d'une version ultérieure. Bien sûr, si votre mot de passe est fort, le problème ne se pose pas.
En résuméPoints forts :
- Pas de base de données sql donc pas de risque d'injection sql
- Bonne protection des dossiers et fichiers sensibles
- Possibilité de modifier tous les chemins des répertoires et fichiers
- Installation et gestion rapide et facile
- Équipe réactive sur les correctifs de sécurité
- Le mot de passe est crypté en md5 au lieux de SHA1 (mettez un mot de passe fort!)
| < Précédent | Suivant > |
|---|




