Haciendo el Rust Inseguro un Poco Más Seguro: Herramientas para Verificar Código Inseguro, Incluyendo Bibliotecas en C y C++

2024-12-17

La popularidad de Rust se debe a su capacidad para eliminar errores de memoria y concurrencia en tiempo de compilación, pero sus bloques de código `unsafe` pueden eludir estas comprobaciones. Este artículo explora herramientas para verificar código Rust inseguro, incluyendo código llamado desde bibliotecas C o C++. Presenta herramientas de detección de errores en tiempo de ejecución —sanitizadores— y Miri, un intérprete que encuentra comportamientos indefinidos de forma determinista. Los sanitizadores detectan accesos de memoria fuera de límites, carreras de datos y más, mientras que Miri proporciona informes de errores más precisos con fragmentos de código. Sin embargo, Miri actualmente no admite código llamado a través de FFI desde C/C++, siendo necesario el uso de sanitizadores de compilador C/C++ en esos casos. Estas herramientas mejoran la seguridad y confiabilidad del código Rust, incluso al tratar con código `unsafe` o interactuar con bibliotecas C/C++.

Desarrollo Errores de Memoria