Исследование ESET обнаружило кластер вредоносных проектов Python, распространяемых в PyPI, официальный репозиторий пакетов Python. Угроза нацелена как на системы Windows, так и на Linux и обычно представляет собой специальный бэкдор. В некоторых случаях конечная полезная нагрузка представляет собой вариант печально известной Похититель W4SPили простой монитор буфера обмена для кражи криптовалюты, или и то, и другое. В мае 2023 года мы переправу в другом кластере пакетов, который мы обнаружили на PyPI, который доставляет вредоносное ПО для кражи паролей и криптовалюты, но эти два кластера, похоже, представляют собой разные кампании.
Ключевые моменты этого поста:
- Исследование ESET обнаружило 116 вредоносных пакетов в PyPI, официальном репозитории программного обеспечения для языка программирования Python, загруженных в 53 проекта.
- Жертвы загрузили эти пакеты более 10,000 XNUMX раз.
- С мая 2023 года скорость скачиваний составляет около 80 в день.
- Вредоносное ПО представляет собой бэкдор, позволяющий удаленно выполнять команды, осуществлять эксфильтрацию и делать снимки экрана.
- Компонент бэкдора реализован как для Windows на Python, так и для Linux на Go.
- В некоторых случаях вместо этого поставляется W4SP Stealer или монитор буфера обмена, который крадет криптовалюту, или и то, и другое.
PyPI популярен среди программистов Python благодаря возможности совместного использования и загрузки кода. Поскольку любой может внести свой вклад в репозиторий, там могут появиться вредоносные программы, иногда выдающие себя за легальные популярные библиотеки кода. Мы обнаружили 116 файлов (исходные дистрибутивы и диски) из 53 проектов, содержащих вредоносное ПО. Названия некоторых пакетов действительно похожи на имена других, законных пакетов, но мы считаем, что основной способ их установки потенциальными жертвами — это не тайпсквоттинг, а социальная инженерия, когда жертву заставляют бежать. pip install {имя-пакета} иметь возможность использовать «интересный» пакет по какой-либо причине.
За последний год жертвы скачали эти файлы более 10,000 1 раз; см. рисунок XNUMX.
Заражение PyPI
Пакеты PyPI могут принимать две формы: исходные пакеты, которые содержат весь исходный код проекта и собираются при установке, и готовые пакеты (называемые колеса), который может содержать скомпилированные модули для конкретной операционной системы или версии Python. Интересно, что в некоторых случаях код Python в исходном дистрибутиве отличается от встроенного дистрибутива. Первый является чистым, а второй содержит вредоносный код. менеджер пакетов Python, типун, предпочитает колесо, когда оно доступно, а не дистрибутив с исходным кодом. В результате вредоносный файл устанавливается, если явно не запрошено иное.
Мы наблюдали, как операторы этой кампании использовали три метода для объединения вредоносного кода в пакеты Python.
Вредоносный модуль test.py
Первый способ — разместить внутри пакета «тестовый» модуль со слегка запутанным кодом. На рисунке 2 показано test.py файл с функцией под названием граби определяется и затем вызывается. Обратите внимание, что эта функция работает как с системами Windows, так и с Linux.
Этот тестовый модуль импортируется в середину исходного кода основного модуля пакета (__init__.py), чтобы вредоносный код запускался при каждом импорте пакета. На рис. 3 показан модуль, маскирующийся под скриншотер и импортирующий вредоносный файл. test.py.
PowerShell в setup.py
Второй метод — встроить код PowerShell в setup.py файл, который обычно запускается автоматически менеджерами пакетов, такими как типун для помощи в установке проектов Python.
На рис. 4 показан сценарий PowerShell, который загружает и выполняет следующий этап.
Этот сценарий PowerShell загружается передача[.]sh/eyRyPT/Updater.zip во временный каталог как update.zip. Затем сценарий распаковывает ZIP-файл в C: ProgramData и удаляет его из временного каталога. Далее скрипт запускает типун программа для установки зависимостей. Наконец, он запускает код Python в C:ProgramDataUpdaterserver.pyw.
Этот метод работает только в Windows и не сможет заразить системы Linux.
В метаданных пакета на рисунке 4 вы, возможно, заметили, что автором пакета является Билликоза356. Поступало множество сообщений о том, что этот псевдоним связывают со злонамеренными действиями, в том числе с статья из Филума, где они раскрывают потенциальную связь Билли с W4SP Stealer.
Просто вредоносное ПО…
В третьем методе операторы не прилагают никаких усилий для включения в пакет законного кода, поэтому присутствует только вредоносный код в слегка запутанной форме. На рис. 5 показаны два фрагмента вредоносного кода для Windows, которые записываются во временные файлы и затем запускаются с помощью pythonw.exe, который используется вместо python.exe чтобы код выполнялся без открытия окна консоли.
Следующими этапами являются пакеты Python, сценарии или двоичные файлы, загруженные из Dropbox или transfer.sh.
Настойчивость
В Windows постоянство в большинстве случаев достигается с помощью Кодировка VBScript (VBE), который представляет собой закодированный файл VBScript, записанный в %APPDATA%/Pythonenv/pythenenv.vbe. На рисунке 6 показано cmd.exe скрытие каталога %APPDATA%/Pythonenv, Бег pythenenv.vbe, а затем запланировать запуск файла VBE каждые пять минут в соответствии с задачей MicrosoftWinRaRUtilityTaskB.
В Linux постоянство достигается путем размещения вредоносного запись на рабочем столе, mate-user-share.desktop, В ~ / .config / автозапуск / каталог, как показано на рисунке 7. Файлы, расположенные в папке автоматический старт каталог выполняются при каждом запуске системы. В записи на рабочем столе используется имя ПРИЯТЕЛЬ подпроект для его имени файла, но это только для того, чтобы уменьшить подозрения, поскольку оно не имеет ничего общего со средой рабочего стола.
На рис. 7 также показаны загрузки модуля. dl.dropbox[.]com/s/u3yn2g7rewly4nc/proclean в ~/.config/.kde/.kdepath. Вероятно, это попытка выдать себя за каталог конфигурации для KDE Плазменный графический интерфейс для Linux.
Бери mate-user-share.desktop файл, в свою очередь, выполняет загруженный .kdepath исполняемый файл Linux, содержащий компонент бэкдора.
Окончательная полезная нагрузка
Как правило, конечная полезная нагрузка представляет собой специальный бэкдор, который позволяет удаленно выполнять команды, фильтровать файлы и иногда включает возможность делать снимки экрана. В Windows бэкдор реализован на Python.
На рисунке 8 показан бэкдор, создающий TCP-сокет-соединение для blazywound.ignorelist[.]com на порту 6001. После отправки имени хоста, MAC-адреса и имени пользователя на C&C-сервер бэкдор будет напрямую обрабатывать некоторые команды или запускать любую другую команду в отдельном процессе и отправлять обратно на сервер выходные данные команды и любую информацию об ошибках.
В Linux бэкдор реализован на Go; см. рисунок 9 .
В некоторых случаях вместо бэкдора полезной нагрузкой является вариант пресловутого Похититель W4SPили простой монитор буфера обмена, который крадет криптовалюту, или и то, и другое. На рисунке 10 показан монитор буфера обмена, ориентированный на криптовалюты Bitcoin, Ethereum, Monero и Litecoin. Вредоносное ПО использует законные пиперклип пакет для проверки содержимого буфера обмена на наличие адресов кошельков. В случае обнаружения вредоносная программа копирует контролируемый злоумышленником адрес в буфер обмена в надежде, что жертва вставит этот адрес вместо этого в будущую транзакцию с криптовалютой.
Продукты ESET обнаруживают вредоносные пакеты Python как варианты Python/Agent и Python/TrojanDownloader, а бэкдор — как Python/Agent.AOY или Linux/Spy.Agent.BB.
На момент проведения исследования большинство пакетов уже были удалены PyPI. ESET связалась с PyPI, чтобы принять меры против остальных, и все известные вредоносные пакеты теперь отключены. Полный список из 116 пакетов можно найти в нашем Репозиторий GitHub.
Стоит отметить, что вредоносное ПО в репозитории проекта PyPI не является проблемой безопасности самого PyPI. Фактически, программное обеспечение, работающее под управлением PyPI, было недавно проверенный внешней фирмой, которая оценила, что PyPl «соответствует широко признанным передовым практикам».
Заключение
Кибератаки по-прежнему используют PyPI для компрометации устройств программистов Python. Эта кампания демонстрирует различные методы, используемые для включения вредоносного ПО в пакеты Python. Разработчики Python должны тщательно проверять загружаемый код, особенно проверяя эти методы: до установив его в свои системы. Операторы не только продолжают злоупотреблять W4SP Stealer с открытым исходным кодом, но и развернули простой, но эффективный бэкдор. Мы ожидаем, что такое злоупотребление PyPI будет продолжаться, и советуем соблюдать осторожность при установке кода из любого публичного репозитория программного обеспечения.
По любым вопросам о наших исследованиях, опубликованных на WeLiveSecurity, обращайтесь к нам по адресу угрозаintel@eset.com.
ESET Research предлагает частные аналитические отчеты об APT и потоки данных. По любым вопросам, связанным с этой услугой, посетите ESET Аналитика угроз стр.
МНК
Файлы
SHA-1 |
Имя файла |
обнаружение |
Описание |
439A5F553E4EE15EDCA1CFB77B96B02C77C5C388 |
кеш.py |
Python/Агент.AGL |
Бэкдор-загрузчик Linux.. |
B94E493579CC1B7864C70FAFB43E15D2ED14A16B |
coloramma-0.5.4-py3-none-any.whl |
Python/Агент.AGU |
Пакет с установщиком бэкдора Linux. |
AE3072A72F8C54596DCBCDE9CFE74A4146A4EF52 |
coloramma-4.5-py3-none-any.zip |
Питон/Агент.AOY |
Пакет с бэкдором Windows. |
70C271F79837B8CC42BD456A22EC51D1261ED0CA |
мусор.py |
Python/Агент.AGM |
Установщик постоянного хранения Windows. |
B0C8D6BEEE80813C8181F3038E42ADACC3848E68 |
прочистить |
Linux/Spy.Agent.BB |
Бэкдор Linux. |
07204BA8D39B20F5FCDB9C0242B112FADFFA1BB4 |
пров.ру |
Python/Агент.AGL |
Бэкдор-загрузчик Linux. |
EF59C159D3FD668C3963E5ADE3C726B8771E6F54 |
TMP |
Linux/Spy.Agent.BB |
Бэкдор Linux. |
Полный список вредоносных пакетов можно найти на нашем GitHub. репозиторий вредоносных программ-ioc.
Cеть
Доменное имя |
IP-адрес |
Первый раз увидел |
Описание |
blazywound.ignorelist[.]com |
204.152.203[.]78 |
2022-11-21 |
C&C-сервер для бэкдор-компонента. |
Техники MITER ATT & CK
Эта таблица была построена с использованием версия 14 каркаса MITER ATT & CK.
тактика |
ID |
Имя |
Описание |
Первоначальный доступ |
Компрометация цепочки поставок: компрометация зависимостей программного обеспечения и инструментов разработки |
Вредоносное ПО распространяется с помощью службы управления пакетами Python PyPl. |
|
Настойчивость |
Запланированная задача/задание: Запланированная задача |
В Windows постоянство достигается с помощью запланированного задания. |
|
Выполнение автозапуска загрузки или входа в систему: записи автозапуска XDG |
В Linux создается запись автозапуска для запуска бэкдора при входе пользователя в систему. |
||
Уклонение от защиты |
Маскарадинг: Соответствие законному имени или местоположению |
В Linux постоянные файлы имеют имена, аналогичные именам законного программного обеспечения. |
|
Доступ к учетным данным |
Учетные данные из хранилищ паролей: Учетные данные из веб-браузеров |
W4SP крадет пароли из установленных веб-браузеров. |
|
Транспортировка |
Данные буфера обмена |
Для кражи средств во время транзакции криптовалюты подменяются данные буфера обмена. |
|
Управление и контроль |
Протокол не прикладного уровня |
Бэкдор использует незашифрованный двоичный протокол TCP. |
- SEO-контент и PR-распределение. Получите усиление сегодня.
- PlatoData.Network Вертикальный генеративный ИИ. Расширьте возможности себя. Доступ здесь.
- ПлатонАйСтрим. Интеллект Web3. Расширение знаний. Доступ здесь.
- ПлатонЭСГ. Углерод, чистые технологии, Энергия, Окружающая среда, Солнечная, Управление отходами. Доступ здесь.
- ПлатонЗдоровье. Биотехнологии и клинические исследования. Доступ здесь.
- Источник: https://www.welivesecurity.com/en/eset-research/pernicious-potpourri-python-packages-pypi/
- :имеет
- :является
- :куда
- 000
- 1
- 10
- 116
- 14
- 152
- 2023
- 7
- 8
- 80
- 9
- a
- способность
- в состоянии
- О нас
- злоупотребление
- принятый
- достигнутый
- Действие
- активно
- адрес
- адреса
- консультировать
- После
- против
- Агент
- Все
- позволяет
- уже
- причислены
- среди
- an
- и
- Другой
- любой
- кто угодно
- появиться
- APT
- МЫ
- AS
- оценивается
- At
- автор
- автоматически
- доступен
- назад
- задняя дверь
- BE
- , так как:
- было
- за
- не являетесь
- верить
- ЛУЧШЕЕ
- Bitcoin
- изоферменты печени
- браузеры
- построенный
- Пакет
- но
- by
- под названием
- Кампания
- Кампании
- CAN
- способный
- случаев
- осторожность
- цепь
- проверка
- контроль
- чистым
- Кластер
- код
- COM
- общались
- скомпилированный
- компонент
- скомпрометированы
- Конфигурация
- связи
- Консоли
- обращайтесь
- содержать
- содержит
- содержание
- продолжать
- продолжается
- продолжающийся
- способствовать
- создали
- Создающий
- Полномочия
- криптовалюты
- криптовалюта
- изготовленный на заказ
- данным
- день
- определенный
- поставляется
- обеспечивает
- Зависимости
- развернуть
- компьютера
- обнаруживать
- застройщиков
- Развитие
- Устройства
- различный
- непосредственно
- открытый
- дисплеев
- распределенный
- распределение
- распределения
- do
- вниз
- скачать
- загрузка
- загрузок
- Dropbox
- в течение
- каждый
- Эффективный
- усилие
- или
- вставлять
- встроенный
- Проект и
- запись
- Окружающая среда
- ошибка
- особенно
- Эфириума
- Каждая
- выполненный
- Выполняет
- выполнение
- эксфильтрации
- ожидать
- эксплицитно
- и, что лучший способ
- факт
- FAIL
- милостей
- фигура
- Файл
- Файлы
- окончательный
- в заключение
- Фирма
- First
- 5
- Что касается
- форма
- Бывший
- формы
- найденный
- Рамки
- от
- полный
- функция
- средства
- будущее
- GitHub
- Go
- обрабатывать
- Ручки
- Есть
- помощь
- надежды
- HTTPS
- if
- изображение
- реализация
- в XNUMX году
- импортирующий
- импорт
- in
- включают
- включает в себя
- В том числе
- позорный
- информация
- Запросы
- внутри
- устанавливать
- установка
- установлен
- Установка
- вместо
- Интеллекта
- в
- вопрос
- IT
- ЕГО
- саму трезвость
- известный
- язык
- запуск
- слой
- законный
- Меньше
- библиотеки
- слегка
- LINK
- Linux
- Список
- Litecoin
- расположенный
- посмотреть
- макинтош
- Главная
- сделать
- вредоносных программ
- управление
- менеджер
- Менеджеры
- Совпадение
- Май..
- средний
- Метаданные
- средняя
- Минут
- Модули
- Модули
- Monero
- монитор
- БОЛЕЕ
- самых
- имя
- имена
- следующий
- нет
- ничего
- Уведомление..
- отметив,
- сейчас
- многочисленный
- of
- Предложения
- Официальный представитель в Грузии
- оффлайн
- on
- ONE
- те,
- только
- с открытым исходным кодом
- открытие
- операционный
- операционная система
- Операторы
- or
- Другое
- в противном случае
- наши
- выходной
- за
- пакет
- пакеты
- страница
- Пароль
- пароли
- мимо
- для
- настойчивость
- штук
- Часть
- размещение
- плазма
- Платон
- Платон Интеллектуальные данные
- ПлатонДанные
- пожалуйста
- пунктов
- Популярное
- потенциал
- PowerShell
- представить
- частная
- вероятно
- процесс
- Продукция
- Программисты
- Программирование
- Проект
- проектов
- протокол
- что такое варган?
- опубликованный
- PYPL
- Питон
- Обменный курс
- скорее
- причина
- уменьшить
- осталось
- удаленные
- заменить
- Отчеты
- хранилище
- исследованиям
- результат
- показывать
- Run
- Бег
- работает
- считаться
- планирование
- скриншоты
- скрипт
- скрипты
- Во-вторых
- безопасность
- посмотреть
- видел
- Отправить
- отправка
- отдельный
- сервер
- обслуживание
- установка
- разделение
- должен
- Шоу
- аналогичный
- просто
- с
- So
- Соцсети
- Социальная инженерия
- Software
- некоторые
- иногда
- Источник
- исходный код
- конкретный
- Этап
- этапы
- ввод в эксплуатацию
- перехватов
- магазины
- такие
- система
- системы
- ТАБЛИЦЫ
- взять
- приняты
- с
- направлены
- направлена против
- Сложность задачи
- техника
- снижения вреда
- временный
- тестXNUMX
- чем
- который
- Ассоциация
- Источник
- их
- тогда
- Там.
- Эти
- они
- В третьих
- этой
- тщательно
- угроза
- три
- Через
- время
- раз
- в
- сделка
- ОЧЕРЕДЬ
- два
- типично
- под
- загружено
- на
- us
- использование
- используемый
- Информация о пользователе
- использования
- через
- обычно
- Вариант
- разнообразие
- версия
- VET
- с помощью
- Жертва
- жертвы
- Войти
- ходил
- Кошелек
- законопроект
- Путь..
- we
- Web
- Веб-браузеры
- ЧТО Ж
- были
- любой
- Колесо
- когда
- когда бы ни
- который
- в то время как
- широко
- ширина
- будете
- окно
- окна
- без
- работает
- стоимость
- письменный
- год
- Ты
- зефирнет
- ZIP