Démonstration d'une attaque sur les éditeurs de code conduisant à des fuites de fichiers lors de l'ouverture des codes sources

Une méthode d'attaque de l'éditeur de code VSCode a été démontrée, permettant le transfert de fichiers arbitraires dans le cadre des droits de l'utilisateur actuel lors de l'ouverture d'un code source spécialement conçu dans l'éditeur. Dans cette démo, lors de l'ouverture du code Rust qui utilise une macro procédurale, il établit une connexion à l'hôte 127.0.0.1:8080 et envoie le contenu du fichier "~/.ssh/id_rsa" avec les clés SSH de l'utilisateur.

Pour faire un compromis, il suffit simplement d'ouvrir le fichier avec le code, sans effectuer aucune autre action avec le projet. Pour que l'exemple fonctionne, VSCode nécessite le plugin rust-analyzer (une liaison au-dessus du compilateur rustc standard) et la présence d'outils dans le système pour travailler avec du code dans le langage Rust. Le problème est lié à l’expansion des macros procédurales lors de l’analyse initiale du code. Un effet similaire peut également être obtenu au moment de la compilation en utilisant la commande "cargo build".

Il est à noter que le problème peut affecter d’autres éditeurs de code et langages de programmation. VSCode et rust-analyze sont utilisés uniquement pour démontrer le vecteur d'attaque. En théorie, tout éditeur de code exposant des macros procédurales vous permettant de créer des extensions de syntaxe et d'exécuter du code au moment de la compilation est susceptible de rencontrer ce problème. Le chercheur a d’abord étudié la possibilité d’actions malveillantes lors de la compilation du code, mais a découvert que les macros procédurales étaient étendues lorsque le code source était traité dans les éditeurs de code. L'attaque peut probablement affecter d'autres langages de programmation ; par exemple, en Java, le traitement des annotations peut être manipulé de la même manière.



Source: opennet.ru

Ajouter un commentaire