Éditeur de logiciels libres au service de votre dématérialisation
Télécharger
Maarch Courrier
Télécharger
Maarch RM
Visuel sécurité

Correctifs faille vulnérabilité

Cette publication fait suite à la détection et au signalement de vulnérabilités dans nos logiciels par une entreprise spécialisée dans la sécurité des systèmes et des données.
Voici les correctifs de sécurité corrigeant des vulnérabilités signalées dans l’application Maarch.

Ces vulnérabilités pourraient permettre à un attaquant malveillant d’entrer dans l’application ou d’en détourner son fonctionnement.
Dès connaissance, une équipe d’ingénieurs de Maarch a rapidement réagi, comme elle le fait toujours quand un problème est soulevé par la communauté, afin d’apporter les correctifs nécessaires au logiciel ainsi qu’aux procédures.
4 correctifs ont été développés.

Nous vous recommandons d’installer ces correctifs rapidement en suivant la procédure qui vous est décrite ci-dessous.
L’ensemble de l’équipe Maarch se tient à disposition des clients pour leur apporter toute l’aide qui leur sera utile.

Les failles de sécurité mentionnées ne sont critiques que dans le périmètre de publication de l’application : la majorité des clients Maarch n’ouvrent pas leur application de gestion électronique de documents sur internet. Le risque d’intrusion de personnes malveillantes et possédant les connaissance techniques requises  est ainsi limité. Ensuite, nombre de ces failles ne sont pas liées à la qualité du code mais à la sécurisation de l’environnement et peuvent être corrigées par une gestion rigoureuse des droits d’accès. La 50aine de failles évoquées concernent en fait 4 types d’attaques possibles. Les 4 correctifs correspondants suffisent à toutes les enrailler.

Fichiers impactés / corrections pour Maarch 1.4 et Trunk :

 

 

Mise au point Open Source
Maarch est une application open source, le fait d’avoir un code libre et ouvert a certainement largement facilité la découverte de ces vulnérabilités. (Téléchargement libre de l’application /Tout le monde a accès au code source et à la structure de la base de données). Nous restons partisans de la transparence et les vulnérabilités décelées aujourd’hui sont d’ores et déjà corrigées alors qu’elles sont peut-être présentes dans d’autres solutions moins ouvertes que la nôtre.
Le principe de contribution par la communauté est essentiel pour nous et nous sommes toujours ravis d’avoir des retours qui nous permettent de faire évoluer nos applications.

Procédure d’installation des correctifs :
* Avant toute mise à jour, pensez à effectuer une sauvegarde des fichiers à remplacer.

Ce document explique pour chaque faille avérée en quoi elle consiste, comment elle pourrait être exploitée par des personnes malveillantes, dans quelle mesure nos logiciels sont vulnérables et surtout quelle réponse nous avons apporté.

Les correctifs évoqués dans ce document sont d’ores-et-déjà disponibles sur nos serveurs de versions pour la branche 1.4 et le trunk de Maarch. Pour les applications installées à partir d’un téléchargement, un patch correctif complet est disponible sur demande.

 

1.     Injection SQL (SQLI)

De quoi s’agit-il ?

Cette faille de sécurité concerne les applications qui utilisent une base de données relationnelle pour conserver les données persistantes. Elle consiste à injecter du code en langage SQL via l’interface homme-machine pour détourner le fonctionnement du logiciel lorsque les requêtes vers la base de données seront exécutées.

La situation

Maarch utilise une base de données relationnelle pour assurer la persistance des informations (PostgreSql, Oracle, Microsoft SQL Server) et est donc potentiellement vulnérable à ce type d’attaques.

Le logiciel Maarch est déjà dans sa version actuelle totalement protégé contre les injections dans la couche de persistance, c’est-à-dire qu’il est impossible d’écrire du code SQL malveillant dans la base de données.

Par contre, il subsistait encore des failles dans le traitement des requêtes qui effectuent des lectures de données dans la base. C’est le cas sur la page d’authentification de l’utilisateur.

La solution

Nous avons apporté un correctif de sécurité qui empêche l’injection dans la page de connexion des utilisateurs.

Ce correctif est compatible avec les versions 1.2 et supérieures des logiciels Maarch.

Pour l’appliquer, il faut mettre à jour le fichier suivant : core/class/class_security.php

 

2.     Cross Site Scripting (XSS)

De quoi s’agit-il ?

C’est un type de faille de sécurité des sites web permettant d’injecter du contenu script exécutable dans une page pour déclencher des actions sur les navigateurs web visitant la page ou sur le serveur.

