Support us

Новая атака позволяет внедрять изменения в код, незаметные для разработчика

Исследователи из Кембриджского университета опубликовали технику незаметной подстановки вредоносного кода в исходные тексты, пишет OpenNet. Метод атаки Trojan Source основан на формировании текста, который по-разному выглядит для компилятора/интерпретатора и человека, просматривающего код. Примеры его применения продемонстрированы для различных компиляторов и интерпретаторов для языков C, C++ (gcc и clang), C#, JavaScript (Node.js), Java (OpenJDK 16), Rust, Go и Python.

Оставить комментарий
Новая атака позволяет внедрять изменения в код, незаметные для разработчика

Исследователи из Кембриджского университета опубликовали технику незаметной подстановки вредоносного кода в исходные тексты, пишет OpenNet. Метод атаки Trojan Source основан на формировании текста, который по-разному выглядит для компилятора/интерпретатора и человека, просматривающего код. Примеры его применения продемонстрированы для различных компиляторов и интерпретаторов для языков C, C++ (gcc и clang), C#, JavaScript (Node.js), Java (OpenJDK 16), Rust, Go и Python.

Метод заключается в применении в комментариях к коду специальных Unicode-символов, меняющих порядок отображения двунаправленного текста. При помощи этих управляющих символов одни части текста могут выводиться слева направо, а другие — справа налево. Они применяются, например, для вставки в код строк на иврите или арабском языке. Но если комбинировать строки с разным направлением текста в одной строке при помощи указанных символов, то отрывки текста, отображаемые справа налево, могут перекрыть уже имеющийся обычный текст, отображаемый слева направо.

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

При проверке кода разработчик столкнётся с визуальным порядком вывода символов и увидит не вызывающий подозрения комментарий, но компилятор и интерпретатор будут использовать логический порядок символов и обработают вредоносную вставку как есть, не обращая внимание на двунаправленный текст в комментарии. Проблеме подвержены различные популярные редакторы кода (VS Code, Emacs, Atom), а также интерфейсы для просмотра кода в репозиториях (GitHub, Gitlab, BitBucket и все продукты Atlassian).

Есть несколько способов использования метода для атаки: добавление скрытого выражения «return», приводящего к завершению выполнения функции раньше времени; заключение в комментарий выражений, нормальным образом видимых как действующие конструкции (например, для отключения важных проверок); присвоение иных строковых значений, приводящих к сбоям проверки строк; использование омоглифов — символов, внешне похожих по начертанию, но отличающихся значением и имеющих разные unicode-коды в именах функций и переменных для введения разработчиков в заблуждение.

Исправления с устранением уязвимости подготовлены для GCC, LLVM/Clang, Rust, Python и binutils. Проблему также устранили GitHub, Bitbucket и Jira. В процессе подготовки исправление для GitLab. Для выявления проблемного кода предложено использовать команду:
grep -r $'[\u061C\u200E\u200F\u202A\u202B\u202C\u202D\u202E\u2066\u2067\u2068\u2069]' /path/to/source

Читайте также
Хакеры начинают искать и атаковать уязвимости уже через 15 минут после публикации данных о них
Хакеры начинают искать и атаковать уязвимости уже через 15 минут после публикации данных о них
Хакеры начинают искать и атаковать уязвимости уже через 15 минут после публикации данных о них
Уязвимость в процессорах Intel и AMD позволяет красть данные. Исправление сильно снижает производительность
Уязвимость в процессорах Intel и AMD позволяет красть данные. Исправление сильно снижает производительность
Уязвимость в процессорах Intel и AMD позволяет красть данные. Исправление сильно снижает производительность
Tesla можно взломать и угнать через Bluetooth
Tesla можно взломать и угнать через Bluetooth
Tesla можно взломать и угнать через Bluetooth
Обиженный айтишник снёс базы компании за то, что его не ценили. Получил 7 лет
Обиженный айтишник снёс базы компании за то, что его не ценили. Получил 7 лет
Обиженный айтишник снёс базы компании за то, что его не ценили. Получил 7 лет
2 комментария

Хотите сообщить важную новость? Пишите в Telegram-бот

Главные события и полезные ссылки в нашем Telegram-канале

Обсуждение
Комментируйте без ограничений

Релоцировались? Теперь вы можете комментировать без верификации аккаунта.

Комментариев пока нет.