Demonstration eines Angriffs auf Code-Editoren, bei dem beim Öffnen des Quellcodes Dateien verloren gehen

Es wurde eine Methode zum Angriff auf den VSCode-Code-Editor demonstriert, die die Übertragung beliebiger Dateien innerhalb der Rechte des aktuellen Benutzers ermöglicht, wenn ein speziell entwickelter Quellcode im Editor geöffnet wird. In dieser Demo wird beim Öffnen von Rust-Code, der ein prozedurales Makro verwendet, eine Verbindung zum Host 127.0.0.1:8080 hergestellt und der Inhalt der Datei „~/.ssh/id_rsa“ mit den SSH-Schlüsseln des Benutzers gesendet.

Um einen Kompromiss einzugehen, genügt es, einfach die Datei mit dem Code zu öffnen, ohne weitere Aktionen mit dem Projekt durchzuführen. Damit das Beispiel funktioniert, benötigt VSCode das Rust-Analyzer-Plugin (eine Bindung zusätzlich zum Standard-Rustc-Compiler) und das Vorhandensein von Tools im System für die Arbeit mit Code in der Rust-Sprache. Das Problem hängt mit der Erweiterung prozeduraler Makros während der anfänglichen Codeanalyse zusammen. Ein ähnlicher Effekt kann auch zur Kompilierungszeit mit dem Befehl „cargo build“ erzielt werden.

Es wird darauf hingewiesen, dass das Problem möglicherweise auch andere Code-Editoren und Programmiersprachen betrifft. VSCode und Rust-Analyze werden nur zur Demonstration des Angriffsvektors verwendet. Theoretisch ist jeder Code-Editor, der prozedurale Makros bereitstellt, mit denen Sie Syntaxerweiterungen erstellen und Code zur Kompilierungszeit ausführen können, für das Problem anfällig. Der Forscher untersuchte zunächst die Möglichkeit böswilliger Aktionen während der Codekompilierung, stellte jedoch fest, dass prozedurale Makros erweitert wurden, wenn Quellcode in Code-Editoren verarbeitet wurde. Der Angriff kann wahrscheinlich auch andere Programmiersprachen betreffen; in Java kann beispielsweise die Annotationsverarbeitung auf ähnliche Weise manipuliert werden.



Source: opennet.ru

Kommentar hinzufügen