Cyberattaques alimentées par l'IA : Comment détecter, prévenir et se défendre contre les menaces intelligentes

Lire la suite
Nous utilisons l'intelligence artificielle pour les traductions de sites et, bien que nous nous efforcions d'être précis, il se peut que les traductions ne soient pas toujours exactes à 100 %. Nous vous remercions de votre compréhension.

Analyse de la vulnérabilité CVE-2023-33733 à l'aide de MetaDefender Core

par OPSWAT
Partager cet article
Les principaux chercheurs en sécurité discutent de la vulnérabilité CVE-2023-33733
Participants au programme de bourses d'OPSWAT

L'essor rapide des technologies a créé une forte demande de développeurs qualifiés. Les logiciels libres sont devenus un outil essentiel pour cette main-d'œuvre en pleine croissance. Il existe aujourd'hui des centaines de milliers de logiciels libres bien établis dans différents langages de programmation. Plus de 90 % des développeurs utilisent ces composants libres dans leurs applications propriétaires, ce qui souligne l'efficacité et la valeur ajoutée des logiciels libres. Le marché mondial des logiciels libres devrait atteindre 80,7 milliards de dollars d'ici à 2030, soit un taux de croissance annuel de 16,7 %. 

Cependant, l'adoption généralisée des logiciels libres introduit également un nouveau niveau de complexité : les vulnérabilités en matière de sécurité. Le grand nombre de composants OSS interconnectés crée une surface d'attaque plus large que les acteurs malveillants peuvent exploiter. La gestion des dépendances entre les différents paquets de logiciels libres peut s'avérer complexe, ce qui rend difficile l'identification et la correction rapide des vulnérabilités. En outre, la sécurité des logiciels libres dépend souvent de la vigilance et des contributions de la communauté des développeurs. Cela peut entraîner des retards dans la correction des vulnérabilités, en particulier pour les projets les moins populaires.  

Dans cet article, les boursiers diplômés d'OPSWAT examinent CVE-2023-33733, une faille de sécurité découverte dans la célèbre bibliothèque open-source ReportLab. Leur analyse est couplée à une attaque simulée qui utilise MetaDefender Core avec son Software Bill of Materials (SBOM) pour identifier les vulnérabilités dans les dépendances d'une application, y compris la bibliothèque vulnérable ReportLab. 

Introduction à la bibliothèque Reportlab

Illustration ReportLab

ReportLab, une bibliothèque Python puissante et open-source, permet aux utilisateurs de générer des PDF riches en fonctionnalités à partir d'un code Python. Elle offre aux développeurs une combinaison gagnante : flexibilité, facilité d'utilisation et options de personnalisation étendues pour la création de documents dynamiques. La bibliothèque offre aux développeurs un contrôle accru sur leurs PDF, permettant l'incorporation précise de texte, d'images, de tableaux et de graphiques avec une précision méticuleuse. Ce niveau de personnalisation fait de ReportLab un outil précieux pour la création de documents dynamiques tels que les factures et les rapports axés sur les données. 

CVE-2023-33733 Contexte

CVE-2023-33733 met en évidence une vulnérabilité de sécurité dans la bibliothèque ReportLab, affectant plusieurs versions de la bibliothèque ReportLab.

  • Les versions de ReportLab antérieures à la version 3.6.13 se sont révélées vulnérables à l'évasion du bac à sable, en particulier au sein de l'élément rl_safe_eval fonction. L'exploitation a été réalisée par le biais de l'attribut color des balises HTML, qui a été directement évalué en tant qu'expression Python à l'aide de la fonction eval() ce qui conduit à l'exécution de code à distance. 
  • Les analystes de NVD ont attribué un score CVSS de 7.8 HIGH à CVE-2023-33733. 
La sévérité et les mesures CVSS 3.x montrent un score de base de 7,8 pour CVE-2023-33733, catégorisé comme étant à haut risque.

Analyse de la vulnérabilité de ReportLab

Les boursiers diplômés d'OPSWAT ont effectué une analyse approfondie du flux de travail de ReportLab, identifiant la cause première de la vulnérabilité de sécurité CVE-2023-33733.

Le flux de travail de la bibliothèque ReportLab 

