Специалист разработал метод атаки, эксплуатирующий файл setup.py в модулях Python для запуска кода при установке пакета. Используя данный метод, атакующий может разместить в пакете вредоносный код, исполняемый с привилегиями суперпользователя, хотя не всем пактам необходим столь высокий уровень разрешений. В подтверждение теории mschwager разработал PoC-код, который опубликовал на GitHub.
Обычно модули Python устанавливаются с помощью менеджера пакетов pip, запускающего конфигурационный файл setup.py. Как правило, данному файлу уделяется мало внимания, поскольку он нужен только для добавления модуля. В связи с этим пользователи менее склонны анализировать конфигурационный файл, что предоставляет злоумышленнику легкую возможность инфицировать устройства без модификации модуля, пояснил в интервью ресурсу BleepingComputer аналитик Malwarebytes, известный в Сети как Tigzy.
Более того, код в пакетах Python может никогда не выполниться, если приложению не нужен данный функционал. Однако внедрение вредоносного кода в setup.py позволит злоумышленнику незаметно установить вредоносное ПО, невзирая, используется Python-пакет или нет.
Случаи внедрения вредоносных библиотек Python в каталоги нередки. К примеру, осенью минувшего года в хранилище пакетов PyPI были выявлены десять вредоносных библиотек. Для их загрузки злоумышленики применили метод, известный как тайпсквоттинг, то есть использовали имена, схожие с названиями легитимных пакетов, но с "опечаткой", например, "urlib" вместо "urllib".
Pip — система управления пакетами, которая используется для установки и управления программными пакетами, написанными на Python.