
Изображение: ZDNet
Команда безопасности Python удалила две троянские библиотеки Python из PyPI (индекс пакетов Python), которые были пойманы на краже ключей SSH и GPG из проектов зараженных разработчиков.
Эти две библиотеки были созданы одним и тем же разработчиком и имитировал другие более популярные библиотеки — используя технику, называемую typosquatting, для регистрации похожих имен.
Первая — это «python3-dateutil», которая имитирует популярную библиотеку «dateutil». Второй — «jeIlyfish» (первая буква «L» — I), имитирующая библиотеку «медузы».
Два вредоносных клона были обнаружены в воскресенье, 1 декабря, немецким разработчиком программного обеспечения Лукасом Мартини. Обе библиотеки были удалены в тот же день после того, как Мартини уведомил разработчиков dateutil и группу безопасности PyPI.
Хотя python3-dateutil был создан и загружен в PyPI за два дня до этого, 29 ноября, библиотека jeIlyfish была доступна. почти год, с 11 декабря 2018 года.
Кража ключей SSH и GPG
По словам Мартини, вредоносный код присутствовал только в библиотеке jeIlyfish. Пакет python3-dateutil не содержал собственного вредоносного кода, но он импортировал библиотеку jeIlyfish, что означало, что он был вредоносным по ассоциации.
Код загрузил и прочитал список хэшей, хранящихся в репозитории GitLab. , Природа и назначение этих хэшей были изначально неизвестны, так как ни Мартини, ни команда PyPI подробно не описали поведение до того, как библиотека была быстро удалена из PyPI.
ZDNet попросил сегодня Пола Гэнссла, члена команды разработчиков dateutil, поближе взглянуть на вредоносный код и оценить его для наших читателей.
«Код непосредственно в библиотеке« jeIlyfish »загружает файл с именем 'hashsum', который выглядит как бессмыслица из репозитория gitlab, затем декодирует его в файл Python и выполняет его», — сказал Гансле ZDNet .
. ]
«Похоже, [this file] пытается отфильтровать ключи SSH и GPG с компьютера пользователя и отправить их по этому IP-адресу: http://68.183.212.246:32258 .»
«В нем также перечислены несколько каталогов, домашний каталог, каталог проектов PyCharm», — добавил Гансле. «Если бы мне пришлось угадывать, какова цель этого, я бы сказал, чтобы выяснить, для каких проектов работают учетные данные, чтобы злоумышленник мог скомпрометировать проекты этого человека».
Разработчики посоветовали рассмотреть проекты
Обе вредоносные библиотеки были загружены в PyPI одним и тем же разработчиком, который использовал имя пользователя olgired2017 — также используется для учетной записи GitLab.
Считается, что olgired2017 создал клон dateutil в попытаться извлечь выгоду из популярности библиотеки оригинала и увеличить охват вредоносного кода; однако, это также привлекло больше внимания со стороны большего количества разработчиков и в конечном итоге привело к раскрытию всей его работы.
За исключением вредоносного кода, оба пакета с опечатками были идентичными копиями исходных библиотек, то есть они работали бы как оригиналы .
Разработчики, которые не обращали внимания на библиотеки, которые они загрузили или импортировали в свои проекты, должны проверить, не использовали ли они правильные имена пакетов и случайно ли не опечатанные версии.
Если они случайно использовали один из двух, разработчикам рекомендуется изменить все ключи SSH и GPG, которые они использовали за последний год.
Это уже третий раз, когда команда PyPI вмешивается, чтобы удалить опечатку. Присевшие на корточки вредоносные библиотеки Python из официального репозитория. Подобные инциденты произошли в сентябре 2017 года (десять библиотек), октябре 2018 года (12 библиотек) и июле 2019 года (три библиотеки).
Статья обновлена через час после публикации с анализом Гансле.