Безопасности всего софта угрожает незримая уязвимость Trojan Source

Безопасности всего софта угрожает незримая уязвимость Trojan Source

Безопасности всего софта угрожает незримая уязвимость Trojan Source

Методика, разработанная в Кембриджском университете, позволяет привнести эксплуатируемую уязвимость в любую программу таким образом, что ее не заметит ни один аудитор. Атака Trojan Source, проводимая на цепочку поставок, основана на использовании слабостей Unicode; защита возможна на уровне компилятора.

Актуальность Trojan Source подтверждена для софта, написанного на C, C++, C#, Go, Java, JavaScript, Python и Rust. Университетские исследователи не исключают, что их атака будет работать также против других современных языков программирования.

Согласно описанию, проблема Unicode, идентифицируемая как CVE-2021-42574, создает условия для манипуляции кодированием символов в исходных файлах. В частности, оказалось, что порядок расположения лексем в исходном коде можно изменить с помощью управляющих символов BiDi (используются для отображения текстов с разным направлением письма). При этом компилятор и интерпретатор заметят смену логики, а аналитик — нет.

Управляющие символы Unicode обычно встроены в комменты и строки кода, и с их помощью можно, например, выдать комментарий за код. Такой обман, по словам исследователей, позволяет незаметно привнести в исходник уязвимость и даже запустить атаку на цепочку поставок. Злоумышленники ранее использовали этот трюк для подмены расширений вредоносных файлов, рассылаемых по email.

Схожую массовую атаку на софт можно провести, используя другую слабость Unicode — возможность подмены символов омоглифами (CVE-2021-42694). Чтобы успешно внедрить вредоносный код через зависимость, достаточно лишь слегка видоизменить имя вызываемой функции в ссылке на связанный объект.

Результаты исследования раскрыты (PDF) после снятия трехмесячного эмбарго, позволившего принять меры защиты и подготовить апдейты для компиляторов, интерпретаторов, редакторов кода и репозиториев. Так, участники проекта Rust уже опубликовали свои рекомендации по обновлению компиляторов и очистке базовых кодов от небезопасных зависимостей.

AppSec.Track научился проверять код, написанный ИИ

AppSec.Track добавил поддержку работы с ИИ и стал первым российским SCA-анализатором, который умеет проверять код прямо в связке с ИИ-ассистентами. Обновление рассчитано в том числе на так называемых «вайб-кодеров» — разработчиков, которые активно используют LLM и ИИ-редакторы для генерации кода.

Новый функционал решает вполне практичную проблему: ИИ всё чаще пишет код сам, но далеко не всегда делает это безопасно.

Модель может «галлюцинировать», предлагать несуществующие пакеты, устаревшие версии библиотек или компоненты с известными уязвимостями. AppSec.Track теперь умеет отлавливать такие ситуации автоматически.

Разработчик может прямо в диалоге с ИИ-ассистентом запросить проверку сгенерированного кода через AppSec.Track. Система проанализирует используемые сторонние компоненты, подсветит потенциальные угрозы и предложит варианты исправления. В основе механизма — протокол MCP (Model Context Protocol), который позволяет безопасно подключать инструменты анализа к LLM.

Как поясняет директор по продукту AppSec.Track Константин Крючков, разработчики всё чаще пишут код «по-новому», а значит, и инструменты анализа должны меняться. Редакторы вроде Cursor или Windsurf уже умеют многое, но им всё равно нужна качественная и актуальная база уязвимостей. Именно её и даёт AppSec.Track, включая учёт внутренних требований безопасности конкретной компании. В итоге даже разработчик без глубокой экспертизы в ИБ может получить более надёжный результат.

Проблема особенно заметна на фоне роста low-coding и vibe-coding подходов. Код создаётся быстрее, а иногда — почти без участия человека, но с точки зрения безопасности в нём могут скрываться неприятные сюрпризы: SQL-инъекции, логические ошибки или небезопасные зависимости. Как отмечает старший управляющий директор AppSec Solutions Антон Башарин, ИИ-ассистенты не заменяют классические практики DevSecOps — особенно когда речь идёт об open source, где информация об угрозах обновляется быстрее, чем обучаются модели.

Новый функционал AppSec.Track ориентирован на профессиональные команды разработки, которые уже внедряют ИИ в свои процессы. Он позволяет сохранить требования Secure by Design и снизить риски даже в условиях активного использования генеративного кода.

RSS: Новости на портале Anti-Malware.ru