Depuis plusieurs semaines, l'éditeur Ivanti enchaine les soucis de sécurité. Après une première faille corrigée début janvier dans son EPMune autre dans ses solutions Connect Secure et Policy Secure (son VPN Pulse), on apprenait il y a quelques jours qu'une dernière mise à jour qui corrigeait de précédentes failles dans les produits du fournisseur ouvrait la porte à l'exploitation d'autres vulnérabilités. « Nous avons récemment assisté à une série d'attaques sophistiquées visant les appliances Ivanti Pulse Secure VPN [...] Le cybergang UNC5221 bénéficiant d'un soutien de niveau étatique a exploité ces vulnérabilités jusqu'au 3 décembre 2023, mais elles sont maintenant exploitées en masse par plusieurs groupes », prévient Eclypsium qui s'est penché sur la sécurité des produits d'Ivanti, utilisés par de grands groupes français et notamment des banques. 

Dans le cadre de sa recherche, Eclysium a fait état d'une découverte pour le moins étonnante : « Dans le cadre de notre rétro-ingénierie du micrologiciel fonctionnant sur ces terminaux Ivanti, nous avons découvert une pléthore de problèmes qui n'avaient pas été signalés auparavant », poursuit le groupe. Parmi eux, la présence au coeur de Pulse Secure d'une version obsolète de la distro Linux CentOS sortie en 2013 (6.4) et plus mise à jour depuis 2020. En poussant son analyse, Eclysium a aussi trouvé qu'Ivanti utilisait d'autres packages périmés : noyau Linux 2.6.32 (fin de vie en février 2016), OpenSSL 1.0.2n (décembre 2017), Python 2.6.6 (août 2010), Perl v5.6.1 construit pour i386-linux (avril 2001) et Bash 4.1.2. Sans oublier un certain nombre de bibliothèques obsolètes avec des CVE et des exploits connus. 

La supply chain numérique comme point de faiblesse

« Ces anciens logiciels sont des composants du produit Ivanti Connect Secure », a déclaré Eclypsium. « C'est un parfait exemple de l'importance de la visibilité dans les chaînes d'approvisionnement numériques et de la raison pour laquelle les entreprises clientes exigent de plus en plus des SBOM de la part de leurs fournisseurs ». Un examen plus approfondi du firmware d'Ivanti a révélé 1 216 problèmes dans 76 scripts shell, 5 218 vulnérabilités dans 5 392 fichiers Python, en plus de 133 certificats périmés. La logique de leur script présente également une énorme faille de sécurité selon Eclypsium : elle exclut plus d'une douzaine de répertoires de l'analyse, ce qui signifie qu'un attaquant pourrait théoriquement laisser ses implants C2 persistants dans l'un de ces chemins et que le terminal passerait quand même le contrôle d'intégrité.

Selon Eclypsium, un pirate pourrait réaliser une attaque persistante à des fins d'exploitation, mettre en place son framework de commande et de contrôle, ses outils, ses données exfiltrées, etc. dans une structure de partition que l'administrateur ne voit absolument pas. « Étant donné qu'Ivanti interdit à ses clients d'effectuer toute forme d'analyse forensique en dehors de ses outils officiels, leur seul recours est de faire confiance à l'outil », avance le groupe qui a établi un scénario d'attaque avancé :

- Un client utilise un équipementl Ivanti qui est soudainement victime d'une faille zero day et son terminal est victime d'exploit ;
- L'attaquant obtient l'accès et place son outil secondaire dans la partition /data avec une grande quantité de données mises en scène pour l'exfiltration ;
- Le client corrige ses systèmes avant que l'attaquant ne puisse exfiltrer quoi que ce soit et exécute l'outil d'intégrité - tout semble bon ;
- L'attaquant trouve une solution de contournement au correctif ou à l'atténuation d'origine, exploite à nouveau le dispositif et peut finir d'exfiltrer les données qu'il a mises en scène précédemment.

Des absences de contrôles

« Nous ne pouvons pas compter sur les vendeurs pour fournir du matériel et des logiciels parfaitement sécurisés. Il doit exister un système de contrôle et d'équilibre qui permette aux clients et aux tiers de valider l'intégrité et la sécurité des produits », prévient Eclypsium. « Plus ce processus est ouvert, mieux nous pouvons valider la chaîne d'approvisionnement numérique, à savoir le matériel, les microprogrammes et les composants logiciels utilisés dans leurs produits. Lorsque les fournisseurs ne partagent pas leurs informations et/ou utilisent un système fermé, la validation devient difficile, tout comme la visibilité. Les attaquants ne manqueront pas, comme on l'a vu récemment, de tirer parti de cette situation et d'exploiter l'absence de contrôles et de visibilité sur le système. En attendant, il incombe aux clients d'atténuer ces défauts logiciels : identifier ces vulnérabilités dans nos systèmes, détecter les IoC du mieux que nous pouvons et vérifier l'intégrité des microprogrammes et des logiciels ».

Contacté pour des précisions sur les résultats de l'enquête menée par Eclypsium et les conséquences pour ses clients, Ivanti n'a pour l'heure pas répondu à nos questions.

MAJ du 20/02/2024 à 9h46. Ivanti a apporté les éléments de réponse suivants suite à nos questions : « Le produit Ivanti Connect Secure n'est pas vulnérable en raison d'anciennes versions de code open source. Ivanti rétroporte les correctifs de sécurité lorsqu'ils sont applicables afin d'assurer la protection de la version 9.x du produit. Le rétroportage des correctifs de sécurité ne modifie pas la version du code open source, mais elle fournit une protection contre les vulnérabilités connues. Ce processus permet de s'assurer que les solutions que nous fournissons à nos clients répondent à toutes les normes de l'industrie et que nos solutions ne comportent pas de vulnérabilités connues. Le matériel de la version 9.x ne dispose pas d'un processeur suffisant pour faire tourner un noyau Linux plus récent et, par conséquent, les limitations du noyau imposent l'utilisation de ce code open source plus ancien. La nouvelle version 22.x d'Ivanti Connect Secure est construite sur un nouveau noyau Linux qui nécessite un processeur plus puissant et nous avons donc introduit une nouvelle plateforme, l'ISA, qui ne contient pas les anciennes versions du code open source. Tout le code présent dans les produits Ivanti, y compris le code open source 9.x plus ancien, est clairement décrit dans nos attributions et SBOM, qui sont disponibles dans la documentation du produit disponible sur Ivanti.com ».