Источник изображения: Luca Bravo / unsplash.com
Только с 3 по 9 марта на GitHub был загружен 151 подготовленный таким образом вредоносный пакет, указали исследователи из компании Aikido Security. Обычно такие пакеты имеют имена, напоминающие названия крупных продуктов — бывает, что разработчики по недосмотру включают их в свои проекты, принимая вредоносы за известные и безопасные библиотеки. Теперь же злоумышленники сменили тактику на более изощрённую: основная часть кода в таких продуктах отображается в обычном, читаемом виде и на первый взгляд не содержит опасных фрагментов — вредоносные функции и полезные нагрузки включаются при помощи нечитаемых для человеческого глаза символов Unicode. В результате ручная проверка кода и другие традиционные методы защиты оказываются бесполезными. Работающие схожим образом вредоносы обнаружены также в репозиториях NPM, Open VSX и на маркетплейсе VS Code.
Обнаружить злоумышленников, которых обозначили как Glassworm, по косвенным признакам тоже не получается: все текущие дополнения и изменения проектов выглядят правдоподобно. Это корректировки документации, повышение версий, рефакторинг и исправления ошибок — всё, что свойственно обычным проектам. Чтобы создать такую видимость добросовестной деятельности, злоумышленники, предполагают эксперты, пользуются большими языковыми моделями искусственного интеллекта, потому что проводить такие фальсификации для 151 проекта вручную было бы нецелесообразно.
Источник изображения: Fotis Fotopoulos / unsplash.com
Нечитаемые символы соответствуют буквам латинского алфавита: для человека они выглядят как пробелы или пустые строки, а интерпретатор jаvascript воспринимает их как исполняемый код. Эти знаки появились в составе Unicode несколько десятилетий назад, и только в 2024 году киберпреступники начали использовать их в своих целях, маскируя таким образом вредоносный код или вредоносные запросы к чат-ботам. Традиционные средства анализа кода на эти фрагменты не реагируют, но при выполнении jаvascript небольшой декодер извлекает из них реальные байты, которые передаются в функцию eval(), которая позволяет выполнять код из строки.
Исследователи обнаружили 151 вредоносный проект, но есть основания предполагать, что это лишь верхушка айсберга: эти пакеты зачастую удаляются вскоре после публикации, стоит им набрать достаточное число загрузок. Лучший способ защититься от подобных атак, указывают эксперты, — тщательно проверять код и зависимости библиотек, прежде чем включать их в проекты. Но если предположения об использовании ИИ в этой схеме верны, то делать это будет всё труднее.
Источник: 3DNews