Security Week 44: Trojan Source, или как скрыть вредоносный код в исходниках

Security Week 44: Trojan Source, или как скрыть вредоносный код в исходниках
Сегодня, 1 ноября, исследователи из Кембриджского университета в Великобритании опубликовали работу , в которой описали уязвимость в большинстве современных компиляторов. Правильнее было бы назвать разработку авторов атакой: ее суть заключается в том, что компилятор не обрабатывает специальные Unicode-идентификаторы, сообщающие, как именно ориентировать текст — для письма слева направо или справа налево. При отображении исходного кода эти идентификаторы обрабатываются. Вот показательный пример:

b98b1805baaed70e059565bc0ada166e.png

Здесь перед закрытием комментария вставляется символ RLI (U+2067), который требует ориентировать последующие символы с ориентацией справа налево. В результате для того, кто будет просматривать исходный код, команда return окажется внутри комментария, хотя на самом деле она находится за его пределами и будет выполнена. То есть появляется возможность «протащить» потенциально уязвимый или вовсе вредоносный код, который не будет замечен при ручной проверке.

Гипотетическая атака эксплуатирует алгоритм Unicode Bidirectional или bidi . Он призван разрешить проблемы с текстами с разным направлением письма в одной строке, для чего и вводятся те самые спецсимволы-команды.

1fc98e699043652c5a638ea59273a537.png


Креативное их применение дает много способов добавления команд, которые будут выглядеть как часть комментария или строки, выводимой на экран. В общем, как что-то безобидное. Такие атаки применяются далеко не в первый раз: спецсимволы или написание right-to-left ранее часто использовались в фишинговых атаках для создания «похожих на настоящие» доменных имен и тому подобного.

Даже в случае кода данная «уязвимость» выглядит как нечто относительно безобидное. Но она была расценена как достаточно опасная, получила свой идентификатор CVE (CVE-2021-42574), а сама работа была опубликована после трехмесячной паузы на подготовку патчей. Пример решения проблемы можно посмотреть в бюллетене разработчиков языка программирования Rust: код со спецсимволами просто не будет компилироваться.

Что еще произошло:

В Евросоюзе расследуют потенциальную утечку приватного ключа, которым подписываются цифровые сертификаты о получении прививки от коронавируса. С помощью этого ключа были сгенерированы поддельные сертификаты, которые успешно проходили проверку. Что именно произошло — пока не ясно, официальные представители структур Евросоюза утверждают, что угрозы целостности системе сертификатов нет.

Компания Adobe выпустила внеочередной апдейт: он закрывает 92 уязвимости, из них 66 критических. Затронуты 13 продуктов, включая Photoshop, Premiere Pro и Lightroom Classic.

Исследователь из Израиля продемонстрировал метод масштабного сбора данных о точках доступа Wi-Fi с последующим взломом паролей. Всего он собрал данные с 5000 точек доступа, подобрать пароль удалось в 70% случаев. Рекомендация автора работы — ставить на Wi-Fi пароль подлиннее: как минимум это снижает шансы оказаться жертвой такого коллективного взлома.

Разработчики браузера Firefox заблокировали вредоносные расширения, которые препятствовали загрузке обновлений. Расширения использовали полмиллиона пользователей. Были также внесены обновления в компонент Proxy API, которым пользовались авторы вредоносных аддонов.
trojan source
Alt text

Где кванты и ИИ становятся искусством?

На перекрестке науки и фантазии — наш канал

Подписаться