vendredi, 9 décembre 2022

11 anciens bogues logiciels qui ont mis trop de temps à être éliminés

Crédit : Dreamstime

En 2021, une vulnérabilité a été révélée dans un système qui était à la base de l’informatique moderne. Un attaquant pourrait forcer le système à exécuter du code arbitraire. Étonnamment, le code vulnérable avait presque 54 ans – et il n’y avait pas de correctif disponible, et aucune attente qu’il en soit un.

Heureusement, c’est parce que le système en question était de Marvin Minsky Mise en œuvre en 1967 d’une machine de Turing universelle, qui, malgré son importance théorique capitale pour le domaine de l’informatique, n’avait jamais été intégrée dans un ordinateur du monde réel.

Mais dans la décennie qui a suivi la conception de Minsky, les premières versions d’Unix et de DOS ont été utilisées, et leurs descendants sont toujours avec nous aujourd’hui au 21ème siècle. Certains de ces systèmes ont des bogues cachés sous la surface depuis des années, voire des décennies.

Voici 11 bogues remarquables et vénérables qui ont été découverts ces dernières années.

Vulnérabilité de la bande de base du module de contrôle télématique Nissan

Âge : 7 ans
Date d’introduction : 2010
Date fixée : 2017

En 2011, le chercheur en sécurité Ralf-Philipp Weinmann a découvert une faille récemment introduite dans processeur de bande de base utilisé dans les téléphones portables qui pourrait éventuellement être utilisé lors d’une attaque : les pirates pourraient mettre en place un faux tour de téléphonie cellulaire, inciter le téléphone à s’y connecter, puis détourner sa connexion réseau. La faille a été corrigée relativement rapidement par les fabricants de téléphones portables, puis tout aussi rapidement oubliée.

Il y avait un problème : les téléphones portables n’étaient pas les seuls appareils à utiliser ces puces.

« Essentiellement, le même chipset de bande de base cellulaire se trouvait dans l’unité télématique de la Nissan Leaf et de divers autres véhicules », déclare Jesse Michael, chercheur principal en cybersécurité chez la société de sécurité Eclypsium. Plusieurs chercheurs (qui rejoindront ensuite Eclypsium) ont découvert la vulnérabilité en expérimenter avec une voiture récupérée dans une casse .

« Il s’agissait d’une vulnérabilité qui était publiquement connue dans un segment de marché différent depuis près de sept ans avant que nous ne la découvrions dans le segment automobile », a déclaré Michael.

« Étant donné qu’il s’agissait d’un segment de marché très différent qui avait sa propre chaîne d’approvisionnement complexe, personne ne s’est rendu compte que les voitures étaient également vulnérables au même exploit que les téléphones. » C’est un véritable récit édifiant sur le cloisonnement de l’industrie.

La vulnérabilité Python découverte pour la première fois il y a 15 ans est toujours présente

Âge : 15 ans
Date d’introduction : 2007
Date fixée : 2007

La société de cybersécurité Trellix a découvert que CVE-2007-4559, une vulnérabilité affectant le module tarfile de Python identifiée pour la première fois en 2007, continue d’affecter des centaines de milliers de référentiels.

« En enquêtant sur une vulnérabilité non liée, Trellix Advanced Research Center est tombé sur une vulnérabilité dans le module tarfile de Python », Kasimir Schulz, chercheur en vulnérabilités pour Threat Labs de Trellix, a écrit sur le blog de l’entreprise. « Au départ, nous pensions avoir trouvé une nouvelle vulnérabilité zero-day. En creusant le problème, nous avons réalisé qu’il s’agissait en fait de CVE-2007-4559. »

Selon le National Institute of Standards and Technology (NIST), CVE-2007-4559 est une vulnérabilité de traversée de répertoire dans les fonctions d’extraction et d’extraction du module tarfile en Python qui permet à des attaquants distants assistés par l’utilisateur d’écraser des fichiers arbitraires via une séquence « .. » dans les noms de fichiers dans une archive TAR.

Les mauvais acteurs peuvent créer des exploits avec seulement six lignes de code ajoutées au module tarfile, ce qui permet aux utilisateurs d’ajouter un filtre pour analyser et modifier les métadonnées d’un fichier avant qu’il ne soit ajouté à l’archive tar, a déclaré Schulz. CVE-2007-4559 « est incroyablement facile à exploiter, ne nécessitant que peu ou pas de connaissances sur des sujets de sécurité complexes.

