e-Xpert Solutions Lausanne
Auteur : Wojciech Myszkorowski
Date de publication : 9 juillet 2020 - Dernière mise à jour : 9 juillet 2020
Dans le monde informatique actuel, les entreprises utilisent une multitude de produits dérivés de différents fabricants. Au quotidien, ces produits sont exploités par des professionnels et des personnes malveillantes, afin d’y découvrir des vulnérabilités permettant de gagner des accès non autorisés. Ces vulnérabilités, possédant des scores de criticité, doivent souvent être corrigées au plus vite afin de garder les ressources protégées intactes. L’une des plus récentes concerne le fabriquant Palo alto utilisant le protocole SAML.
SAML est un raccourci pour Security assertion markup langage. Il s’agit d’un protocole lié à la sécurité permettant de faire de l’authentification sur le web. Souvent accompagné du mot single sign-on (SSO), il est question d’utiliser le SAML pour faire de la fédération et permettre à l’utilisateur de naviguer sur plusieurs sites web en ne procédant qu’une seule fois à l’authentification. Le SAML d’aujourd’hui est en version 2.0 basant sa nomenclature sur le langage XML. Dans l’image ci-dessous, nous retrouvons le fonctionnement de ce qu’il se passe lorsque l’utilisateur tente d’accéder à un site.
Voici le déroulement du processus :
Dans la sécurité informatique, la notion d’intégrité est importante, car elle permet de prouver qu’une information n’a pas été modifiée. Dans le protocole SAML, nous retrouvons cette même notion. La signature protège l’information transmise entre le fournisseur d’identité et celui de service.
La signature de la requête ou de la réponse se fait à l’aide d’un certificat contenant une clé privée. Ce processus s’appelle le principe de la signature asymétrique.
Si nous analysons une requête standard SAML avec l’assertion signé, nous verrons des éléments sur la signature apparaître dans le message XML. Nous trouverons dans la méthode de signature, des informations sur l’algorithme utilisé pour la fabrication.
Dans le cas de Palo alto, un attaquant contourne l’authentification qui utilise le SAML dans le PAN -OS du Palo alto. L’attaquant qui réussirait à mettre en place cette attaque pourrait alors accéder à des ressources protégées comme par exemple le VPN de Palo alto. Cette attaque peut prendre place uniquement lorsqu’une authentification utilise le protocole SAML et que la coche qui permet de vérifier la validité du certificat est décochée. Les ressources pouvant être exploitées ne sont que celles où le SSO du Palo alto est configuré (VPN, GlobalProtect Portal, Captive Portal,etc..).
Les versions impactées sont les suivantes :
L’attaquant doit également pouvoir directement atteindre le serveur vulnérable en question. Cette vulnérabilité a obtenu un score de 10 sur 10, la rendant ainsi critique. Une Common Vulnerability and Exposures (CVE) est calculée sur la base de plusieurs paramètres assez complexes, comme par exemple le « base score », l’impact et l’exploitabilité. Mis ensemble, ces trois derniers facteurs forment une note plaçant la vulnérabilité dans une certaine catégorie (faible, moyenne, importante, critique).
Lors de la mise en place de l’authentification SAML, il existe plusieurs produits permettant une analyse précise des échanges faits par les différentes entités. Par exemple, une manière facile est d’installer SAML- tracer (un plugin de google chrome) qui permet d’attraper les requêtes SAML faites dans le navigateur. Voici un exemple capturé à l’aide du SAML-tracer
Un autre moyen est d’utiliser un proxy local comme Fiddler ou Burp. Ceux-ci permettent de capturer autant les requêtes d’un navigateur, que celles des applications comme Citrix Workspace pouvant aussi faire du SAML.
Dans la photo ci-dessus, nous relevons quelques informations qui concernent la requête d’authentification qui a été signée. Il y a également des informations sur le processus permettant d’aboutir à la signature. Dans le protocole SAML, nous pouvons signer la requête et la réponse.
Dans la CVE-2020-2021, le problème repose sur la réponse qui va être signée avec les certificats importés sur la partie du fournisseur d’identité mais qui ne sont pas vérifiés comme étant des certificats valables.
En utilisant Fiddler pour tenter d’analyser la réponse., il est nécessaire de décoder SAMLResponse= afin d’avoir la constitution en XML de la requête. A savoir, il est possible de chiffrer une réponse afin d’apporter encore plus de sécurité et cela avec certains produits tels que F5.
La manière dont est validée la signature est assez directe. Les éléments nécessaires sont inscrits dans la réponse SAML avec les informations mises dans les balises suivantes :
L’intégrité du message et donc un string qui est vérifié à l’aide de la clef privé. Cette valeur se trouve dans la balise suivante :
Lorsque nous mettons en place de la fédération avec le protocole SAML, nous conseillons vivement d’utiliser des signatures basées sur des PKI interne. Il s’agit de certificats valides, à l’intérieur d’une entreprise, qui permettent d’ajouter une sécurité valide et non réfutable lors du message chiffré ou signé. Avec les outils mentionnés ci-dessus, Il est possible de vérifier que la signature est correctement appliquée. Nous recommandons aussi de chiffrer les assertions et réponses pour rajouter une couche supplémentaire de sécurité afin de laisser le moins d’informations possibles à une personne qui tenterait d’intercepter le traffic.
Events
Archives