On distingue le XSS réfléchi, qui impacte uniquement la page résultante de la requête envoyée, et le XSS permanent, dans lequel les données sont stockées sur le serveur et permettent au hacker de réutiliser le code plusieurs fois.

La situation

Maarch est une application qui utilise les technologies du web pour son interface homme-machine et à ce titre est donc potentiellement vulnérable à ce type d’attaques.

La solution

Nous avons apporté un correctif de sécurité qui empêche l’injection via l’IHM de code exécutable côté client comme côté serveur.

Ce correctif détecte et supprime les balises HTML script et les balises d’ouverture de code PHP dans tous les arguments de requête client/serveur en http.

Ce correctif est compatible avec les versions 1.3 et supérieures des logiciels Maarch.

Pour l’appliquer, il faut mettre à jour le fichier suivant: apps/maarch_entreprise/index.php

 

 

3.     Téléchargement de fichier distant (RFI ou Remote File Inclusion)

De quoi s’agit-il ?

Cette faille concerne les applications qui permettent le téléchargement de fichiers vers le serveur applicatif. Elle consiste à télécharger un fichier qui contient du code qui est ensuite exécuté sur le serveur.

La situation

Maarch est une application de GED et d’archivage électronique qui permet le téléchargement de fichiers sur le serveur. Elle est donc naturellement vulnérable à ce type d’attaques.

L’architecture de Maarch permet au serveur web Apache d’accéder à tous les fichiers de l’application. Par extension, les clients web tels que les navigateurs peuvent effectuer des requêtes vers ces fichiers qu’ils soient des scripts PHP ou des ressource.

La sécurité d’une plateforme applicative réside autant dans la configuration et le paramétrage du logiciel que dans la gestion rigoureuse des droits d’accès à ses composants sur le système, c’est-à-dire les couches d’infrastructure matérielles et logicielles qui ne sont pas livrées par l’éditeur: Dans notre cas il s’agit des utilisateurs de l’OS hôte, du serveur Apache, de la base de données, etc.

Le rôle de la société Maarch dans ce contexte est, outre de livrer un code sécurisé, de fournir à ses clients et à la communauté les informations adéquates qui leur permettent d’assurer la sécurité de leurs informations.

La solution

Il faut configurer le fonctionnement du serveur web Apache afin de restreindre l’accès aux composants de l’application nécessaires à son fonctionnement en mode client/serveur.

Maarch travaille actuellement sur deux axes :

  • vous fournir une procédure et/ou des fichiers de configuration du serveur Apache afin de limiter la vulnérabilité de ses logiciels aux attaques de type RFI
  • permettre dans l’application de déplacer le répertoire temporaire de stockage en dehors du répertoire du logiciel comme c’est déjà le cas pour le stockage permanent (les docservers).

 

4.     Inclusion de fichiers locaux (LFI ou Local File Inclusion)

De quoi s’agit-il ?

Cette faille de sécurité permet à un utilisateur d’inclure des fichiers locaux (du serveur web) à partir d’une URL. Ces fichiers peuvent très bien être en dehors du répertoire racine du site web. Des fichiers sensibles comme ceux contenant des données personnelles et notamment des mots de passe peuvent donc être inclus et récupérés. Cette faille permet également d’exécuter du code PHP sur le serveur.

La situation

Maarch utilise une syntaxe qui comporte les noms et localisation des pages à exécuter comme dans l’exemple suivant:

http://server/apps/maarch_entreprise/index.php?dir=indexing_searching&page=search_adv

L’argument de requête « dir » indique un répertoire de l’application, « module » le nom d’un module, « admin » un panneau d’administration. L’argument « page » indique le nom du script à exécuter, sans l’extension « php » qui est implicite. L’application est donc depuis sa création protégée contre les inclusions locales, à l’exception de celles de scripts PHP puisque ce fonctionnement était souhaité.

Le problème réside dans le fait que l’argument « page » permettait d’indiquer des chemins relatifs comportant des double-points et des barres obliques et donc d’inclure dans le logiciel des fichiers ou scripts PHP du serveur normalement en dehors de l’application.

La solution

Nous avons apporté un correctif de sécurité qui empêche l’inclusion de fichiers locaux en dehors du périmètre de l’application, et même en dehors du périmètre défini par l’argument « module », « dir » ou « admin ».

Ce correctif est compatible avec toutes les versions des logiciels Maarch.

Pour l’appliquer, il faut mettre à jour le fichier suivant: core/class/class_core_tools.php