En raison de ce fait et de la prévalence de la vulnérabilité dans la nature, le module tarfile de Python est devenu un énorme problème de chaîne d’approvisionnement menaçant les infrastructures dans le monde entier. » Trellix a trouvé plus de 300 000 dépôts affectés par la vulnérabilité.

Trellix a développé un utilitaire d’analyse pour identifier la vulnérabilité et a corrigé un certain nombre de référentiels open source.

Baron Samedit de sudo

Âge : 9 ans, 6 mois
Date d’introduction : juillet 2011
Date fixée : janvier 2021

La commande sudo est un outil important dans la boîte à outils de tout administrateur Unix, accordant privilèges d’utilisateur super puissants à ceux qui ont les autorisations appropriées pour l’invoquer. Mais avec un grand pouvoir vient une grande responsabilité, et il est important qu’il y ait des haies autour de la commande afin que les utilisateurs ne se déchaînent pas dans le système.

Par exemple, vous pouvez invoquer sudo en mode shell avec le drapeau -c, que vous pouvez suivre avec une série de commandes shell qui seront exécutées avec les privilèges de superutilisateur. Ce mode est potentiellement vulnérable à un attaque par débordement de mémoire tampon, où des caractères spéciaux insérés dans ces commandes incitent le système à écrire du code en dehors de la mémoire tampon allouée, accordant potentiellement l’accès aux privilèges root.

En général, sudo protège contre de telles attaques en reconnaissant ces caractères spéciaux avant qu’ils ne soient traités. Cependant, en 2011, une vulnérabilité a été accidentellement insérée dans sudo qui a rendu possibles les attaques par débordement de tampon, et elle se cachait à la vue de près d’une décennie.

La faille n’était pas dans la commande sudo proprement dite, mais plutôt dans l’auxiliaire commande sudoedit, qui permet aux utilisateurs d’utiliser les privilèges de superutilisateur pour accéder et modifier un fichier sans accorder tous les privilèges de superutilisateur au programme d’édition lui-même.

Comme décrite sur le blog Qualys en janvier 2021, la vulnérabilité permet une escalade sérieuse des privilèges et il est crucial de la corriger. Les systèmes concernés incluent presque toutes les variantes d’Unix, y compris Linux, Solaris et macOS.

Trou de démarrage sécurisé Linux GRUB2

Âge : 10 ans
Date d’introduction : 2010
Date fixée : juillet 2020

Lorsque l’UEFI a été introduit en remplacement du BIOS, c’était considéré comme la pointe de la sécurité, avec des fonctionnalités conçues pour lutter contre les attaques qui opèrent au niveau du logiciel de démarrage qui démarre un système d’exploitation.

La clé de cela est une chaîne imbriquée de certificats cryptographiques signés qui vérifie que chaque programme de chargeur de démarrage est légitime, un mécanisme connu sous le nom de Secure Boot. Le certificat racine pour UEFI est signé par Microsoft, et les distributions Linux placent leurs propres chargeurs de démarrage, chacun avec son propre certificat validé, plus loin dans la chaîne.

Mais comme l’explique Lucian Constantin, CSO, GRUB2, un bootloader Linux très populaire avec un certificat compatible UEFI, contient une vulnérabilité de dépassement de mémoire tampon qui peut être exploité par un code malveillant inséré dans son fichier de configuration. Alors que GRUB2 lui-même est signé, son fichier de configuration, censé être modifiable par les administrateurs locaux, ne l’est pas.

Ce trou était repéré par Eclypsium, et bien qu’un attaquant ait besoin d’avoir un certain contrôle local sur la machine cible pour mettre en œuvre cette attaque, s’il réussit, il pourrait s’assurer qu’il garde le contrôle de cet ordinateur à l’avenir chaque fois qu’il démarre, il est donc difficile de les expulser du système.

Inclusion de fichiers locaux LionWiki

Âge : 11 ans, 11 mois
Date d’introduction : novembre 2008
Date fixée : octobre 2020

LionWiki est un moteur wiki minimaliste , programmé en PHP ; contrairement à de nombreux moteurs wiki populaires, comme celui sous-jacent à Wikipedia, LionWiki n’utilise pas de base de données, mais est entièrement basé sur des fichiers. Comme son objectif est la simplicité, c’est l’une de ses forces, mais cela rend également possible une vulnérabilité importante.

