Школьник создал три мощных шифровальщика ради развлечения. В ловушку попались сотни программистов на Python
Школьник из Италии создал три шифровальщика и разместил их в репозитории PyPI для программистов на Python. Это был его эксперимент – он создал их ради развлечения, чтобы посмотреть, как много людей попадется на его уловку. Один из трех файлов был скачан свыше 250 раз. Ключи дешифровки школьник раздает бесплатно – инструкция по их получению состоит из нескольких простых пунктов, а сами ключи лежат в свободном доступе в интернете.
Подающий надежды юный вирусописатель
В репозитории ПО PyPI для программирования на Python (самый популярный язык программирования в мире) обнаружились залежи вредоносного ПО. Малвари выявили эксперты компании Sonatype, инициировавшие расследование их происхождения. В результате выяснилось, что за этими программами стоит не хакерская группировка, состоящая из матерых великовозрастных хакеров, а всего лишь один школьник, которому очень понравилось создавать эксплойты.
По данным Sonatype, выгрузил в PyPI три вредоносных пакета под названием requesys, requesrs и requesr. Наименования для своих творений юный программист выбрал не случайно – он намеренно сделал так, чтобы они звучали созвучно с requests. Так называется популярная среди Python-разработчиков библиотека, и таким образом школьник повысил вероятность скачивания своих файлов невнимательными разработчиками.
Использование любого из этих поддельных пакетов может привести к весьма печальным последствия. Например, библиотека requesys содержат сценарии, которые просматривают папки пользователя Windows, включая «Документы», «Загрузки», «Изображения», после чего шифруют их содержимое.
Пакет requesys в версии 1.0-1.4 содержит код шифрования и дешифрования, представленный в открытом виде на коде Python. Но в версии 1.5 автор перешел к с трудом поддающемуся анализу исполняемому файлу base64.
Шифрование данных творение школьника реализовывало за счет модуля Fernet, который обеспечивает шифрование с симметричным ключом. Его же юный создатель вредоносов использовал и для дешифровки.
Благородный хакер
Школьник, выгрузивший вредоносы в PyPI, явно не стремился обогатиться за счет разработчиков, попавшихся на его уловку с переименованием опасных библиотек. Все его пакеты перенаправляют жертв на сервер в мессенджере Discord, где он разместил ключи для дешифровки. Никаких денег за них он не требует – они лежат, фактически, в открытом доступе.
Вредоносы предлагают посетить сервер OHR (Only Hope Remains), подключиться к которому может каждый. Эксперты Sonatype обнаружили на этом сервере канал #ransomware-notifications со списком людей, попавшихся на уловку юного программиста. На момент выхода материала он состоял из 15 пунктов, притом последние были добавлены сравнительно недавно – 31 июля 2022 г. Здесь же были размещены ключи для дешифровки.
Список, по всей видимости, далеко не полный – жертв может быть намного больше. Это следует из количества скачиваний пакета requesys – их уже около 260.
В коде вредоносов указано, что они не запустятся на ПК с пользователем GIAMI. Аналитики Sonatype предположили, что это имя создателя файлов.
Поиск автора
Эксперты Sonatype очень быстро вышли на создателя requesys, requesrs и requesr. В данном случае есть два варианта – или он намеренно не пытался скрываться, или еще не познал принципы заметания следов в интернете.
Основными «уликами» против школьника послужили его никнейм в репозитории PyPI, где он подписан как b8ff, и название созданного им Discord-сервера – OHR.
Исследователи выяснили, что те же псевдонимы он использовал и в других сервисах, включая принадлежащий Microsoft GitHub. Более того, в своем репозитории на GitHub он выложил в открытом доступе код своего шифровальщика.
Код эксплойта, опубликованный на GitHub, заканчивается предупреждением о том, что автор не несет ответственности за неправомерное использование эксплойтов для программ-вымогателей.
Затем «следователи» обнаружили, что у школьника есть канал на YouTube с некоторыми обучающими программами по взлому. На момент публикации материала владелец удалил его.
После этого было принято решение связаться с автором вредоносов через Discord, и тот, на удивление, сразу пошел на контакт. В разговоре он подчеркнул, что скрипт программы-вымогателя в созданных им пакетах поставляется с «полностью открытым исходным кодом» и является частью проекта, который я «разработал для развлечения». Несмотря на наличие пакетов, содержащих код, шифрующий пользовательские данные, автор считает эти пакеты технически «безвредными».
«Технически у программы-вымогателя нет выкупа, – сказал b8ff в разговоре с сотрудниками Sonatype, имея в виду, что автор не требует оплаты после шифрования. «Все ключи дешифрования отправлены в канал #ransomware-notifications на моем сервере Discord».
Проживающий Вероне (Италия), b8ff представил себя как школьника, интересующегося разработкой ПО, который был впечатлен эксплойтами и простотой их создания. «Я все еще учусь в школе и на данный момент знаю Python, Lua, HTML и немного CPP, вот и все», – добавил школьник.
После беседы с экспертами Sonatype школьник переименовал библиотеку requesys, чтобы предотвратить дальнейшее распространение вредоноса. Два других его проекта таинственным образом исчезли – в репозитории PyPI их больше нет. Кто именно удалил их, сам автор или модераторы ресурса, неизвестно.