Rendre le Rust non sécurisé un peu plus sûr : outils pour vérifier le code non sécurisé, y compris les bibliothèques en C et C++
La popularité de Rust provient de sa capacité à éliminer les erreurs de mémoire et de concurrence au moment de la compilation, mais ses blocs de code `unsafe` peuvent contourner ces vérifications. Cet article explore des outils pour vérifier le code Rust non sécurisé, y compris le code appelé à partir de bibliothèques C ou C++. Il présente des outils de détection d'erreurs d'exécution — les sanitizers — et Miri, un interpréteur qui trouve de manière déterministe les comportements indéfinis. Les sanitizers détectent les accès mémoire hors limites, les data races et plus encore, tandis que Miri fournit des rapports d'erreurs plus précis avec des extraits de code. Cependant, Miri ne prend actuellement pas en charge le code appelé via FFI à partir de C/C++, ce qui nécessite l'utilisation des sanitizers du compilateur C/C++ dans ces cas. Ces outils améliorent la sécurité et la fiabilité du code Rust, même lorsqu'il s'agit de code `unsafe` ou d'interaction avec des bibliothèques C/C++.