banner
Дом / Новости / VMConnect: вредоносные пакеты PyPI имитируют популярные модули с открытым исходным кодом
Новости

VMConnect: вредоносные пакеты PyPI имитируют популярные модули с открытым исходным кодом

Jul 28, 2023Jul 28, 2023

Главная » Календарь редакций » Безопасность цепочки поставок программного обеспечения » VMConnect: вредоносные пакеты PyPI имитируют популярные модули с открытым исходным кодом

ReversingLabs обнаружила несколько вредоносных пакетов Python в репозитории с открытым исходным кодом Python Package Index (PyPI). В общей сложности исследователи ReversingLabs обнаружили 24 вредоносных пакета, имитирующих три популярных инструмента Python с открытым исходным кодом: vConnector, модуль-оболочку для привязок pyVmomi VMware vSphere; а также eth-tester — набор инструментов для тестирования приложений на базе Ethereum; и базы данных,инструмент, обеспечивающий асинхронную поддержку ряда баз данных.

По наблюдениям исследовательской группы, кампания началась примерно 28 июля 2023 года, когда был опубликован первый из вредоносных пакетов. Это продолжается и по сей день: новые вредоносные пакеты PyPI публикуются ежедневно по мере обнаружения и удаления предыдущих пакетов.

В отличие от других недавних кампаний по цепочке поставок, таких как Operation Brainleeches, вредоносные пакеты, составляющие эту кампанию, свидетельствуют о согласованных усилиях по обману разработчиков. Они достигают этого, реализуя всю функциональность модулей, которые они имитируют, и создавая соответствующие и связанные проекты GitHub, в которых отсутствуют вредоносные функции, обнаруженные в пакете выпуска PyPI.

Подобное поведение мы наблюдаем уже не первый раз. Например, в июне 2022 года мы обнаружили вредоносный пакет npm, Maintenancewebsite, который использовал аналогичный подход для сокрытия функций криптомайнинга. Кампания VMConnect — это последний пример использования модулей с открытым исходным кодом для распространения вредоносного кода и еще одно свидетельство того, что оценки безопасности репозиториев с открытым исходным кодом могут пропустить эти нюансы атак.

Исследовательская группа ReversingLabs постоянно отслеживает репозитории пакетов с открытым исходным кодом на предмет случаев подделки вредоносного кода, установки вредоносных пакетов или зависимостей и других форм атак в цепочке поставок программного обеспечения. Эта работа включает в себя как автоматическое, так и ручное сканирование и анализ пакетов, опубликованных в самых популярных общедоступных репозиториях пакетов, таких как npm, PyPI, Ruby и NuGet.

Исторически сложилось так, что подавляющее большинство выявленных нами вредоносных кампаний в цепочке поставок было обнаружено в репозитории с открытым исходным кодом npm, в котором находится львиная доля проектов и разработчиков с открытым исходным кодом. Однако в последние месяцы на других платформах, в частности на Python Package Index (PyPI), возросла вредоносная активность. Например, в феврале исследователи ReversingLabs обнаружили 41 вредоносный пакет PyPI, выдававший себя за HTTP-библиотеки, причем некоторые из них имитировали популярные и широко используемые библиотеки. В марте мы столкнулись с вредоносным пакетом PyPI под названием termcolour — трехэтапным загрузчиком, опубликованным в нескольких версиях и заимствовавшим название несуществующего пакета PyPI. Затем, в мае, PyPI на короткое время прекратил принимать новые материалы после того, как был перегружен вредоносными материалами.

Исследователи угроз ReversingLabs выявили новую вредоносную кампанию PyPI, которая включает в себя подозрительный пакет VMConnect, опубликованный в репозитории PyPI.

Этот пакет был признан подозрительным во время планового сканирования с помощью ReversingLabs Titanium Platform — мощного механизма статического анализа, способного извлекать различные типы метаданных из широкого спектра форматов файлов.

Помимо различных типов метаданных, платформа ReversingLabs Titanium также способна извлекать индикаторы поведения, что упрощает понимание функциональных возможностей файла. Именно эта возможность привлекла наше внимание к файлу _init_.py в VMConnect. Код внутри файла __init__.py VMConnect способен создавать процесс, декодировать данные с помощью алгоритма Base64 и преобразовывать двоичные данные в их строковое представление — поведение, обычно используемое при обфускации. Именно такое сочетание поведения послужило толчком к первоначальному обнаружению и побудило к дальнейшему расследованию.

Рис. 1. Индикаторы поведения, извлеченные из пакета VMConnect.