Pip Install Malware?!


Введение

Если вы являетесь разработчиком Python, то вы знаете о pip. Однако знаете ли вы о потенциальной угрозе вредоносного ПО, связанной с рекомендуемой системой управления пакетами Python? В этой статье мы обсудим угрозы безопасности, связанные с pip, и то, что вы можете сделать, чтобы защитить себя от них.

Что такое PIP?

Package Installer for Python или (pip) — это де-факто и рекомендуемая система управления пакетами, написанная на Python и используемая для установки и управления пакетами программного обеспечения. Она подключается к онлайн-репозиторию общедоступных пакетов, называемому Python Package Index (PyPI). Например, допустим, вы хотите установить модуль request. Вы можете использовать следующий синтаксис:

pip install request
Войти в полноэкранный режим Выйти из полноэкранного режима

Эта команда загрузит исходный код пакета request и установит его в вашу локальную среду Python, что позволит вам использовать его функциональность.

Уязвимости PIP

В общей практике разработчики Python обычно загружают безопасный и этичный код в репозиторий PyPI. Однако, вы будете удивлены, узнав, что не существует никаких сторонних проверок кода, загружаемого в PyPI. Единственное ограничение заключается в том, что если имя пакета существует, то только сопровождающий(ие) может загружать пакеты с таким именем. Это означает, что вы не можете отправить пакет, используя уже существующее имя.

К сожалению, этой особенностью безопасности можно воспользоваться. В 2016 году исследование доказало, что PyPI может быть использован через typosquatting. Исследователь загрузил в PyPI несколько безобидных «имитационных вредоносных программ» под именами, которые были ошибочными версиями популярных названий пакетов, чтобы собрать данные о том, как часто устанавливаются эти ошибочные пакеты. Если бы этим занимался скрипт-кидди или хакер в черной шляпе, он мог бы использовать гораздо более вредоносный скрипт.

Вредоносное ПО на PyPI

28 июля 2022 года исследователи из Sonatype обнаружили вредоносный код на PyPI. Пакеты назывались "requesys," "requesrs," и "requesr,", которые являются обычными опечатками "requests" — легитимной и широко используемой HTTP-библиотеки для Python. Sonatype немедленно сообщила об этом администраторам PyPI, и два пакета были удалены.

По данным исследователей из Sonatype, пакет (requesys) был загружен около 258 раз, предположительно разработчиками, которые допустили опечатку при попытке загрузить настоящий пакет "requests". Одна из версий пакета requesys содержала код шифрования и дешифрования в Python в открытом виде. Но последующая версия содержала Base64-обфусцированный исполняемый файл, что немного усложнило анализ, согласно Sonatype.

Ничего опасного не обнаружено

По данным Sonatype, разработчики, у которых система оказалась зашифрована, получали всплывающее сообщение с инструкцией связаться с автором пакета для получения ключа расшифровки. Жертвы смогли получить ключ расшифровки без необходимости совершать за него оплату. Что, по мнению Sonatype, «делает этот случай скорее «серой зоной», чем откровенно вредоносной деятельностью».

Информация на канале Discord хакера показывает, что по меньшей мере 15 жертв установили и запустили пакет.

Растущая угроза

Этот случай — один из растущего числа недавних происшествий, когда хакеры прячут вредоносный код в широко используемых репозиториях программного обеспечения, чтобы заманить разработчиков загрузить и установить его в своих средах. Например, в мае компания Sonatype обнаружила, что 300 разработчиков по ошибке скачали "Pymafka", вредоносную программу для распространения Cobalt Strike, из реестра PyPI, думая, что это популярный и надежный клиент Kafka "PyKafka".

В июле исследователи из Kaspersky обнаружили четыре пакета для кражи информации в репозитории Node Package Manager (npm).

Заключение

Надеюсь, после прочтения этой статьи вы поняли, почему важно обращать пристальное внимание на то, что вы загружаете из публичных репозиториев кода, таких как PyPI. Исследователи безопасности утверждают, что организации должны уделять больше внимания своим цепочкам поставок программного обеспечения - особенно когда речь идет об использовании открытого программного обеспечения из публичных репозиториев, таких как PyPI. Помните, что вы, как разработчики Python, всегда несете ответственность за безопасность своих пакетов. Будьте очень осторожны при вводе имен популярных библиотек, так как typosquatting является одним из наиболее распространенных методов такой эксплуатации.

Кроме того, нелишним будет принять упреждающие меры по защите ваших файлов в повседневной работе. Используйте надежные антивирусные программы и программы защиты от вредоносных программ, используйте безопасный & надежные пароли, всегда используйте безопасное подключение к Интернету, и всегда, всегда, всегда - создавайте резервные копии своих данных!

Если вы нашли эту статью полезной или у вас есть вопросы, пожалуйста, оставьте комментарий. 

Оцените статью
devanswers.ru
Добавить комментарий