Фреймворк Ray изначально не включает встроенную систему аутентификации: его создатели предполагают работу в защищённых окружениях, но при этом сотни тысяч серверов с Ray открыты для доступа из интернета.
Эксперты компании Oligo Security выпустили отчёт, описывающий серию атак, которые используют уязвимости в открытом фреймворке для искусственного интеллекта Ray. Взломанные кластеры на базе графических процессоров Nvidia становятся частью ботнета для майнинга криптовалют, способного к самостоятельному расширению.
По данным Oligo Security, кампания, именуемая ShadowRay 2.0, в первую очередь использует проблему, обозначенную как CVE-2023-48022, которая связана с тем, что в Ray отсутствуют собственные механизмы проверки подлинности.
Однако авторы Ray настаивают, что это не ошибка, а осознанный архитектурный выбор: фреймворк создан для изолированных сред и при этом должен иметь возможность выполнять любой предоставленный код.
«Объяснения разработчиков Ray, почему критическая проблема безопасности не считается уязвимостью, могут трактоваться неоднозначно, но по сути это было стратегическое решение — не реализовывать в системе собственные средства аутентификации, чётко предупредив об этом пользователей, — комментирует Александр Зонов, специалист по кибербезопасности компании SEQ. — Можно дискутировать о целесообразности такого подхода, но в конечном счёте ответственность за использование Ray не по инструкции лежит на самих пользователях. Как показывает практика, далеко не все следуют этим рекомендациям».
Как сообщает издание The Hacker News, в настоящее время в открытом доступе находится более 230 тысяч серверов с Ray.
Стоит отметить, что создатели Ray предлагают специальную утилиту для проверки открытых портов, чтобы предотвратить нежелательную доступность кластеров. Также они советуют настраивать внешние решения для аутентификации на порту, где работает веб-интерфейс Ray Dashboard. По умолчанию используется порт 8265.
Если аутентификация не настроена, а панель управления доступна, операторы ShadowRay 2.0 просто отправляют вредоносные задачи на открытые API-интерфейсы отправки заданий Ray (/api/jobs/) — от команд для разведки системы до сложных многошаговых скриптов на Bash и Python. Затем эти задания распространяются на другие доступные панели Ray, что фактически превращает атаку в самовоспроизводящегося «червя».
Согласно данным аналитиков, для проведения атак применялись учётные записи на платформах GitLab и GitHub (ironern440-group и thisisforwork440-ops), с которых загружались вредоносные модули. На данный момент эти аккаунты заблокированы, однако преступники уже завели другие.
Стоит отметить, что зловреды атакуют не только публичные интерфейсы: злоумышленники также активно задействуют встроенные в Ray функции оркестрации для захвата узлов, изолированных от интернета, и формирования обратных оболочек с целью удалённого управления.
Для обеспечения скрытности и устойчивости присутствия злоумышленники применяют несколько приёмов: процессы вредоносного ПО маскируются под легитимные службы ядра Linux, а нагрузка на процессоры удерживается на уровне 60%. Кроме того, каждые четверть часа программа проверяет GitLab на наличие обновлений и при их обнаружении повторяет процедуру заражения системы.
В итоге скомпрометированный узел начинает майнинг криптовалюты посредством XMRig. Помимо этого, организаторы кампании устанавливают на захваченных хостах модули для DDoS-атак sockstress: очевидно, ботнет планируется задействовать и для вывода из строя сторонних ресурсов — будь то конкурирующие организации или любые другие цели.
Аналитики полагают, что вредонос был создан с использованием языковой модели: на это указывают архитектура кода, стиль комментариев и подход к обработке ошибок.
Дополнительно следует сказать, что ботнет проверяет, находится ли атакуемая система в Китае, и в случае положительного результата загружает специальную региональную версию вредоносного обеспечения. Кампания продолжается как минимум год.