ReportLab permet aux développeurs de créer des PDF de manière efficace. La bibliothèque permet une intégration sans effort : importez la bibliothèque, définissez le contenu HTML et générez le PDF en une seule ligne de code à l'aide de la fonction de résultat. 

Code Python démontrant la création d'un modèle de document simple à l'aide de la bibliothèque ReportLab

Nos boursiers diplômés ont découvert un processus en 5 étapes pour créer des PDF à partir de HTML avec ReportLab. 

Diagramme illustrant le flux de processus de l'entrée HTML à la sortie PDF à l'aide de ReportLab et des fonctions associées

Dans le processus en 5 étapes de création de PDF à partir de HTML avec ReportLab, trois processus principaux se distinguent : le traitement des paragraphes, le traitement du parapheur et le processus de traitement HTML. 

Capture d'écran d'un processus de débogage mettant en évidence le traitement HTML, le processus de paragraphe et le processus de paraphraseur dans un script Python.

Comme l'illustre la figure ci-dessus, le processus de traitement HTML au sein de ReportLab utilise la fonction eval() spécifiquement sur l'attribut de couleur. Servant de point focal pour l'exécution d'un code malveillant, la fonction eval() incite les chercheurs à chercher à contrôler son entrée afin d'exploiter l'application. Cependant, cela est difficile en raison du bac à sable mis en place par l'application __rl_safe_eval__ dans ReportLab. 

Extrait de code montrant une fonction d'évaluation sûre avec des contrôles pour les méthodes autorisées et les délais d'attente
Vulnérabilité de la sécurité dans ReportLab Analysis 

ReportLab a mis en place un bac à sable appelé __rl_safe_eval__. Ce bac à sable exclut toutes les fonctions intégrées de Python et inclut plusieurs fonctions intégrées surchargées. Cette restriction permet l'exécution d'un code sûr au sein de la bibliothèque tout en empêchant l'accès aux fonctions et bibliothèques dangereuses qui pourraient être utilisées à des fins malveillantes (par exemple, l'accès au système de fichiers, la communication réseau). 

Le rl_safe_eval met en œuvre diverses conditions pour s'assurer que l'attribut invoqué est sûr avant d'utiliser la fonction intégrée de Python getattr() pour la récupérer et renvoyer le résultat. 

Exemple de code démontrant une fonction qui vérifie si les noms de méthodes sont autorisés dans un contexte de sécurité

La fonction "safe eval" vise à sécuriser l'environnement en excluant les fonctions dangereuses et en empêchant les actions malveillantes. Toutefois, si l'on trouve un moyen de contourner ses conditions et d'accéder à une fonction intégrée puissante, il est possible de l'exploiter.  

S'appuyant sur cette idée, les chercheurs en sécurité ont tenté de contourner les restrictions. Dans un premier temps, ils ont exploité l'injection d'objets à l'aide de la fonction type() pour construire un objet et redéfinir ses attributs et ses méthodes afin de contourner les contrôles de la fonction __rl_safe_eval__. En outre, comme la bibliothèque ReportLab remplace les fonctions intégrées et les rend globales dans le contexte eval, le chercheur pourrait tirer parti de cette mise en œuvre pour accéder à l'une des fonctions intégrées d'origine. Cela pourrait lui permettre de contourner l'environnement sandbox et d'exécuter un code malveillant. 

Extrait de code démontrant la redéfinition des fonctions intégrées

La charge utile est préparée comme suit : 

Exemple de code montrant l'exploitation d'une classe d'attaquant et d'un attribut global

Néanmoins, l'exécution d'une expression multiligne dans un contexte eval n'est pas possible. Cependant, une astuce de compréhension de liste peut être employée, et la charge utile pour exploiter cette CVE est la suivante : 

Structure de code complexe illustrant l'exploitation de CVE-2023-33733

ReportLab Exploitation Simulation 

Des chercheurs ont publié une preuve de concept (POC) pour CVE-2023-33733, démontrant que les applications construites avec des versions vulnérables de ReportLab pourraient être sujettes à des cyberattaques. Pour évaluer cette menace potentielle, les boursiers diplômés de l'OSPWAT ont mené une attaque simulée sur une application web. Ils ont utilisé MetaDefender Core avec des capacités SBOM pour identifier les vulnérabilités de sécurité dans les dépendances logicielles de l'application, y compris la présence de la bibliothèque ReportLab affectée. 

