Современные системы искусственного интеллекта образуют новый слой корпоративной инфраструктуры. Между пользователями, приложениями, базами данных и моделями теперь работают шлюзы доступа, платформы поиска и оркестрации, а также контейнерные среды выполнения. Эти компоненты накапливают учетные данные, права доступа и подключения к моделям. Поэтому они превращаются в самые ценные цели для злоумышленников.
Описание
Корпорация Microsoft зафиксировала активность, направленную на три типа таких систем: шлюз LiteLLM, платформу RAGFlow и среду оркестрации Kestra. Пути проникновения различались, однако цели атакующих оказались схожими. Злоумышленники стремились похитить секреты, закрепиться в системе и монетизировать вычислительные ресурсы. В отличие от разрозненных инцидентов, здесь прослеживается единая тенденция: ИИ-инфраструктура рассматривается как контрольная точка, где сходятся кража учетных данных и доступ к данным.
Первая атака затронула шлюз LiteLLM. Эта система часто выступает посредником между приложениями и поставщиками моделей. Исследование Microsoft показало, что доступ злоумышленники получили через эксплуатацию уязвимостей в открытом интерфейсе шлюза. После этого вредоносный код начал считывать переменные окружения процесса и отбирать значения, похожие на ключи API, пароли и строки подключения к базам данных. Для отправки данных использовались разные сетевые утилиты, чтобы обеспечить запасной канал, если один метод будет заблокирован.
Затем следовала доставка дополнительных вредоносных программ. Злоумышленники запускали полезную нагрузку из контекста шлюза, маскируя её под обычный системный процесс. После выполнения начиналась разведка: проверка прав, открытых портов и наличие других майнеров. Далее они устанавливали программу для добычи криптовалюты, удаляли конкурирующие майнеры и настраивали обслуживание процессора. Отдельным этапом стал доступ к базе данных, где хранились настройки моделей и виртуальные ключи. Используя похищенную строку подключения, атакующие выгрузили эти данные. Для закрепления они изменили ключи удаленного доступа служебной учетной записи и создали скрытые файлы с периодическими обращениями к управляющему серверу.
Второй инцидент произошел в RAGFlow - платформе для обработки документов и построения ответов с использованием дополнительных источников знаний. Сначала атакующие провели разведку через поддельные HTTP-запросы, а через несколько дней добились выполнения кода в контексте приложения. Они определили, где хранятся настройки подключения к большим языковым моделям, и внедрили туда скрытый перехватчик. Этот перехватчик захватывал данные, которые пользователи вводили при настройке нового подключения: тип провайдера, название модели, ключ API и адрес конечной точки. Собранные данные отправлялись на внешний сервер. Перехватчик был встроен в путь запуска приложения, поэтому сохранялся после перезапуска службы.
В этом случае атакующие не устанавливали майнер и не использовали интерактивную оболочку. Их главной целью был сбор ключей для доступа к моделям. Кроме того, внутри контейнера были записаны ключи удаленного доступа, однако их долговечность зависела от прав контейнера и настроек изоляции. При этом основная ценность для злоумышленников заключалась в получении учетных данных, которые можно использовать для дальнейших атак или продажи.
Третья атака была направлена на Kestra - систему оркестрации рабочих процессов. Злоумышленники использовали критическую уязвимость. Она позволяла обойти аутентификацию и без учетной записи создать вредоносный рабочий процесс. В результате в контексте исполнителя рабочих процессов запускались команды оболочки. Сначала атакующие изучили окружение через доступ к Docker-сокету. Это дало им возможность просматривать переменные окружения других контейнеров и находить там облачные ключи, пароли баз данных и внутренние адреса сервисов. После этого они развернули майнер криптовалюты и настроили его фоновый запуск.
Позднее злоумышленники использовали еще один рабочий процесс, чтобы загрузить удаленный скрипт прямо в оболочку, не сохраняя его на диск. Полученные данные они кодировали и сохраняли через собственный механизм хранения Kestra. Такой подход снижал количество файлов-артефактов, которые могли бы выдать атаку.
Анализ вредоносных программ показал, что многие образцы имеют структурированный код, явную обработку ошибок и проверку зависимостей. Это может указывать на использование инструментов автоматической генерации кода. Впрочем, Microsoft не делает выводов об авторстве. Такие особенности повышают устойчивость вредоносного ПО в разных средах, но не меняют рекомендации по защите.
Для снижения риска Microsoft рекомендует обращаться с ИИ-шлюзами как с хранилищами секретов высшего уровня. Нужно регулярно обновлять их, закрывать административные интерфейсы от интернета и требовать аутентификацию. Провайдерские ключи лучше хранить в защищенном хранилище, а для команд выдавать отдельные виртуальные ключи с лимитами расходов. Доступ к базам данных следует ограничивать минимальными правами и размещать их в частной сети. Также важно ограничивать исходящий трафик, разрешая только необходимые адреса. Мониторинг должен включать отслеживание необычных запусков интерпретаторов, обращений к Docker и внеплановых сетевых вызовов. Эти меры помогут обнаружить атаку на ранней стадии, когда злоумышленники еще не успели закрепиться.