Les acteurs de menaces passent de langages traditionnels comme C et C++ à des langages modernes tels que Rust, permettant le développement de malwares multiplateformes. Un nouveau voleur d'informations basé sur Rust nommé Luca est apparu, publié ouvertement au public. Ce développement met en lumière l'utilisation croissante de Rust dans les malwares, posant de nouveaux défis aux défenseurs de la cybersécurité.
Les développeurs de malwares se tournent de plus en plus vers des langages comme Golang, Rust et Nim, s'éloignant de C et C++. Ce changement leur permet de compiler du code malveillant pour les plateformes Linux et Windows avec peu d'ajustements. Parmi les menaces récentes, Luca Stealer se distingue comme un voleur d'informations construit en Rust qui a émergé dans la nature, apparaissant aux côtés de dangers comme le ransomware BlackCat.
Le rôle de Rust dans les malwares est encore naissant par rapport à Golang mais croît rapidement. La publication open-source publique de Luca Stealer offre aux chercheurs une chance d'examiner l'application de Rust dans des logiciels nuisibles, aidant à la création de meilleures défenses. Cependant, ce virage exige de nouvelles approches pour analyser et faire de l'ingénierie inverse ces binaires avancés.
Les défenseurs font face à des obstacles avec les exécutables Rust. Contrairement aux programmes C, les chaînes Rust manquent de terminaison nulle, entraînant des outils comme Ghidra à mal interpréter les données et à créer des définitions chevauchantes. Les analystes doivent souvent ajuster manuellement les octets de code et redéfinir les chaînes pour une analyse précise. Localiser la fonction principale nécessite aussi de comprendre les sorties du compilateur Rust ; le point d'entrée configure l'environnement avant d'invoquer std::rt::lang_start_internal, qui relie à la fonction principale de l'utilisateur via le traçage des arguments.
Heureusement, le système de build Cargo de Rust laisse des traces. Les dépendances, ou 'crates', sont liées statiquement, et des motifs comme 'cargo\registry' peuvent révéler des bibliothèques comme reqwest pour les opérations HTTP. Les sections de débogage peuvent conserver des chemins PDB, révélant des détails comme le nom d'utilisateur de l'auteur ou des répertoires système. À mesure que Rust gagne en popularité auprès des acteurs de menaces, appréhender ces traits est vital pour les efforts de détection.