Les postes de travail, les ordinateurs portables et les smartphones ne sont plus les seuls appareils électroniques compatibles avec le Web sur les lieux de travail. L’essor des appareils portables et de l’Internet des objets a ajouté davantage de gadgets qui se connectent à Internet à la maison. Cela a créé plus de commodités mais a également introduit de nouveaux problèmes.
L’un des problèmes posés par la dépendance à l’égard des appareils électroniques intelligents compatibles avec le Web est l’expansion des cybermenaces. Les nouveaux appareils ajoutés au réseau de l’entreprise deviennent de nouvelles surfaces d’attaque. Ils créent plus d’opportunités pour les acteurs de la menace d’exploiter les vulnérabilités et de lancer des attaques.
Les choses se compliquent avec des technologies plus avancées impliquées. Par exemple, les failles des solutions IoT servent de levier aux cyber-attaquants car ils obtiennent un accès approfondi aux réseaux technologiques opérationnels.
Utiliser après la gratuité : faiblesse courante et inaperçue de la sécurité de l’IoT
En ce qui concerne l’utilisation d’appareils IoT, il existe un problème de sécurité que beaucoup ignorent : la faiblesse Use After Free. Également connue sous le nom de CWE-416 ou Common Weakness Enumeration #416, cette faille de sécurité est relativement répandue, mais de nombreux utilisateurs d’appareils ignorent son existence en raison de sa nature hautement technique.
Use After Free est une faille inhérente aux logiciels écrits en C, qui est l’un des langages de programmation les plus couramment utilisés pour écrire des applications pour l’IoT et les appareils embarqués. Cela se produit lorsqu’un programme continue d’utiliser un pointeur de mémoire même s’il a déjà été libéré. Cette utilisation continue de la mémoire est problématique car elle crée une opportunité pour un acteur malveillant d’écraser l’un des pointeurs avec une adresse vers le shellcode. À son tour, cela permet l’exécution de code arbitraire.
Celles-ci se produisent généralement à l’insu d’un utilisateur d’appareil IoT. Il s’agit d’un problème de sécurité IoT qui affecte généralement les grandes industries, en particulier celles des secteurs de la santé, de l’industrie et de la fabrication d’appareils. Parfois, même l’équipe informatique peut ne pas en être consciente à moins qu’il n’y ait des manifestations évidentes, telles que le plantage d’un programme et l’exécution nuisible de code arbitraire. Par conséquent, il est indispensable de connaître et de comprendre le problème afin d’être attentif à son éventuelle émergence et de le résoudre avant qu’il ne cause de graves problèmes.
Conséquences indésirables
Si la mémoire allouée est libérée et référencée, un comportement système indéfini est créé. Cela se produit généralement en raison de conditions d’erreur au niveau de l’application. Cela peut également arriver parce que le système ne peut pas déterminer correctement quels éléments de programme sont responsables de la libération de mémoire. Les modules d’un programme peuvent ne pas être correctement coordonnés ou configurés.
L’une des conséquences néfastes du problème Use After Free est le plantage ou le gel d’un programme. Un programme peut planter parce qu’il essaie de fusionner des données non valides avec des blocs de mémoire contenant des données précédemment libérées. Ce sont des éléments incompatibles qu’un système d’exploitation ne peut concilier, créant des anomalies de fonctionnement.
Un autre résultat indésirable de l’erreur Use After Free est la corruption des données. Une fois la mémoire libérée, elle peut être allouée à un autre pointeur, ce qui signifie que le pointeur d’origine vers la mémoire libérée est réutilisé. Cette réutilisation pointe vers un nouvel emplacement, ce qui n’est pas le bon fonctionnement de l’allocation de mémoire. Cette allocation erronée détruit la mémoire valablement utilisée et provoque un comportement indéfini dans le processus, et corrompt les données.
De plus, l’erreur peut conduire à l’émergence d’une condition d’écriture où où, dans laquelle des valeurs arbitraires peuvent être insérées dans les espaces mémoire libérés. Si cela se produit, plusieurs pointeurs de fonction peuvent être créés dans les données de tas. Un attaquant peut alors exécuter du code arbitraire s’il parvient à écraser un pointeur de fonction avec une adresse vers le shellcode dans les données du tas.
Cas signalés d’utilisation après la faiblesse de la sécurité gratuite
CWE-416 n’est pas seulement une faiblesse théorique identifiée par des analystes de sécurité « trop réfléchis ». Il y a eu un certain nombre de cas signalés de ce qui se passe. Ce n’était pas seulement rencontré par les petites organisations avec des services informatiques et des équipes de cybersécurité aux ressources limitées. Des organisations de premier plan en ont fait l’expérience.
En novembre 2022, le National Institute of Standards and Technology des États-Unis a signalé CVE-2022-37332, une vulnérabilité Use After Free dans le moteur JavaScript du lecteur PDF Foxit version 12.0.1.124300. Cette faille de sécurité a permis aux acteurs de la menace de générer un document PDF malveillant pouvant déclencher la réutilisation de la mémoire précédemment libérée, ce qui peut conduire à l’exécution d’un code nuisible.
Un problème similaire a également été découvert dans le noyau distant Windows Server VPN en mai 2022. Cela affectait la plupart des versions des systèmes d’exploitation Windows Server et Desktop pas plus récents que Windows Server 2008 et Windows 7. Cela permettait à de mauvais acteurs de mener des attaques DoS et également de lancer exécution de code à distance sur un serveur cible.
Même le système d’exploitation de l’iPhone s’est également révélé avoir cette faiblesse de sécurité. En mars 2022, lors du lancement d’iOS 15.4, des chercheurs en sécurité ont révélé que la dernière version iOS d’Apple (à l’époque) était exposée à la possibilité d’exécution de code arbitraire via les privilèges du noyau. Cette vulnérabilité affectait principalement les pilotes GPU.
De plus, WordPress a publié en janvier 2022 un correctif pour une vulnérabilité « SQL Injection via WP_Query », qui est liée au problème de sécurité Use After Free. WordPress a qualifié ce problème de sécurité de très grave, car il a permis à l’injection SQL de se produire via les thèmes et plugins WordPress.
Résoudre la faiblesse
La solution conventionnelle à CWE-416 est le correctif de sécurité. Les créateurs des logiciels concernés publient des mises à jour de logiciels ou de micrologiciels pour combler les failles de sécurité et garantir la sécurité des processus. Cette méthode de résolution du problème peut ne pas être suffisamment opportune pour empêcher les cybercriminels agressifs d’exploiter les vulnérabilités dès qu’ils les repèrent.
En tant que tel, il est conseillé d’utiliser des solutions de sécurité qui peuvent effectuer des analyses de sécurité similaires à ce que font les solutions RASP (Runtime Application Self-Protection). Une méthode déterministe de
il est conseillé d’empêcher la manipulation de la mémoire et du code, car cela fournit une défense globale contre un large éventail de vulnérabilités logicielles.
Une solution intégrée dans le code d’un programme ou le micrologiciel d’un appareil IoT fonctionne considérablement mieux et plus rapidement pour faire face aux menaces liées à la mémoire. Il analyse le logiciel à la recherche d’actions anormales difficiles à repérer qui ne deviennent apparentes que lorsqu’elles sont déjà en train de causer des problèmes. Il peut contenir un problème même lorsqu’un correctif de sécurité n’est pas encore disponible.
En conclusion
Use After Free est l’une des deux principales menaces liées à l’allocation de mémoire affectant le code C. L’autre s’appelle Double Free (CWE-415), qui se produit en raison des utilisations multiples inappropriées du free()
fonction. Les deux ont le potentiel de causer de graves problèmes de sécurité pour les organisations. Ce qui est rassurant de savoir, c’est qu’ils peuvent être évités avec les bonnes solutions et stratégies de sécurité.