Tornando o Rust Inseguro um Pouco Mais Seguro: Ferramentas para Verificar Código Inseguro, Incluindo Bibliotecas em C e C++

2024-12-17

A popularidade do Rust se deve à sua capacidade de eliminar erros de memória e concorrência em tempo de compilação, mas seus blocos de código `unsafe` podem contornar essas verificações. Este artigo explora ferramentas para verificar código Rust inseguro, incluindo código chamado de bibliotecas C ou C++. Apresenta ferramentas de detecção de erros em tempo de execução — sanitizadores — e Miri, um interpretador que encontra comportamentos indefinidos de forma determinística. Os sanitizadores detectam acesso de memória fora dos limites, corridas de dados e muito mais, enquanto o Miri fornece relatórios de erros mais precisos com trechos de código. No entanto, o Miri atualmente não suporta código chamado via FFI de C/C++, sendo necessário o uso de sanitizadores de compilador C/C++ nesses casos. Essas ferramentas aprimoram a segurança e confiabilidade do código Rust, mesmo ao lidar com código `unsafe` ou interagir com bibliotecas C/C++.

Desenvolvimento Erros de Memória