Pentest d'une instance Yunohost #2 - Le fonctionnement

PUBLISHED ON JUL 12, 2016 — SECURITY, SYSADMIN

Une fois que tout est installé, il peut être utile de comprendre le fonctionnement interne de Yunohost et c’est ce que nous allons tenter de faire dans ce billet.

Je ne fais pas parti de l’équipe Yunohost donc il n’est pas impossible que je fasse des erreurs, n’hésitez pas à me rectifier.

LDAP

Yunohost repose beaucoup sur un système d’annuaire type LDAP. Grâce à cela, toutes les applications peuvent profiter de la base et l’utilisation des services par les utilisateurs est rendu plus simple.

Comme tous les annuaires, c’est une cible de choix pour un attaquant car il regroupe des informations sur tous les services, utilisateurs, etc …

C’est notamment grâce à LDAP que le SSO fonctionne.

SSO

Le SSO ou Single Sign-On est un mécanisme qui permet à un utilisateur de ne s’authentifier qu’une seule fois pour accéder à tous ses services. Très efficace et très simple mais particulièrement sensible car, si un attaquant qui parvient à récupérer les identifiants d’un utilisateur, il aura accès à tous ses comptes. Le SSO de Yunohost est géré par un outil développé en interne (qui rentre donc dans le cadre du pentest) : SSOwat.

Moulinette

La moulinette est un framework qui permet de créer une API web ainsi qu’une API en ligne de commande à partir d’un même code Python et d’un schéma en yaml.

Cette description provient du site du projet Yunohost et je n’aurais pas mieux décrit cet outil disponible sur Github.

Je ne pense pas auditer cette partie là parce qu’il ne rentre, ni dans le cadre du pentest Black Box, ni dans celui du pentest Grey Box.

L’architecture

D’après la documentation, j’en déduis cette architecture : OpenLDAP est la colonne vertébrale du système, SSOwat est l’interface entre l’annuaire LDAP et les utilisateurs, la Moulinette est l’interface permettant à l’utilisateur de configurer Yunohost.

La cible principale lors des audits sera l’outil SSOwat car il est l’interface entre l’annuaire LDAP et le monde extérieur.