The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Перехвачены 4 учётные записи в PyPI и выпущены вредоносные релизы num2words

31.07.2025 23:03

Раскрыта информация о жертвах фишинга, о котором на днях предупреждали администраторы репозитория Python-пакетов PyPI (Python Package Index). В результате рассылки сообщений с уведомлением о необходимости подтвердить свой email, которые ссылались на поддельный сайт pypj.org (буква "j" вместо "i"), удалось захватить учётные записи 4 сопровождающих.

В итоге злоумышленниками были сгенерированы два токена для доступа к API и опубликовано два релиза проекта num2words (0.5.15 и 0.5.16), содержащих вредоносный код. Модуль num2words, который имеет более 3 млн загрузок в месяц, предоставляет функции для преобразования чисел в текстовое написание прописью. Вредоносные релизы num2words были удалены администраторами PyPI через час после публикации.

Для обхода защиты учётной записи при помощи двухфакторной аутентификации атакующие использовали прозрачное проксирование трафика с фишингового сайта pypj.org на реальный сайт pypi.org, из-за которого у пользователя создавалось ощущение работы с реальным каталогом PyPI. Страница входа также проксировалась и атакующие контролировали не только изначально введённый пароль входа, но и ответ на проверочный запрос второго фактора аутентификации.

Для противостояния будущим атакам через проксирование доступа администраторами PyPI реализована защита, проверяющая домен через JavaScript на стороне клиента и в случае несоответствия хэшей доменов выдающая предупреждение (атакующему ничего не мешает на уровне прокси отфильтровать подобный скрипт или заменить проверочный хэш).

  1. Главная ссылка к новости (https://blog.pypi.org/posts/20...)
  2. OpenNews: Фишинг-атака на сопровождающих Python-пакеты в репозитории PyPI
  3. OpenNews: NPM-пакет Stylus был по ошибке заблокирован из-за подозрений в наличии вредоносного кода
  4. OpenNews: Google представил проект OSS Rebuild для выявления скрытых изменений в пакетах
  5. OpenNews: Фишинг позволил получить контроль над несколькими популярными NPM-пакетами
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/63656-pypi
Ключевые слова: pypi, phishing
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (41) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 23:48, 31/07/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    Если хочешь чтобы твоя учётка утекла — ничто не сможет тебе помешать.
     
  • 1.2, Аноним (2), 00:44, 01/08/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –7 +/
    > Модуль ... предоставляет функции для преобразования чисел в текстовое представление

    Н-да... Даже такое качают. Вся суть файлопомоек.

     
     
  • 2.8, Аноним (8), 06:18, 01/08/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Вся суть файлопомоек.

    Поправил.
    > Вся суть Питона.

     
     
  • 3.17, Аноним (17), 07:08, 01/08/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Если посмотреть код питона, то волосы в жилах стынут у нормальных людей.
     
     
  • 4.20, Аноним10084 и 1008465039 (?), 07:35, 01/08/2025 [^] [^^] [^^^] [ответить]  
  • +4 +/
    У нормальных людей волос в жилах нет, чтобы им в них стыть
     
  • 3.32, Аноним (2), 11:54, 01/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    и не только питона, но и безопасных языков с крейтами.
     
  • 2.24, Аноним (24), 08:53, 01/08/2025 [^] [^^] [^^^] [ответить]  
  • +4 +/
    >> Модуль ... предоставляет функции для преобразования чисел в текстовое представление
    > Н-да... Даже такое качают. Вся суть файлопомоек

    Тебе ставят задачу: нужно число 321.1 преобразовать в строку "триста двадцать одна целая и одна десятая" и чтобы работало в разных локалях. Твои действия, эксперт?

     
     
  • 3.28, Эксперт (?), 10:07, 01/08/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Разумеется, спрошу чатгопоту (два раза - сперва скопипастив твою "задачу", а получив "решение" new-str="триста двадцать одна целая и одна десятая" - задав настоящую), получу в ответ кусок кода req num2words, обнаружу что она не поддерживает русский, заплачу, кину все кубики в кошку.

     
     
  • 4.33, User (??), 12:43, 01/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Бывалый!
     
  • 3.30, Жироватт (ok), 11:11, 01/08/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Возьму модуль из БСП 1С?
     
  • 3.34, User (??), 12:46, 01/08/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну, оно и для одного русского языка - не тривиально, если что. А если еще и падеж правильный нужен м-ммм...
     
  • 2.25, bergentroll (ok), 08:57, 01/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Н-да... Даже такое качают. Вся суть файлопомоек.

    ** картинка с надменным скуфо́м «жаль, не все поймут» **

     

  • 1.3, Аноним (3), 00:46, 01/08/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    >Для обхода защиты учётной записи при помощи двухфакторной аутентификации атакующие использовали

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

     
     
  • 2.13, Ангним (?), 06:44, 01/08/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Или просто использовать менеджер паролей, который не предложит подставить креды на сайте, отличающемся в одну букву.
     
     
  • 3.26, Аноним (26), 09:27, 01/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    кого это останавливало?
    > Менеджер паролей 1Password автоматически не заполнил форму входа, но и это было проигнорировано.

    https://www.opennet.me/opennews/art.shtml?num=62964

     
     
  • 4.29, Аноним (29), 10:11, 01/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что из-за бесконечных редизайнов и улучшизмов - он без конца так делает на вполне валидных сайтах.

     
  • 2.38, Аноним9000 (?), 15:48, 01/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Passkey.
     
  • 2.39, Аноним (39), 16:16, 01/08/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     

  • 1.4, Аноним (4), 01:20, 01/08/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Для обхода защиты учётной записи при помощи двухфакторной аутентификации атакующие использовали прозрачное проксирование трафика с фишингового сайта pypj.org на реальный сайт pypi.org

    Вариант атаки "обман, выполненный мафией".

     
  • 1.5, Аноним (5), 01:58, 01/08/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Да профиксите уже латынь - уберите j или i.
    И ещё есть баг с клавиатурой, буквы "m" и "n" находятся рядом - тоже перепутают!
     
     
  • 2.7, Аноним (7), 06:07, 01/08/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    В латыни "I i" и "J j" -- это разные графические представления одной и той же буквы. Примерно как в кириллице буква "Г г" имеет графический аналог "Ƨ ƨ".
     
     
  • 3.9, Аноним (8), 06:21, 01/08/2025 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Опять поиск привычного следа? В кириллице нет "i" и  "j". Оставьте их уж себе вместе со всеми иными "преимуществами".
     
     
  • 4.11, MazikOttogi (ok), 06:36, 01/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Взорвался на ровном месте, несите следующего
     
     
  • 5.31, Аноним (8), 11:19, 01/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ваши оскорбления подтверждают, что попытка выстроить сомнительную логическую цепочку была целенаправленной провокацией.
     
     
  • 6.40, MazikOttogi (ok), 18:07, 01/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Сначала невежливость на простую аналогию анонима выше, теперь "оскорбления и целенаправленные провокации". Спокойствия там, никто даже не хамил в ответ.
     

  • 1.6, jkl2025 (?), 04:02, 01/08/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Надо было владельцам pypi.org регистрировать заодно и pypj.org
     
     
  • 2.10, Аноним (8), 06:23, 01/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Microsoft и другие так и делают. Но у этих, видимо, 1000 руб. в год не нашлось на поддержку имени (даже сайт хостить не нужно).
     
     
  • 3.12, Аноним (12), 06:42, 01/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Сколько ты им пожертвовал, чтобы было 1000 руб. в год?
     
     
  • 4.16, Аноним (17), 07:05, 01/08/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Зачем им жертвовать когда они дураки и не лечатся?
     
  • 4.18, Аноним (18), 07:15, 01/08/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Зачем платить? Если можно заплатить только за интернет, а всё остальное с зелёного магазина.
    Пока другие "грамотные потребители" платят подписки и делаются доступа, другие направляют эти деньги на домашний сервер, где есть библиотека контента, в высоком качестве, с несколькими языковыми дорожками, нативно без лишних приложений, без DRM, оффлайн...
     
     
  • 5.21, Аноним (18), 07:51, 01/08/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ещё можно Wi-Fi соседа использовать
     
  • 4.19, Аноним (8), 07:33, 01/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Сколько ты им пожертвовал, чтобы было 1000 руб. в год?

    Майкрософту? Нисколько. Я у них Windows и коробочный Office стандарт купил.

     
     
  • 5.22, Аноним (5), 08:00, 01/08/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну и зря, если ты не юр лицо конечно. Запланированное устаривание не кто не отменял.

    А если Windows 11, то можно спокойно сказать версию Pro, и офис pro тоже активировать парой команд. А если роутер позволяет, то её можно поднять на нём автоматическую активациию)

     

  • 1.14, Аноним (14), 06:46, 01/08/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Хоть прячься хоть не прячься...

    отсыпьте пожалуйста фишинговых сайтов.. эксперименты попроводить над ними

     
  • 1.15, Аноним (17), 07:04, 01/08/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Пакет для преобразования строки в считали и версия аж 0.5.12? CS настолько в упадке, что там учат только требовать огромную зп? Мдааа
     
     
  • 2.23, Аноним (24), 08:47, 01/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Пакет для преобразования строки в считали

    Во что преобразования, простите?

     
  • 2.36, Аноним (36), 15:21, 01/08/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Пакет для преобразования строки в считали и версия аж 0.5.12? CS настолько в упадке, что там учат только требовать огромную зп? Мдааа

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

     
     
  • 3.41, Аноним (2), 18:22, 01/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Т.е. можно даже не ждать их, а сделать самим код под нужные конкретные языки.
     
  • 2.42, Аноним (42), 18:43, 01/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Претензии лучше по делу. В стандартной библиотеке С/С++, как и в других языках, тоже есть функции работы со строками и преобразования типов и строк. Зачем их писать самому-то?
     

  • 1.35, Аноним (35), 12:53, 01/08/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Мда, печально, но закономерно. Чтож, они сами выбрали такую модель распространения пакетов. Ждем такие же новости из лагеря свалочников.
     
     
  • 2.37, Аноним (36), 15:29, 01/08/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А что такого уникального в их модели? Выфишить доступ можно куда угодно, хоть к crates.io, хоть к гитхабу, хоть к cpan, хоть к репозиториям дистрибутивов. Нельзя разве что к локалхостам, но если все будут хостить свой код на локалхостах риски будут намного выше.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2025 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру