Разработчик NPM-библиотек colors и faker сломал тысячи приложений

Разработчик NPM-библиотек colors и faker сломал тысячи приложений

Разработчик NPM-библиотек colors и faker сломал тысячи приложений

Пользователи NPM-библиотек с открытым исходным кодом «colors» и «faker» на днях столкнулись с неприятной ситуацией: приложения, в которых задействуются эти библиотеки, выдавали странные данные в консоль или вовсе ломались. Оказалось, что во всём виноват разработчик.

У «colors» на одном только npm насчитываются более 20 миллионов еженедельных загрузок и почти 19 тысяч зависимых проектов. У «faker» результаты скромнее — 2,8 млн еженедельных загрузок и более 2500 зависимых проектов.

Разработчик этих библиотек намеренно ввёл бесконечный цикл, который в конечном счёте поломал тысячи проектов, полагающихся в работе на «colors» и «faker». Результаты уже прочувствовали на себе пользователи популярных проектов с открытым исходным кодом — например, Amazon Cloud Development Kit (aws-cdk). Согласно жалобам, проблемные приложения выдавали в консоль тарабарщину.

 

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

Судя по всему, затронуты версии colors.js v1.4.44-liberty-2 и faker 6.6.6. Девелопер заверил всех, что в настоящее время ведётся работа над фиксом, а пользователям просто стоит немного подождать выхода соответствующего патча.

Нейросеть с сюрпризом: AppSec.Track проверит модели из Hugging Face

ML-модель из публичного репозитория может оказаться не только умной, но и с неприятным сюрпризом внутри. AppSec Solutions добавила в платформу AppSec.Track предварительную проверку моделей из Hugging Face. По заявлению компании, это первое российское решение, которое блокирует потенциально опасные модели до их попадания на машины разработчиков и в CI.

Каждый запрошенный через корпоративный репозиторий файл автоматически отправляется в «карантин». Пока идёт сканирование, разработчик не может скачать модель, зато видит статус проверки и своё место в очереди. После анализа платформа решает, пропускать артефакт в корпоративную инфраструктуру или оставить за дверью.

Модели проверяются без запуска. AppSec.Track разбирает файлы PyTorch, TensorFlow, Keras и другие сериализованные форматы, включая вложенные архивы, и ищет код, способный выполниться при загрузке. Обнаруженным угрозам присваивается уровень критичности.

Проблема особенно актуальна для моделей в формате pickle. Они могут содержать исполняемый код, поэтому одной заражённой загрузки достаточно, чтобы злоумышленник закрепился в среде разработки. Обычный сканер зависимостей здесь способен промахнуться: зловред сидит не в пакете, а внутри самой модели.

В AppSec Solutions считают, что со временем индустрия перейдёт на безопасный формат safetensors. Но пока публичные хабы забиты pickle-файлами, доверять модели только за красивые метрики — так себе стратегия.

Второй рубеж защиты работает на этапе сборки. AppSec.Track формирует SBOM и проверяет библиотеки и зависимости по собственной базе уязвимостей. Она охватывает PyPI, npm, Maven, NuGet, CUDA, Julia и другие экосистемы. Фид можно подключить онлайн или развернуть в закрытом контуре.

Политики безопасности настраиваются один раз и затем применяются автоматически. Сама модель проходит досмотр при входе и повторно не сканируется, а её окружение контролируется при каждой сборке. Получается вполне понятный фейс-контроль: нейросеть сначала показывает, что у неё внутри, и только потом идёт работать.

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