Simuler la vulnérabilité de la sécurité 

Pour simuler cette exploitation comme un scénario réel, les boursiers diplômés d'OPSWAT ont développé une application web en utilisant Python et la version vulnérable de la bibliothèque ReportLab. Cette application reproduit un cas d'utilisation typique : les utilisateurs peuvent télécharger un fichier HTML et le convertir en fichier PDF. 

Capture d'écran d'une interface malveillante de téléchargement de fichiers invitant à parcourir un fichier à télécharger.

Un attaquant pourrait créer un fichier HTML malveillant contenant un code conçu pour exploiter 33733. Ce code pourrait contourner le bac à sable et compromettre le serveur web en déclenchant un shell inversé par l'intermédiaire de l'option eval() fonction.  

Extrait de code montrant une attaque par injection de commande en cours

Un téléchargement réussi d'un fichier malveillant permettrait à l'attaquant de prendre le contrôle du serveur d'application en raison de la vulnérabilité de la bibliothèque ReportLab périmée. 

Téléchargement de fichiers malveillants affichant le fichier evil.html téléchargé
Terminal affichant un reverse shell actif

L'importance du SBOM et de la sécurité proactive 

Les recherches des boursiers diplômés d'OPSWAT sur CVE-2023-33733 soulignent les risques de sécurité potentiels associés aux logiciels libres. Si les logiciels libres offrent des avantages indéniables en termes d'efficacité et de rentabilité du développement, des vulnérabilités telles que celle trouvée dans ReportLab peuvent exposer les organisations à des cyberattaques. 

OPSWAT SBOM 

OPSWAT SBOM sécurise la chaîne d'approvisionnement des logiciels en fournissant un inventaire complet des composants pour le code source et les conteneurs. Il prend en charge plus de 10 langages, dont Java, JavaScript, Go, PHP et Python, plus de 5 millions de composants logiciels libres tiers et utilise une base de données de plus de 17 000 vulnérabilités provenant de la base de données nationale sur les vulnérabilités (National Vulnerability Database - NVD) et de GitHub (GHSA). 

Tableau de bord de MetaDefender Core security affichant un fichier bloqué et son analyse de vulnérabilité

OPSWAT MetaDefender Core, avec ses capacités SBOM intégrées, permet aux organisations de faire face à ces risques de manière proactive. MetaDefender Core analyse les applications logicielles et leurs dépendances, identifiant la présence de vulnérabilités connues telles que CVE-2023-33733 dans les composants listés. Cela permet aux développeurs et aux équipes de sécurité de prioriser les efforts de correction et d'atténuer les risques de sécurité avant qu'ils ne puissent être exploités. 

Tableau de bord de sécurité de MetaDefender Core montrant les résultats détaillés de l'analyse de vulnérabilité pour CVE-2023-33733

Réflexions finales

La recherche des boursiers diplômés d'OPSWAT sur la vulnérabilité de ReportLab (CVE-2023-33733) rappelle l'importance des mesures de sécurité proactives dans le cycle de développement des logiciels. En utilisant des outils comme OPSWAT MetaDefender Core, les organisations peuvent obtenir des informations cruciales sur les dépendances de leurs logiciels et identifier les vulnérabilités potentielles avant qu'elles ne soient exploitées par des attaquants. 

En outre, OPSWAT propose une suite complète de solutions de cybersécurité qui vont au-delà de l'analyse des vulnérabilités. Ces solutions assurent la détection des menaces en temps réel, la sécurité des données et la protection des points d'accès, protégeant ainsi les entreprises d'un large éventail de cybermenaces. En adoptant une approche de sécurité en couches qui inclut des outils comme MetaDefender Core, les organisations peuvent tirer parti des avantages des logiciels libres tout en minimisant les risques de sécurité qui y sont associés. 

Restez à jour avec OPSWAT!

Inscrivez-vous dès aujourd'hui pour recevoir les dernières mises à jour de l'entreprise, de l'entreprise, des histoires, des informations sur les événements, et plus encore.