Demonstracja ataku na edytory kodu, który prowadzi do wycieków plików podczas otwierania kodów źródłowych

Pokazano metodę ataku na edytor kodu VSCode, pozwalającą na przeniesienie dowolnych plików w ramach uprawnień bieżącego użytkownika podczas otwierania w edytorze specjalnie zaprojektowanego kodu źródłowego. W tym demo, otwierając kod Rusta, który używa makra proceduralnego, nawiązuje połączenie z hostem 127.0.0.1:8080 i wysyła zawartość pliku „~/.ssh/id_rsa” z kluczami SSH użytkownika.

Aby pójść na kompromis, wystarczy po prostu otworzyć plik z kodem, bez wykonywania innych czynności z projektem. Aby przykład zadziałał, VSCode wymaga wtyczki rust-analyzer (powiązanie na standardowym kompilatorze rustc) oraz obecności w systemie narzędzi do pracy z kodem w języku Rust. Problem związany jest z rozszerzaniem makr proceduralnych podczas wstępnej analizy kodu. Podobny efekt można również osiągnąć w czasie kompilacji za pomocą polecenia „cargo build”.

Należy zauważyć, że problem może dotyczyć innych edytorów kodu i języków programowania. VSCode i analiza rdzy służą wyłącznie do zademonstrowania wektora ataku. Teoretycznie każdy edytor kodu udostępniający makra proceduralne umożliwiające tworzenie rozszerzeń składni i wykonywanie kodu w czasie kompilacji jest podatny na ten problem. Badacz początkowo zbadał możliwość wystąpienia złośliwych działań podczas kompilacji kodu, ale odkrył, że makra proceduralne uległy rozszerzeniu podczas przetwarzania kodu źródłowego w edytorach kodu. Atak może prawdopodobnie wpłynąć na inne języki programowania, na przykład w Javie przetwarzanie adnotacji można manipulować w podobny sposób.



Źródło: opennet.ru

Dodaj komentarz