Не знаю знаете вы или нет, но помимо классических вредоносных программ существуют еще и закладки в репозитории Python Package Index (PyPI). Это откуда вы при выполнении команды
pip install устанавливаете себе в проект библиотеки 🍔Что за закладки? 🤔
Злоумышленники добавляют как свои репозитории, так и коммитят в опенсорс репы, например, клипперы (трояны, ворующие данные из буфера обмена — clipboard) или стилеры (обходят диски в поисках файлов
.env, добывают ключи SSH из стандартных путей и отправляют все добро на сервер злоумышленника с помощью утилиты curl).Вот несколько проектов, которые нашел PT PyAnalysis только за последние дни:
- Кампания с Android-стилером, содержащим арабские комментарии. Он отправляет файлы через телеграм-бот, токен которого вшит в коде. Пакеты имеют название как у популярных библиотек, но с одной ошибкой:
raquest, ebell.- Серия клипперов, косящих под проверки лицензии. Закрепляются на устройствах под управлением Windows, добавляя запись автозагрузки в реестр. Слушают буфер обмена каждую секунду, в случае изменений отправляют данные в дискорд-канал. Пакеты имеют названия вида
testjsonn1, testjson2, gentorqkkh.- Стилер, обходящий диски в поисках файлов
.env, добывающий ключи SSH из стандартных путей и отправляющий все добро на сервер злоумышленника с помощью утилиты curl. Имеет логику, зависящую от целевой платформы: отдельную — для Windows, отдельную — для Linux и MacOS. Пакет: popeye-pip-v3. Имя разработчика говорит само за себя: shyam_the_hacker.Python Package Index уведомили, пакеты выпилены 😎
Несмотря на то, что названия этих пакетов выглядят незамысловато и вряд ли вы опечатаетесь, написав
raquest вместо requests, такие пакеты могут попасть к вам через транзитивные зависимости.👨💻 Решения для коммерческой разработки:
Построение внутреннего защищенного зеркала — сложный, но жизненно важный элемент для обеспечения современной безопасной разработки.
🛁 Решение для домашнего использования:
Выдерживать карантин - хотя бы 2-4 недели после выпуска очередной версии библиотеки. Хотя бы поверхностно пробегать по коду новой зависимости. Иногда бывает, что вредоносного кода нет, но есть комментарии с разными политическими и не очень лозунгами 🙄
Поставьте 🦄, если такое интересно читать тут
