Уязвимость CDN от Cloudflare позволяла взломать 12% сайтов в Сети

Уязвимость CDN от Cloudflare позволяла взломать 12% сайтов в Сети

Уязвимость CDN от Cloudflare позволяла взломать 12% сайтов в Сети

Cloudflare устранила критическую уязвимость в своей бесплатной CDN (Content Delivery Network, сеть доставки контента) с открытым исходный кодом — CDNJS. По имеющимся данным, эта брешь затрагивала 12,7% всех веб-сайтов в Сети.

CDNJS обслуживает миллионы веб-ресурсов, предоставляя более 4 тысяч библиотек JavaScript и CSS, хранящихся на GitHub. Таким образом, это вторая по размеру CDN для доставки JavaScript.

Использование уязвимости подразумевает публикацию пакетов CDNJS с помощью GitHub и npm, что приводит к проблеме класса Path Traversal и удалённому выполнению кода. Успешная эксплуатация позволяет полностью скомпрометировать инфраструктуру CDNJS.

Об этом векторе рассказал специалист в области кибербезопасности, использующий онлайн-псевдоним RyotaK. По словам эксперта, ему удалось выявить метод полной компрометации инфраструктуры Cloudflare CDNJS в процессе исследования атак на цепочки поставок.

Само собой, такая брешь в руках злоумышленников могла оказаться опасным оружием, поскольку многие веб-сайты полагаются на CDN для загрузки популярных библиотек JavaScript и CSS. Если условный онлайн-магазин использует уязвимую систему доставки контента, это может ударить по покупателям.

В ходе исследования RyotaK обратил внимание на интересную особенность cdnjs.com: у специалиста была возможность предложить новую библиотеку через репозиторий GitHub. После этого эксперт понял, что этот репозиторий вместе с соседними поддерживал всю экосистему CDNJS в рабочем состоянии.

В итоге RyotaK нашёл способ обманом заставить серверы выполнить произвольный код. Для этого специалист использовали скрипты, хранящиеся в cdnjs/bot-ansible и cdnjs/tools. Именно эти скрипты периодически доставляли на сервер CDNJS обновлённые версии библиотек, выпущенные их авторами.

Исследователь задумался: что случится, если у опубликованной им библиотеки будет соответствующая версия npm, содержащая эксплойт для Path Traversal. Свои эксплойты RyotaK спрятал в архивах ZIP / TGZ. Это известная темника, получившая распространение в 2018 году под именем ZIP Slip.

Специалист, которому в результате удалось запустить Bash-скрипты на сервере, сообщил о проблеме Cloudflare посредством программы HackerOne. Команда разработчиков среагировала очень оперативно, выпустив патчи в течение считаных часов.

Нейросеть с сюрпризом: 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