Вредоносные пакеты маскировались под другие более популярные библиотеки с помощью техники typosquatting.
Немецкий разработчик Лукас Мартини (Lukas Martini) обнаружил две вредоносные Python-библиотеки в каталоге пакетов Python (Python Package Index, PyPI), которые использовались для кражи SSH- и GPG-ключей из проектов зараженных разработчиков.
Библиотеки созданы разработчиком, использующим псевдоним olgired2017, и маскировались под другие более популярные библиотеки с помощью техники typosquatting для регистрации похожих имен. Первая библиотека — «python3-dateutil», имитировала популярную библиотеку «dateutil», вторая — «jeIlyfish», маскировалась под библиотеку «jellyfish».
По словам специалиста, вредоносный код присутствовал только в библиотеке jeIlyfish. Пакет python3-dateutil не содержал собственного вредоносного кода, но вместо этого импортировал библиотеку jeIlyfish.
«Код в библиотеке «jeIlyfish» загружает файл с именем «hashsum», который выглядит бессмысленно, из репозитория GitLab, затем декодирует его в Python-файл и выполняет его. Похоже, данный файл пытается извлечь SSH- и GPG-ключи с компьютера пользователя и отправить их по IP-адресу», — пояснил разработчик библиотеки «dateutil» Пол Ганссл (Paul Ganssle).
Мартини уведомил разработчиков dateutil и группу безопасности PyPI, и вредоносные библиотеки были сразу же удалены. Хотя python3-dateutil была создана и загружена в PyPI за два дня до обнаружения, библиотека jeIlyfish существовала почти год — с 11 декабря 2018 года.
Собираем и анализируем опыт профессионалов ИБ