Rambler's Top100
 
Все новости Новости отрасли

Хакеры освоили метод заражения ПО на стадии исходного кода

03 ноября 2021

Исследователи из Кембриджского университета заявили об уязвимости компиляторов большинства языков программирования, которая позволяет заражать исполнимый код вредоносными фрагментами через комментарии к исходному коду.

Как пишет D-Russia со ссылкой на The Record, злоумышленники эксплуатируют т.н. двунаправленные управляющие Unicode-символы внутри комментариев исходного кода. Такие символы нужны, чтобы «объяснить» алгоритму, как отображать текст: слева направо или справа налево, что необходимо, например, при использовании в тексте на одном из европейских языков фраз на иврите или арабском языке. Оказалось, что с помощью двунаправленных управляющих Unicode-символов можно сделать так, чтобы часть комментария, который компилятор не должен принимать во внимание, была перенесена в исходный код и компилирована.

Большинство редакторов текста и компиляторов не включают протоколы, позволяющие обрабатывать управляющие символы или сигнализировать об их присутствии внутри комментариев в исходном коде. Нападение с использованием этой уязвимости может совершаться при компиляции программ, написанных на C, C++, C#, JavaScript, Java, Rust, Go и Python.

Злоумышленники получают возможность вставить управляющие символы внутри комментариев, редактор-человек эти символы не увидит. При компиляции текст из комментариев попадёт непосредственно в код, или же, напротив, предусмотренный программистом код будет перемещён в комментарии и не войдёт в исполнимый код.

Перед тем как опубликовать результаты исследования, сотрудники Кембриджского университета сообщили об обнаружении уязвимости производителям компиляторов, дав им 99 дней на выпуск исправлений.

Источник: D-Russia

Поделиться:
Заметили неточность или опечатку в тексте? Выделите её мышкой и нажмите: Ctrl + Enter. Спасибо!

Оставить свой комментарий:

Для комментирования необходимо авторизоваться!

Комментарии по материалу

Данный материал еще не комментировался.