На Hugging Face нашли вредоносный репозиторий, который выдавал себя за проект OpenAI «Privacy Filter» и заражал Windows-компьютеры инфостилером (от англ. information stealer — программа для кражи данных). Проект успел выйти на первое место в трендах платформы и набрать 244 тыс. загрузок до удаления.

По данным BleepingComputer, кампанию обнаружили исследователи HiddenLayer 7 мая. Для пользователей риск прямой: заражение могло привести к краже паролей, cookie-файлов, токенов сессий, данных криптокошельков и локальных файлов.

Как подделка попала в топ Hugging Face

Hugging Face — крупная площадка для обмена моделями искусственного интеллекта, датасетами и инструментами машинного обучения (machine learning, ML — обучение моделей на данных). Ею пользуются разработчики, исследователи и компании, которые скачивают готовые модели и код для экспериментов или рабочих проектов.

Вредоносный репозиторий назывался Open-OSS/privacy-filter. Авторы использовали тайпсквоттинг (от англ. typosquatting — подмена названия с расчётом на невнимательность): имя и оформление походили на легитимный релиз OpenAI «Privacy Filter». Карточку модели, по словам HiddenLayer, скопировали почти дословно.

Такой подход опасен тем, что пользователь видит привычные элементы: знакомый бренд, аккуратное описание, популярность в трендах. В экосистеме ИИ, где многие быстро проверяют новые модели и библиотеки, этого бывает достаточно, чтобы файл запустили без лишних вопросов.

Что скрывал файл loader.py

Ключевым элементом атаки стал Python-файл loader.py. Внутри него находился псевдокод, связанный с ИИ, который должен был выглядеть безобидно при беглом просмотре. На деле скрипт отключал проверку SSL, расшифровывал адрес внешнего ресурса из строки base64 и загружал JSON-пакет с командой PowerShell.

Команда запускалась в невидимом окне. Затем система скачивала пакетный файл start.bat, пыталась повысить права, добавляла вредоносный компонент в исключения Microsoft Defender и запускала финальную нагрузку — стилер на языке Rust под названием sefirah.

Подобная цепочка показывает, почему один только красивый README и число загрузок не помогают оценить безопасность. Раньше мы уже разбирали похожую проблему в материале о том, как хакеры подменили установщики JDownloader: внешне полезный файл может вести себя как полноценный троян.

Какие данные пытался украсть стилер

Финальная программа собирала широкий набор данных с Windows-компьютера. В списке целей — данные браузеров на базе Chromium и Gecko: cookie, сохранённые пароли, ключи шифрования, история, токены сессий. Для обычного пользователя это означает риск входа в его аккаунты без знания пароля.

Стилер также искал токены Discord, локальные базы и мастер-ключи. После такой кражи человек может увидеть странные сбои входа, подозрительные действия в аккаунте или начать искать в сети «discord не работает», хотя настоящая причина связана не с сервисом, а с компрометацией сессии. Отдельно рискуют те, кто использует discord web: украденные браузерные данные могут дать злоумышленникам доступ к активным веб-сессиям.

Кроме того, вредоносная программа нацеливалась на криптокошельки, расширения кошельков, секретные фразы, ключи, данные для удалённого доступа, FTP-клиенты, системную информацию и скриншоты с нескольких мониторов. Похищенный архив уходил на управляющий сервер злоумышленников.

Почему атака важна для рынка ИИ

Злоумышленники всё чаще атакуют не только конечных пользователей, но и цепочки поставки кода. Репозиторий на популярной платформе, пакет в каталоге зависимостей или файл модели могут стать точкой входа в корпоративную сеть. Особенно если разработчик запускает всё на рабочей машине, где уже есть ключи, токены, доступы к облакам и внутренним системам.

HiddenLayer также обнаружила другие репозитории, которые использовали ту же вредоносную инфраструктуру загрузчика. Исследователи увидели пересечения с кампанией тайпсквоттинга в npm, где распространяли имплант WinOS 4.0. Это говорит не об одиночной шалости, а о хорошо отработанной схеме.

Похожий урок даёт история с ИИ-инструментами на локальных машинах: в статье про уязвимость Ollama и риск утечки ключей API мы писали, что экспериментальные среды часто хранят слишком много чувствительных данных. Чем больше токенов и секретов лежит рядом с тестовым кодом, тем выше цена одной ошибки.

Что известно о масштабе заражения

Точное число пострадавших неизвестно. Репозиторий набрал 244 тыс. загрузок, но исследователи не исключают, что счётчик могли искусственно накрутить. То же касается 667 аккаунтов, поставивших отметку «нравится»: значительная часть, по оценке HiddenLayer, похожа на автоматически созданные профили.

Это не делает инцидент безобидным. Даже если реальных установок было меньше, вредоносный проект некоторое время занимал верхнюю позицию в трендах Hugging Face. Для площадки, где популярность часто служит неформальным знаком доверия, это серьёзный сигнал.

Пользователям, которые скачивают модели и зависимости из открытых каталогов в кафе, коворкингах или чужих сетях, стоит отдельно подумать о защите соединения и приватности данных — например, через сервис безопасного интернет-соединения. Но сетевой уровень не заменяет проверку кода и изоляцию тестовой среды.

Что сделать сейчас

Если вы скачивали файлы из Open-OSS/privacy-filter или похожих репозиториев, действуйте так:

  • Отключите компьютер от сети и не вводите на нём новые пароли.
  • Переустановите Windows из чистого образа, если файл запускался. Простое удаление папки не гарантирует очистку.
  • Смените пароли от почты, банковских сервисов, рабочих систем, мессенджеров и облачных хранилищ с другого, доверенного устройства.
  • Завершите активные сессии в важных аккаунтах и перевыпустите токены API, ключи доступа и секреты для разработки.
  • Проверьте криптокошельки: при риске утечки секретной фразы создайте новый кошелёк и переведите средства на него.
  • Просмотрите расширения браузера и удалите неизвестные или давно не используемые.
  • Для будущих экспериментов запускайте модели и скрипты в отдельной виртуальной или тестовой среде без рабочих ключей и личных аккаунтов.
  • Перед запуском проверяйте репозиторий: имя владельца, историю коммитов, открытые обсуждения, свежие жалобы и неожиданные сетевые запросы в коде.
Поделиться: