Установка Python-пакетов может спровоцировать запуск вредоносного кода

Установка Python-пакетов может спровоцировать запуск вредоносного кода

Эксперт представил метод атаки, эксплуатирующий файл setup.py в модулях Python для запуска кода при установке пакета.

Язык программирования Python позволяет инсталляцию пакетов, которые затем могут быть включены в состав приложения для расширения его возможностей. При запуске программы исполняется и код в пакетах, однако этот код также может выполняться в процессе установки самого пакета. Как продемонстрировал исследователь под псевдонимом mschwager, данная особенность может быть использована для запуска вредоносного кода.

Специалист разработал метод атаки, эксплуатирующий файл setup.py в модулях Python для запуска кода при установке пакета. Используя данный метод, атакующий может разместить в пакете вредоносный код, исполняемый с привилегиями суперпользователя, хотя не всем пактам необходим столь высокий уровень разрешений. В подтверждение теории mschwager разработал PoC-код, который опубликовал на GitHub.

Обычно модули Python устанавливаются с помощью менеджера пакетов pip, запускающего конфигурационный файл setup.py. Как правило, данному файлу уделяется мало внимания, поскольку он нужен только для добавления модуля. В связи с этим пользователи менее склонны анализировать конфигурационный файл, что предоставляет злоумышленнику легкую возможность инфицировать устройства без модификации модуля, пояснил в интервью ресурсу BleepingComputer аналитик Malwarebytes, известный в Сети как Tigzy.

Более того, код в пакетах Python может никогда не выполниться, если приложению не нужен данный функционал. Однако внедрение вредоносного кода в setup.py позволит злоумышленнику незаметно установить вредоносное ПО, невзирая, используется Python-пакет или нет.

Случаи внедрения вредоносных библиотек Python в каталоги нередки. К примеру, осенью минувшего года в хранилище пакетов PyPI были выявлены десять вредоносных библиотек. Для их загрузки злоумышленики применили метод, известный как тайпсквоттинг, то есть использовали имена, схожие с названиями легитимных пакетов, но с «опечаткой», например, «urlib» вместо «urllib».

Pip — система управления пакетами, которая используется для установки и управления программными пакетами, написанными на Python.

ВЕБИНАРЫ ПО КИБЕРБЕЗОПАСНОСТИ

Обнаружение и реагирование на угрозы в сетевом трафике

Хотите улучшить кибербезопасность вашей компании? Узнайте о последних трендах в системах анализа трафика!

Присоединяйтесь к нашему вебинару и откройте для себя, как современные NTA и NDR-решения повышают эффективность защиты.

Зарегистрироваться на вебинар
Повысьте эффективность вашей песочницы

PT Sandbox: баланс между производительностью и качеством обнаружения. Освойте тонкости настройки!

Получите практические советы от руководителя экспертизы и бонусный гайд по пользовательским правилам.

Зарегистрироваться сейчас