Los actores de amenazas están pasando de lenguajes tradicionales como C y C++ a modernos como Rust, lo que permite el desarrollo de malware multiplataforma. Ha surgido un nuevo robador de información basado en Rust llamado Luca, lanzado abiertamente al público. Este desarrollo resalta el creciente uso de Rust en malware, planteando nuevos desafíos para los defensores de ciberseguridad.
Los desarrolladores de malware están recurriendo cada vez más a lenguajes como Golang, Rust y Nim, alejándose de C y C++. Este cambio les permite compilar código malicioso para plataformas Linux y Windows con pocos ajustes. Entre las amenazas recientes, destaca Luca Stealer, un robador de información construido en Rust que ha aparecido en la naturaleza, junto a peligros como el ransomware BlackCat.
El rol de Rust en el malware aún es incipiente en comparación con Golang, pero está creciendo rápidamente. La publicación de código abierto de Luca Stealer ofrece a los investigadores una oportunidad para examinar la aplicación de Rust en software dañino, ayudando a crear mejores defensas. Sin embargo, este cambio exige nuevos enfoques para analizar e ingeniería inversa estos binarios avanzados.
Los defensores enfrentan obstáculos con los ejecutables de Rust. A diferencia de los programas en C, las cadenas de Rust carecen de terminación nula, lo que lleva a herramientas como Ghidra a leer mal los datos y crear definiciones superpuestas. Los analistas a menudo necesitan ajustar manualmente los bytes de código y redefinir cadenas para un análisis preciso. Localizar la función principal también requiere comprender las salidas del compilador de Rust; el punto de entrada configura el entorno antes de invocar std::rt::lang_start_internal, que se vincula a la función principal del usuario mediante el rastreo de argumentos.
Ayudosamente, el sistema de compilación Cargo de Rust deja rastros. Las dependencias, o 'crates', están vinculadas estáticamente, y patrones como 'cargo\registry' pueden exponer bibliotecas como reqwest para operaciones HTTP. Las secciones de depuración podrían retener rutas de PDB, revelando detalles como el nombre de usuario del autor o directorios del sistema. A medida que Rust gana tracción entre los actores de amenazas, comprender estas características es vital para los esfuerzos de detección.