Un entier ayant une taille fixe, il y a une valeur maximale qu'il peut stocker. Quand une tentative est faite de stocker une valeur supérieure à cette valeur maximale, nous parlons alors de débordement d'entier (integer overflow). Les débordements d'entiers peuvent être problématiques par exemple dans le cas où le calcul doit gérer la taille d'un tampon ou jusqu'où un index peut aller dans un tableau.
Des chercheurs du MIT s’y sont intéressés et expliquent que non seulement ils peuvent faire planter un programme mais ils peuvent également le laisser vulnérable aux attaques. « Les débordements d’entier sont une source insidieuse de défaillances logicielles et de vulnérabilités de la sécurité. Parce que des programmes comportant des erreurs latentes de débordement traitent souvent correctement les entrées, ce genre d’erreurs peut aisément échapper à la détection durant la phase de test pour apparaître plus tard dans la production » ont-ils expliqué dans un billet.
Aussi, pour résoudre ce problème, les chercheurs du laboratoire d’intelligence artificielle et de sciences informatiques du MIT ont mis au point un moteur de découverte de dépassement d’entier (DIODE – Directed Integer Overflow Discovery Engine -) afin de détecter automatiquement les bugs de dépassement d’entier. L’algorithme a été testé dans cinq programmes open-source populaires comportant trois bugs de ce type connus. DIODE a trouvé les trois … et en a décelé 11 autres.
« DIODE est conçu pour identifier les tests pertinents auxquels les entrées doivent être soumises pour déclencher des débordements sur les sites d’allocation de mémoire cible, ensuite générer ces entrées » ont expliqué les chercheurs. Ils rappellent qu’un débordement d’entier en lui-même ne fera pas planter un programme mais qu’un problème pourrait survenir lorsque le programme va essayer d’utiliser un entier ayant déjà subi un débordement. « C’est comme un compteur kilométrique de voiture. Une fois que vous êtes allé au-delà d’un certain nombre de kilomètres vous revenez à zéro », a expliqué Stelios Sidiroglou-Douskos, l’un des chercheurs.
En marge de DIODE, les chercheurs ont développé CodePhage, un système automatique de transfert de code qui élimine les erreurs du type débordement d’entier une fois que DIODE les a repérées. « La combinaison de CodePhage et DIODE apporte un système qui détecte et élimine automatiquement les erreurs de débordement d’entier. DIODE génère des entrées qui mettent en exergue les erreurs ; CodePhage utilise ces entrées pour localiser et transférer le code depuis les applications afin d’éliminer les erreurs » ont expliqué les chercheurs.
Source : blog MIT
Et vous ?
Qu'en pensez-vous ?
Des chercheurs du MIT mettent au point un algorithme pour détecter les erreurs du type débordement d'entier
Ainsi qu'un outil pour les éliminer
Des chercheurs du MIT mettent au point un algorithme pour détecter les erreurs du type débordement d'entier
Ainsi qu'un outil pour les éliminer
Le , par Stéphane le calme
Une erreur dans cette actualité ? Signalez-nous-la !