Essentiellement, les différents fichiers sous-jacents à une instance particulière de LionWiki sont accessibles par des noms de fichiers et de chemins dans l’URL des pages correspondantes. Cela signifie qu’avec une URL correctement conçue, vous pouvez parcourir le système de fichiers du serveur hébergeant l’instance LionWiki.

Des dispositions de filtrage d’URL sont en place pour bloquer les tentatives de le faire, mais comme l’a découvert June Werner, ingénieur de la cybergamme de l’Infosec Institute, elles pourraient être vaincu assez facilement.

Une chose que note Werner est que cette vulnérabilité a persisté malgré quelques tentatives pour la corriger.

« Certaines mesures d’atténuation ont été mises en place pour la première fois en juillet 2009, puis des mesures d’atténuation plus étendues ont été mises en place en janvier 2012 », note-t-elle. « Malgré ces atténuations, le code était toujours vulnérable au même type d’attaque. Cette vulnérabilité est restée dans le code pendant encore huit ans jusqu’à ce qu’elle soit redécouverte, avec un moyen de contourner les mesures d’atténuation, en octobre 2020. »

Après le bogue était officiellement signalé, il a été corrigé par le développeur.

Attaque d’homme à côté de Domain Time II

Âge : 14 ans
Date d’introduction : 2007
Date fixée : avril 2021

Si deux ordinateurs sur le même réseau ne peuvent s’entendre sur l’heure qu’il est, les résultats peuvent aller de de l’agaçant au désastreux. Il s’agit d’un problème informatique de longue date, et l’un des plus solutions d’entreprise matures et largement déployées est un programme connu sous le nom de Domain Time II , une application à source fermée utilisée sous Windows, Linux et Solaris.

Domain Time II a abrité pendant la plus grande partie de son existence une vulnérabilité très sérieuse. À intervalles ou selon des conditions que l’utilisateur peut définir, le programme envoie des requêtes UDP à un serveur de mise à jour exécuté par Greyware Automation Products, le fournisseur du logiciel.

Si le serveur répond avec une URL, Domain Time II exécutera un programme avec des privilèges d’administrateur pour télécharger et installer une mise à jour à partir de cette URL.

Le problème ? Si un acteur malveillant parvient à répondre à la requête avant le serveur de mise à jour de Greyware, cet attaquant peut envoie sa propre réponse, invitant Domain Time II à télécharger n’importe quel malware que l’attaquant souhaite installer.

Dans un vrai man-in-the-middle attack, l’attaquant intercepterait les communications dans les deux sens ; en revanche, c’est ce qu’on appelle une attaque man-on-the-side, dans laquelle l’attaquant ne peut pas empêcher les réponses à sa machine cible de passer et doit donc envoyer sa propre réponse plus rapidement .

En pratique, cela signifie que l’attaquant devrait déjà contrôler un ordinateur sur le réseau local de la cible pour y parvenir, mais cette attaque représente un moyen pour un attaquant d’intensifier son intrusion sur des machines plus précieuses et sécurisées au sein d’un réseau local.

Cette vulnérabilité a été repérée par la société de sécurité Grimm, qui a noté que la faille était présente dans des versions du logiciel remontant au moins à 2007.

Bogues du sous-système Linux SCSI

Âge : 15 ans
Date d’introduction : 2006
Date fixée : Mars 2021

Si vous êtes de la vieille école, vous vous souvenez de SCSI, une norme de transfert de données des années 1980 qui a peut-être été la façon dont votre premier disque dur s’est connecté à votre PC IBM ou à votre Mac classique. Il est toujours utilisé dans certains contextes aujourd’hui, et Linux, toujours destiné à être aussi flexible et universel que possible, dispose toujours d’un sous-système SCSI étendu pour les systèmes qui en ont besoin.

Ces modules sont disponibles via ce qu’on appelle le chargement automatique des modules, dans lequel le système d’exploitation récupère et installe le code système dont il a besoin quand il en a besoin, ce qui est utile si vous vous retrouvez à brancher un lecteur SCSI dans votre machine Linux et ne souhaitez pas rechercher le code de support nécessaire, mais il est également utile pour les attaquants qui souhaitent exploiter les erreurs dans ledit code.

Le cabinet de conseil en cybersécurité Grimm a publié une analyse détaillée des plusieurs bogues dans ce code Linux SCSI qu’ils ont découverts en mars 2021.

