Юный программист разместил шифровальщика в репозитории  PyPI «шутки ради»

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

9e787824bf6183ec37b30a635927f297.jpg

Специалисты по информационной безопасности обнаружили в репозитории PyPI вредоносные пакеты requesys, requesrs и requesr, которые выдавали себя за популярный пакет requests. Отмечается, что вредоносы шифровали данные пользователей, но при этом не требовали выкупа и перенаправляли жертв на Discord-сервер с ключами для дешифровки.

Вредоносный пакет requesys версии 1.5Вредоносный пакет requesys версии 1.5

Отмечается, что пакет requesys при запуске на машинах под управлением операционной системы Windows просматривал содержимое папок Documents, Downloads и Pictures, а после этого начинал шифровать их содержимое. Также исследователи заметили, что скрипт запускался только в том случае, если имя пользователя ПК отличалось от «GIAMI». Исследователи решили, что это никнейм автора вымогателей.

Исключение имени пользователя самого разработчикаИсключение имени пользователя самого разработчика

Для шифрования данных разработчик использовал модуль fernet из библиотеки для шифрования с симметричным ключом. Этот же модуль использовался для генерации ключа для расшифровки данных. Отмечается, что первые версии пакета предоставляли ключ в виде обычного текстового файла, а в версии 1.5 разработчик перешёл к обфусцированному исполняемому файлу base64.

Всплывающее окно со ссылкой на Discord-серверВсплывающее окно со ссылкой на Discord-сервер

При успешном запуске и шифровании данных, пользователи видели всплывающее окно, которое предлагало перейти на Discord-сервер пользователя под никнеймом OHR (Only Hope Remains). Исследователи заметили, что сервер был открытым, и на него мог попасть любой желающий. На самом сервере был канал #ransomware-notifications, который содержал имена жертв и ключи для дешифрования.

Канал с именами жертв и ключамиКанал с именами жертв и ключами

Специалисты быстро нашли автора вредоносов. Выяснилось, что он использовал никнеймы OHR и b8ff в PyPI, Discord, GitHub и на других сайтах. На GitHub находился и код самого шифровальщика. Также у автора был обнаружен YouTube-канал с роликами про создание простых эксплойтов на Python. Также важно отметить, что автор указал в README-файле проекта, что он не несёт ответственности в случаях неправомерного использования кода. Однако, в пакетах PyPI никаких предупреждений не было и разработчик не пытался предупредить пользователей.

YouTube-канал разработчика. На данный момент он уже удалёнYouTube-канал разработчика. На данный момент он уже удалён

Исследователи попробовали связаться с разработчиком и сразу же получили ответ. Автор отметил, что шифровальщики полностью безобидные, не требуют выкуп и сразу же предлагают получить ключ для расшифровки данных. Сам разработчик представился школьником из Италии, который изучает Python, Lua и HTML. Созданием вымогателей юный разработчик занялся недавно и, как утверждает, был удивлен тем, с какой лёгкостью можно создать вредонос и заставить пользователей установить его.

Разговор с разработчиком помог предотвратить новые жертвы среди пользователей. Школьник согласился переименовать пакет requesys, чтобы пользователи больше не путали его с requests. Пакеты requesrs и requesr удалены из репозитория PyPI, но не до конца ясно кем. Это могли сделать как модераторы, так и сам разработчик.

© Habrahabr.ru