Un nouvel outil détecte automatiquement les vulnérabilités de dépassement de mémoire tampon

débordement

Crédit : Pixabay/CC0 domaine public

En 1988, alors qu’Internet n’en était qu’à ses balbutiements, un malware connu sous le nom de Morris Worm a infecté près de 10 % d’Internet en l’espace de deux jours, provoquant finalement entre 100 000 et 10 millions de dollars de dommages selon le Government Accountability Office. . Le ver Morris serait finalement connu comme le « grand-père » d’une cyberattaque spécifique encore courante à ce jour : le débordement de la mémoire tampon.

En termes simples, un débordement de mémoire tampon typique se produit lorsqu’un programme informatique reçoit une demande de traitement de plus de données que sa mémoire physique n’est capable de gérer en une seule fois et place l’excédent dans un « tampon ». Le tampon lui-même a une capacité finie, donc si le tampon ne peut pas gérer l’excès, il « déborde » ou se bloque. Imaginez que vous versez trois gallons d’eau dans un seau de deux gallons ; les choses se gâtent.

« L’objectif est de trouver automatiquement les bogues de mémoire qui conduisent à des vulnérabilités de sécurité dans les bibliothèques Rust », explique Jia. « La vérification manuelle de ces bogues est inefficace et prend du temps. »

Leur outil fonctionne sur des bibliothèques logicielles écrites dans le langage de programmation Rust de plus en plus populaire, qui se présente comme à la fois sûr et efficace.

« C’est une langue supérieure, mais cela ne fonctionne que si vous écrivez dans les idiomes stricts de Rust », explique Jia.

Les développeurs Rust ont souvent besoin de structures de données complexes pour leurs logiciels. Mais ces structures de données complexes et leurs opérations sont généralement écrites à l’aide de Rust « unsafe », qui ne sont pas vérifiés par le compilateur Rust pour les bogues de sécurité de la mémoire. C’est là qu’intervient SyRust ; l’outil peut générer automatiquement des tests unitaires pour les API de bibliothèque et tester ces implémentations de bibliothèque pour les bogues de mémoire.

« Nous avons appliqué SyRust à 30 bibliothèques populaires et trouvé quatre nouveaux bogues », explique Jia. « Étant donné que ces bibliothèques ont déjà été écrites en Rust et ont été testées, ce qui signifie que les programmes eux-mêmes étaient très robustes au départ, nous nous attendons à ce qu’un petit nombre de bogues soient découverts. »

Bien que l’outil ne soit pas encore parfait, dit Jia, c’est un pas dans la bonne direction. Par exemple, l’outil ne génère pas suffisamment de tests pour susciter tous les comportements possibles afin de garantir un programme sans bug.

« Si je savais que j’ai énuméré tous les comportements possibles et que je ne trouve aucun bug, alors je suis heureux », déclare Jia. « Cela signifierait que la bibliothèque n’a vraiment pas de bogues, mais pour le moment je ne sais pas combien j’ai testé, et je ne sais pas combien de plus je devrais tester. »

Pour aller de l’avant, Jia dit que l’équipe essaie d’améliorer sa méthode de ce qu’elle appelle un « courage amélioré » des tests. Ce « courage accru » garantirait que plus de terrain a été couvert dans le processus de test, donnant à l’utilisateur plus de confiance que la plupart, sinon la totalité, des bogues ont été trouvés.


Rapport : La plupart des bugs de sécurité de Chrome sont dus à un code mémoire défectueux


Plus d’information:
Yoshiki Takashima et al, SyRust : test automatique des bibliothèques Rust avec synthèse de programme sensible à la sémantique, Actes de la 42e conférence internationale ACM SIGPLAN sur la conception et la mise en œuvre des langages de programmation (2021). DOI : 10.1145/3453483.3454084

Fourni par l’Université Carnegie Mellon

Citation: Un nouvel outil trouve automatiquement les vulnérabilités de dépassement de mémoire tampon (2021, 9 juillet) récupérées le 9 juillet 2021 à partir de https://techxplore.com/news/2021-07-tool-automatically-buffer-vulnerabilities.html

Ce document est soumis au droit d’auteur. En dehors de toute utilisation équitable à des fins d’étude ou de recherche privée, aucune partie ne peut être reproduite sans l’autorisation écrite. Le contenu est fourni seulement pour information.