L’une était une vulnérabilité de dépassement de mémoire tampon qui pouvait permettre à un utilisateur normal d’obtenir des privilèges root, et les autres étaient des erreurs où des informations du noyau pouvaient être divulguées dans l’espace utilisateur, et toutes pouvaient être utilisées pour obtenir des informations privilégiées ou dans le cadre de une attaque DoS sur la machine affectée.

Grimm fait remonter les bogues à 2006 et note sèchement qu’ils sont « une indication d’un manque de pratiques de programmation soucieuses de la sécurité qui prévalait au moment où ce code a été développé. »

SIGRed

Âge : 17 ans
Date d’introduction : 2003
Date fixée : 2020

Le DNS est l’une des dorsales sous-estimées d’Internet, le système par lequel votre l’ordinateur sait quelle adresse IP correspond à une URL donnée. Le système est hiérarchique, avec des requêtes envoyées de haut en bas dans la pyramide à la recherche de serveurs DNS qui connaissent la réponse à la question « Où est cet ordinateur ? » En conséquence, le DNS a été intégré à tous les principaux systèmes d’exploitation.

En 2020, Microsoft a divulgué un vulnérabilité critique dans sa propre version de DNS, qui se cachait dans le code depuis 17 ans, bien qu’il n’y ait aucune preuve qu’elle ait jamais été exploité à l’état sauvage.

La vulnérabilité, surnommé SIGRed par ses découvreurs à Check Point, était un faille de débordement de tampon dans les serveurs DNS Windows qui pourrait être utilisé déclenché par un code d’exploitation caché dans la signature d’un paquet DNS.

Un serveur de noms malveillant pourrait envoyer de tels paquets en réponse à des requêtes, en contournant la plupart des protections de sécurité et en obtenant potentiellement un accès à distance au serveur DNS de Microsoft. L’attaque serait potentiellement vermifuge, ce qui signifie qu’elle pourrait être automatisée et propagée sans intervention de l’utilisateur.

Débordement de tas PuTTY

Âge : 20 ans, 9 mois
Date d’introduction : janvier 1999
Date fixée : octobre 2019

PuTTY est une suite gratuite et open source d’outils, y compris une console série, un émulateur de terminal et diverses applications de transfert de fichiers réseau, avec SSH et divers autres schémas de chiffrement intégrés.

Il a été initialement publié pour apporter les types d’outils que les administrateurs Unix tenaient pour acquis à Windows et Mac OS classique, mais a élargi sa portée et est maintenant également largement utilisé sur les systèmes Unix. Bien que PuTTY ait été conçu pour sécuriser les connexions réseau, il s’avère qu’une vulnérabilité se cache en son cœur.

Il s’agissait d’une autre forme de problème de dépassement de mémoire tampon (un débordement de tas, dans ce cas), et pouvait être déclenchée par une clé SSH trop courte, ce qui pouvait entraîner le plantage de PuTTY ou même l’exécution de code à distance.

La vulnérabilité a été soumise à HackerOne dans le cadre du programme Bug Bounty établi par l’Union européenne ; il a rapporté au soumissionnaire une récompense de 3 645 $ et un merci de la part de l’équipe PuTTY, qui a noté que le bogue était présent dans les toutes premières versions du code source PuTTY qu’ils avaient, datant de 1999.

Vulnérabilités win32k.sys

Âge : 23 ans
Date d’introduction : 1996
Date fixée : 2019

Deux grandes vulnérabilités ont été détectées dans l’API Win32 de Microsoft Windows en 2019.

Le premier, trouvé en avril, était un La vulnérabilité User-After-Free, dans laquelle des erreurs de codage du système d’exploitation permettaient aux programmes d’accéder à la mémoire système qui aurait dû être protégée ; cette vulnérabilité a été détectée par des chercheurs en sécurité lorsqu’ils ont découvert des pirates malveillants tenter de l’utiliser dans la nature pour prendre le contrôle d’ordinateurs.

L’autre, découverte en décembre, était une vulnérabilité d’élévation de privilèges cachée dans la fonctionnalité de changement de fenêtre du système d’exploitation ; cette vulnérabilité a également été découverte au cours de attaques actives, qui simulaient des frappes au clavier dans le but de créer des fuites de mémoire.

