Контакты
Подписка 2025
ITSEC 2025
Интеграция безопасности в процессы внутренней разработки. 17-18 июня на Форуме ITSEC 2025
Регистрируйтесь и участвуйте!

Новая троянская техника позволяет прятать уязвимости в исходном коде

02/11/21

hack1-Nov-02-2021-08-33-46-37-AMСпециалисты Кембриджского университета Николас Боучер (Nicholas Boucher) и Росс Андерсон (Ross Anderson) обнаружили новый класс уязвимостей, позволяющих злоумышленникам внедрять визуально обманчивое вредоносное ПО способом, который является семантически допустимым, но изменяет определенную исходным кодом логику, что делает код уязвимым к самым разным киберугрозам, в том числе связанными с цепочками поставок.

Описанная специалистами техника под названием "Атака Trojan Source" базируется на использовании "неуловимых различий в стандартах кодирования символов наподобие Юникода для создания исходного кода, чьи токены логически закодированы не в том порядке, в каком они отображаются, что приводит к уязвимостям, которые рецензирующие код люди не могут увидеть".

Уязвимости, получившие идентификаторы CVE-2021-42574 и CVE-2021-42694, затрагивают компиляторы всех популярных языков программирования, такие как C, C++, C#, JavaScript, Java, Rust, Go и Python.

Проблема связана с двунаправленным алгоритмом Юникода (алгоритмом Bidi), обеспечивающим поддержку письма как слева направо (например, русский язык), так и справа налево (например, иврит). Алгоритм Bidia также поддерживает двунаправленное переопределение, позволяющее писать слова слева направо в предложении на языке с письмом справа налево и наоборот. Иначе говоря, алгоритм позволяет тексту, написанному слева направо, восприниматься как написанный справа налево.

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

"То есть, мы анаграммируем программу A в программу Б. Если изменения в логике достаточно неуловимые для того, чтобы обходить обнаружение в последующих тестированиях, злоумышленник может создать целевые уязвимости и не быть обнаруженным", - пояснили исследователи.

Подобное состязательное программирование может оказать серьезное влияние на цепочку поставок, предупреждают исследователи, когда внедренные в ПО с открытым исходным кодом уязвимости передаются конечным продуктам, затрагивая всех пользователей программного обеспечения. Хуже того, "Атака Trojan Source" может стать более серьезной, если злоумышленник использует омоглифы для переопределения ранее существовавших функций в исходном пакете и вызова их из программы-жертвы.

Темы:Угрозытрояныуниверситетские исследованияПрограммное обеспечение
КИИ
Защита контейнеров и микросервисной разработки на Форуме ITSEC 2025
Регистрируйтесь и участвуйте 18 июня 2025 →
Статьи по темеСтатьи по теме

Участвуйте в проектах

редакции журнала
"Информационная безопасность" 

КАЛЕНДАРЬ МЕРОПРИЯТИЙ 2025
ПОСЕТИТЬ МЕРОПРИЯТИЯ
ВЫСТУПИТЬ НА КОНФЕРЕНЦИЯХ
СТАТЬ АВТОРОМ
ТБ Форум
Проектирование и защита API на Форуме ITSEC 2025
Посетите 17-18 июня →

Еще темы...

More...