Обнаружен метод исполнения вредоносного кода при установке Python-пакетов
Новости
Злоумышленник может заразить конфигурационный файл, используемый для установки Python-пакетов. Малварь активируется при вызове pip install.
2К открытий2К показов
Пользователь GitHub под ником mschwager опубликовал PoC-код заражения системы малварью, которая активируется во время установки Python-пакетов. Она действует через конфигурационный файл setup.py
и в итоге получает root-права.
Как происходит заражение?
Для установки пакетов разработчики используют менеджер pip, который обращается к конфигурационному файлу setup.py
. Чтобы проиллюстрировать атаку, mschwager создал Python-пакет 0wned
. Тот обращается к модулю setuptools
конфигурационного файла и прописывает в нем собственный класс PostInstallCommand
, способный исполнять любой код с правами администратора или суперпользователя.
При запуске команды pip install
активируется и пользовательский класс PostInstallCommand
, который содержит вредоносный код.
Как пояснил Bleeping Computer со ссылкой на эксперта под ником Tigzy, разработчики проверяют подключаемые модули, но на конфигурационный файл редко обращают внимание. Это позволяет злоумышленнику атаковать устройство, при этом не подменяя сам модуль.
Как защититься?
- Устанавливать Python-пакеты с флагом
--user
, чтобы в случае заражения малварь не получила права администратора. - Использовать флаг
--require-hashes
, чтобы исключить удаленную подмену пакетов. - Проверять название пакета, поскольку вредоносное ПО часто маскируется под популярные модули (к примеру,
urlib
вместо легитимногоurllib
).
Python — высокоуровневый язык программирования, который появился в начале 90-х. В 2018 году он вошел в тройку самых популярных среди разработчиков, обогнав C++, хотя эксперты TIOBE считают, что у него есть все шансы занять первую строчку. По их мнению, Python легок в изучении и развертывании приложений, однако и он не лишен уязвимостей. В июле 2018 года команда GitHub запустила автоматическую проверку Python-проектов на бреши, и тот почти сразу выявил несколько новых.
2К открытий2К показов