Les deux vulnérabilités trouvent leur origine dans les premiers jours de Windows. « Le problème vient du moment où WIN32K a fait ses débuts avec Windows NT 4.0, lorsqu’une grande partie du moteur graphique de Win32 a été déplacée du niveau utilisateur vers le noyau pour améliorer les performances », explique Boris Larin, chercheur principal en sécurité chez Kaspersky.

Et bien que ces deux vulnérabilités spécifiques aient été corrigées, cette décision de longue date de la part de Microsoft a eu des effets beaucoup plus larges – et continuera probablement à le faire, dit Larin. « Au fil des ans, le composant WIN32K a été responsable de plus de la moitié de toutes les vulnérabilités de sécurité du noyau découvertes dans Windows. »

PrintDemon 

Âge : 24 ans
Date d’introduction : 1996
Date fixée : mai 2020

Les imprimantes sont un problème fréquent pour le service informatique, car il existe de nombreuxtypes différents, elles ne sont pas fabriquées par les mêmes fournisseurs qui fabriquent les ordinateurs et les systèmes d’exploitation, et les utilisateurs s’attendent à les brancher. et lancez simplement l’impression.

Microsoft, en particulier, dans ses premières années, s’est battu pour rendre l’installation d’un pilote d’imprimante relativement facile et indolore. Mais un bogue récent, surnommé PrintDemon, a montré qu’ils sont peut-être allés un peu trop loin dans les années 90, et qu’ils paient encore aujourd’hui.

Le cœur de la vulnérabilité réside dans trois faits : les utilisateurs non administrateurs peuvent ajouter des imprimantes à une machine Windows ; la mécanique sous-jacente permet d’imprimer dans un fichier plutôt que sur un périphérique d’impression physique ; et des services d’impression cruciaux sous Windows exécutés avec les privilèges SYSTEM.

Cela signifie que, si vous le faites correctement, vous pouvez créer un pilote « d’imprimante » qui peut créer un fichier (même un exécutable) n’importe où sur le système de fichiers (même dans des répertoires privilégiés).

De nombreux exploits ont été concoctés au fil des ans pour tirer parti de ces défauts de conception : Stuxnet, il s’avère, était l’un d’eux — mais PrintDemon, découvert en 2020, était un vrai doozy, et a été rendu possible parce que les correctifs de Microsoft au fil des ans avaient été des correctifs plutôt qu’une reconstruction complète du sous-système d’impression.

Comme Winsider le décrit, « Avec des modifications très subtiles du système de fichiers, vous pouvez obtenir un comportement de copie/écriture de fichier qui n’est attribuable à aucun processus, en particulier après un redémarrage… avec un nom de port soigneusement conçu, vous pouvez imaginer que le spouleur dépose simplement un fichier [exécutable portable] n’importe où sur disque pour vous. » Cela ressemble à de mauvaises nouvelles.

Pourquoi c’est important

Ces listes sont amusantes à dresser — cela suscite toujours un frisson de réaliser que votre ordinateur pourrait être piraté en raison d’une vulnérabilité dans le sous-système d’imprimante des années Clinton — mais il est très important de connaître les anciens bogues qui va au-delà du besoin immédiat de les réparer.

Adam Nichols, directeur de Grimm, déclare : « L’une des choses que nous faisons lorsque nous découvrons une vulnérabilité dans nos efforts de recherche indépendants est d’essayer de déterminer depuis combien de temps elle est présente.

« Ce n’est malheureusement pas la norme de l’industrie, mais d’autres chercheurs le font parfois aussi. Faire un effort supplémentaire pour savoir combien de temps les gens ont été vulnérables est un travail supplémentaire, mais je pense que c’est une partie importante de la conversation. »

Nichols souligne les recherches de Sandy Clark, qui a montré qu’une réutilisation intensive du code a entraîné une grande surface d’attaque de vulnérabilités connues, et qu’une base de code dans une longue utilisation active peut éventuellement transformer ses vulnérabilités cachées en exploits.

Cela va à l’encontre du dogme traditionnel de l’ingénierie logicielle, selon lequel la plupart des failles seront corrigées dans les premiers jours de l’utilisation d’une base de code, car elle rencontre des problèmes et des attaques du monde réel. Mais il s’avère que, pour reprendre les termes du titre de l’article de Clark, la familiarité peut engendrer le mépris.

.

Toute l’actualité en temps réel, est sur L’Entrepreneur

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici