Comment analyser votre environnement à la recherche de versions vulnérables de Curl

Comment analyser votre environnement à la recherche de versions vulnérables de Curl

Comment analyser votre environnement à la recherche de versions vulnérables de Curl PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Les équipes de sécurité n'ont pas besoin de passer en mode crise pour faire face aux problèmes. vulnérabilités récemment corrigées dans l'outil de ligne de commande curl et la bibliothèque libcurl, mais cela ne signifie pas qu'ils n'ont pas à se soucier de l'identification et de la correction des systèmes concernés. Si les systèmes ne sont pas immédiatement exploitables, les équipes de sécurité disposent d’un certain temps pour effectuer ces mises à jour.

Cette astuce technique regroupe des conseils sur ce que les équipes de sécurité doivent faire pour garantir qu'elles ne courent aucun risque.

Outil réseau fondamental pour les systèmes Unix et Linux, cURL est utilisé dans les lignes de commande et les scripts pour transférer des données. Sa prévalence est due au fait qu'il est utilisé à la fois comme utilitaire autonome (curl) et comme bibliothèque incluse dans de nombreux types d'applications différents (libcurl). La bibliothèque libcurl, qui permet aux développeurs d'accéder aux API curl à partir de leur propre code, peut être introduite directement dans le code, utilisée comme dépendance, utilisée dans le cadre d'un bundle de système d'exploitation, incluse dans un conteneur Docker ou installée sur un Nœud de cluster Kubernetes.

Qu'est-ce que CVE-2023-38545 ?

La vulnérabilité de haute gravité affecte curl et libcurl versions 7.69.0 à 8.3.0, et la vulnérabilité de faible gravité affecte les versions 7.9.1 à 8.3.0 de libcurl. Cependant, les vulnérabilités ne peuvent pas être exploitées dans des conditions par défaut. Un attaquant essayant de déclencher la vulnérabilité devrait pointer curl vers un serveur malveillant sous le contrôle de l'attaquant, s'assurer que curl utilise un proxy SOCKS5 en mode proxy-résolveur, configurer curl pour qu'il suive automatiquement les redirections et définir la taille du tampon sur une taille plus petite. taille.

Selon Yaïr Mizrahi, chercheur principal en sécurité chez JFrog, la bibliothèque libcurl est vulnérable uniquement si les variables d'environnement suivantes sont définies : CURLOPT_PROXYTYPE  définir pour taper CURLPROXY_SOCKS5_HOSTNAME; ou CURLOPT_PROXY or CURLOPT_PRE_PROXY  réglé sur le schéma chaussettes5h://. La bibliothèque est également vulnérable si l'une des variables d'environnement proxy est définie pour utiliser le chaussettes5h:// schème. L'outil de ligne de commande n'est vulnérable que s'il est exécuté avec le -socks5-nom d'hôte drapeau, ou avec -Procuration (-x) ou –préproxy configuré pour utiliser le schéma chaussettes5h://. Il est également vulnérable si curl est exécuté avec les variables d'environnement affectées.

« L’ensemble des conditions préalables nécessaires pour qu’une machine soit vulnérable (voir section précédente) est plus restrictif qu’on ne le pensait initialement. Par conséquent, nous pensons que la grande majorité des utilisateurs de curl ne seront pas affectés par cette vulnérabilité », a écrit Mizrahi dans l'analyse.

Analyser l'environnement à la recherche de systèmes vulnérables

La première chose que les organisations doivent faire est d'évaluer leurs environnements pour identifier tous les systèmes utilisant curl et libcurl afin d'évaluer si ces conditions préalables existent. Les organisations doivent inventorier leurs systèmes et évaluer leurs processus de livraison de logiciels à l'aide d'outils d'analyse de la composition logicielle pour le code, d'analyser les conteneurs et d'utilitaires de gestion de la sécurité des applications, note Alex Ilgayev, responsable de la recherche en sécurité chez Cycode. Même si la vulnérabilité n'affecte pas chaque implémentation de curl, il serait plus facile d'identifier les systèmes concernés si l'équipe commençait par une liste d'emplacements potentiels à rechercher.

Les commandes suivantes identifient les versions de curl installées :

Linux/MacOS :

find / -name curl 2>/dev/null -exec echo "Trouvé : {}" ; -exec {} --version ;

Windows:

Get-ChildItem -Path C: -Recurse -ErrorAction SilentlyContinue -Filter curl.exe | ForEach-Object { Write-Host "Trouvé : $($_.FullName)" ; & $_.FullName --version }

GitHub a un requête à exécuter dans Defender pour Endpoint pour identifier tous les appareils de l'environnement sur lesquels curl est installé ou qui utilisent curl. Qualys a publié ses règles pour l'utilisation de sa plateforme.

Les organisations utilisant des conteneurs Docker ou d'autres technologies de conteneurs doivent également analyser les images à la recherche de versions vulnérables. Un nombre important de reconstructions sont attendus, en particulier dans les images Docker et les entités similaires qui incorporent des copies liburl. Docker s'est ressaisi une liste d'instructions sur l’évaluation de toutes les images.

Pour rechercher des référentiels existants :

activation du dépôt Docker Scout --org /scout-démo

Pour analyser les images de conteneurs locaux :

politique de Docker Scout [IMAGE] --org [ORG]

Ce problème souligne l'importance de garder une trace méticuleuse de tous les logiciels open source utilisés dans une organisation, selon Henrik Plate, chercheur en sécurité chez Endor Labs.

"Connaître toutes les utilisations de curl et libcurl est une condition préalable pour évaluer le risque réel et prendre des mesures correctives, qu'il s'agisse de corriger curl, de restreindre l'accès aux systèmes affectés à partir de réseaux non fiables ou de mettre en œuvre d'autres contre-mesures", a déclaré Plate.

Si l'application est livrée avec une nomenclature logicielle, ce serait un bon point de départ pour rechercher des instances de curl, ajoute John Gallagher, vice-président de Viakoo Labs.

Ce n’est pas parce que les failles ne sont pas exploitables que les mises à jour ne sont pas nécessaires. Des correctifs sont disponibles directement pour curl et libcurl, et de nombreux systèmes d'exploitation (Debian, Ubuntu, Red Hat, etc.) ont également proposé des versions corrigées. Gardez un œil sur les mises à jour de sécurité d'autres applications, car libcurl est une bibliothèque utilisée par de nombreux systèmes d'exploitation et applications.

Une solution de contournement jusqu'à ce que les mises à jour puissent être déployées consiste à forcer curl à utiliser la résolution de nom d'hôte local lors de la connexion à un proxy SOCKS5, selon Mizrahi de JFrog. Cette syntaxe utilise le schéma chaussettes5 et non chaussettes5h : curl -x chaussettes5://someproxy.com. Dans la bibliothèque, remplacez la variable d'environnement CURLPROXY_SOCKS5_HOSTNAME comprenant CURLPROXY_SOCKS5.

Selon Benjamin Marr, ingénieur en sécurité chez Intrus, les équipes de sécurité devraient surveiller les indicateurs curl pour détecter les chaînes trop grandes, car cela indiquerait que le système a été compromis. Les drapeaux sont –socks5-nom d'hôteou -Procuration or –préproxy configuré pour utiliser le schéma chaussettes5h://.

Horodatage:

Plus de Lecture sombre