Еще одна «безобидная» модель с сюрпризом
Hugging Face снова в центре скандала. На этот раз под прицелом оказалась модель OpenOSS/privacy-filter — якобы утилита для фильтрации персональных данных. На деле внутри пряталась самая настоящая малварь, замаскированная под safe-tensors. И нет, это не единичный случай — платформа уже не первый год борется с любителями вшить в модель cryptominer или infostealer. Если вы пропустили нашу предыдущую статью про инфостилер под видом privacy-filter — сейчас самое время наверстать.
Модель набрала почти тысячу загрузок, прежде чем её заблокировали. Но это не значит, что те, кто уже скачал, в безопасности. Давайте разберемся, как выглядит типичная скам-модель и почему base64 в конфигурационном файле — это красный флаг, который нельзя игнорировать.
Ключевой признак: в репозитории OpenOSS/privacy-filter файл config.json содержал поле model_weight_decoder со строкой base64. После декодирования — полноценный Python-скрипт с функциями сбора данных и отправки на удаленный сервер.
Как это работает: от безопасного названия до вредоносной нагрузки
Схема стара как мир, но в мире AI-моделей работает безотказно. Вы ищете фильтр конфиденциальности, видите знакомое название (OpenOSS — звучит же солидно?), внушительное описание на английском, звезды (скорее всего накрученные). Скачиваете модель, запускаете через transformers или vLLM — и вот вы уже подхватили заразу. Если вы работаете с vLLM, вспомните, как один флаг trust_remote_code может превратить вашу GPU в майнер — мы писали об этом в статье Trust_remote_code в vLLM.
В случае с OpenOSS/privacy-filter злоумышленники пошли дальше: они закодировали payload в base64 и спрятали прямо в метаданных модели. При загрузке через from_pretrained код не выполнялся автоматически — но стоило кому-то запустить приложенный скрипт инференса, как малварь активировалась. Именно такой сценарий подробно описан в материале ML-модель с сюрпризом: как найти и обойти проверки безопасности.
Как распознать малварь до того, как она вас «укусит»
Вот чек-лист, который не даст вам попасться на аналогичную удочку:
- Проверьте файлы в репозитории. Если модель содержит
.pickleили.safetensorsс подозрительно большими размерами для весов — насторожитесь. Но главное — изучитеconfig.jsonиmodeling.py. Любые строки base64, особенно в нестандартных полях, — повод отправить модель в карантин. - Используйте автоматические сканеры. Hugging Face интегрировался с VirusTotal и другими антивирусами. Перед загрузкой модели проверьте её на VirusTotal через интерфейс платформы. Мы подробно рассказывали об этом в статье Защита от вирусов для нейросетей: Hugging Face и VirusTotal скрестили штыки.
- Запускайте в изолированной среде. Никогда не выполняйте
trust_remote_code=Trueна продакшене. Используйте Docker-контейнеры с ограниченными правами или песочницы. Даже если модель легитимна — паранойя сейчас оправдана. - Смотрите на активность репозитория. Если у модели мало звезд, но много загрузок, или наоборот — звезды накручены ботами (проверьте аккаунты, которые их ставят), это тревожный звоночек.
Что делает Hugging Face (не)достаточно?
Платформа давно внедрила автоматическое сканирование pickles и safetensors на вредоносный код. Но это не панацея. Злоумышленники постоянно находят обходные пути: кодируют payload в base64, используют стеганографию в весах, прячут код в документации. Недавно появились децентрализованные лидерборды — возможно, они помогут сообществу быстрее выявлять подозрительные модели. Об этом мы писали в статье Hugging Face запускает децентрализованные лидерборды. Но пока доверять моделям на слово нельзя.
Лучшая защита — ваша собственная бдительность. Не качайте модель, не посмотрев на неё под микроскопом. Даже если она обещает «полную анонимность без компромиссов» — вспомните, что настоящий privacy-filter можно собрать самому, как описано в гайде Как собрать PII-фильтр на коленке.
Прогноз: малварь станет умнее, но и защита — тоже
Ожидайте, что в ближайшие месяцы количество скам-моделей на Hugging Face вырастет. Злоумышленники будут использовать более изощренные методы: динамически генерируемый код, шифрование payload с ключом из окружения, атаки через десериализацию. Однако и инструменты для анализа моделей развиваются — тот же HuggingFace Downloader v2.3.0 уже умеет сканировать репозитории в 100 раз быстрее (мы писали об этом здесь).
Но самый неочевидный совет на сегодня: не доверяйте моделям, которые рекламируют как «маленькие и быстрые». Именно они чаще всего оказываются троянами. И да, если вы всё-таки скачали OpenOSS/privacy-filter — немедленно удалите её и проверьте систему на наличие подозрительных процессов. Ваша безопасность стоит дороже любой «удобной» фильтрации данных.