Наши эксперты из Global Research and Analysis Team (GReAT) обнаружили два вредоносных пакета в The Python Package Index (PyPI), популярном репозитории софта для программирования на Python. Согласно описанию, пакеты представляли собой библиотеки для работы с популярными языковыми моделями. Однако на самом деле они имитировали заявленную функциональность при помощи демоверсии ChatGPT, а их основной целью была установка зловреда JarkaStealer.
Пакеты были доступны для скачивания больше года, и, судя по статистике репозитория, за это время они были скачаны более 1700 раз пользователями из более чем 30 стран.
Что за пакеты и для чего они использовались
Вредоносные пакеты были загружены в репозиторий одним автором и отличались друг от друга только названием и описанием. Первый назывался gptplus и якобы позволял реализовать доступ к API GPT-4 Turbo от OpenAI; второй — claudeai-eng, согласно аналогичному описанию, обещал доступ к API Claude AI от компании Anthropic PBC.
В описаниях обоих пакетов были примеры использования, которые объясняли, как создавать чаты и посылать сообщения языковым моделям. Но в действительности операторы этой атаки встроили в код механизм взаимодействия с демопрокси ChatGPT, чтобы убедить жертву в работоспособности пакета. А содержавшийся тем временем в пакетах файл __init__.py декодировал находящиеся внутри данные и скачивал из репозитория на GitHub файл JavaUpdater.jar. Если на машине жертвы не обнаруживалась Java, то он также скачивал и устанавливал среду выполнения для Java (JRE) из Dropbox. Сам jar-файл содержал зловред JarkaStealer, который использовался злоумышленниками для компрометации среды разработки и незаметной эксфильтрации похищенных данных.
Что за зловред JarkaStealer и чем он опасен
JarkaStealer — это зловред, предположительно написанный русскоговорящими авторами, который служит преимущественно для сбора конфиденциальных данных и отправки их злоумышленникам. Вот что он умеет:
- похищать данные из различных браузеров;
- делать скриншоты;
- собирать системную информацию;
- красть сессионные токены из различных приложений (включая Telegram, Discord, Steam и даже клиент для читов Minecraft);
- прерывать процессы браузеров, чтобы достать сохраненные данные.
Полученная информация затем архивируется, отправляется на сервер операторов атаки и удаляется с устройства жертвы.
По информации наших экспертов, авторы зловреда распространяют его через Telegram по модели malware-as-a-service (MaaS). Однако мы также нашли исходный код JarkaStealer на GitHub, так что не исключено, что данная кампания обошлась и без оригинальных авторов зловреда.
Как оставаться в безопасности
Мы оперативно сообщили администраторам PyPI о закладках в пакетах gptplus и claudeai-eng, и на данный момент они удалены из репозитория. Однако нет никаких гарантий, что этот (или похожий) трюк не попытаются провернуть на какой-нибудь другой площадке. Мы продолжаем следить за активностью, связанной со зловредом JarkaStealer, и искать прочие угрозы в репозиториях ПО с открытым кодом.
Для тех, кто успел скачать и использовать один из вредоносных пакетов, основная рекомендация — незамедлительно удалить его. У зловреда нет функции закрепления в системе, поэтому запускается он только при использовании пакета. Однако все пароли и сессионные токены, до которых JarkaStealer мог добраться, следует незамедлительно заменить или перевыпустить.
Мы также рекомендуем разработчикам с особой бдительностью изучать пакеты ПО с открытым исходным кодом до интеграции их в свои проекты — в том числе детально анализировать зависимости и цепочку поставок ваших программных продуктов. Особенно, когда речь идет о столь хайповой теме, как интеграция AI-технологий.
В данном случае красным флагом могла стать дата создания профиля автора на PyPI. Если приглядеться к опубликованному выше скриншоту, то можно увидеть, что оба пакета были опубликованы в один день с аккаунта, который зарегистрирован буквально накануне.
Для того чтобы минимизировать риски работы со сторонними пакетами ПО с открытым исходным кодом и избежать атаки на цепочку поставок, мы рекомендуем использовать в корпоративных защитных решениях Kaspersky Open Source Software Threats Data Feed поток данных об угрозах, связанных с компонентами open-source.