The OpenNET Project / Index page

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

Каталог PyPI внедрил новую систему проверки подлинности пакетов

14.11.2024 20:20

Разработчики репозитория Python-пакетов PyPI (Python Package Index) объявили о внедрении поддержки механизма цифровой аттестации для проверки подлинности опубликованных пакетов, которая пришла на смену верификации с использованием PGP-подписей. Ключевым отличием аттестации является то, что публикация пакета заверяется не разработчиком, а третьим лицом (каталогом пакетов) после подтверждения достоверности публикации через внешнего провайдера OpenID Connect (например, после проверки, что публикуемый пакет соотносится со связанным с ним репозиторием на GitHub или GitLab).

Система аттестации устраняет недостатки, свойственные механизму верификации по PGP-подписям, который ранее был объявлен в PyPI устаревшим. Данное решение принято из-за проблем с проверкой принадлежности разработчикам открытых PGP-ключей, используемых для проверки цифровых подписей - из 1069 PGP-ключей, использованных с 2020 года для формирования подписей в PyPI, 29% открытых ключей отсутствовали на крупных публичных серверах ключей, а 35% ключей оказалось невозможно подтвердить в ходе аудита. При этом подтверждённые 36% PGP-ключей охватывали лишь 0.3% от всех подписанных файлов.

В новой системе используемые для заверения пакетов подписи создаются с использованием короткоживущих эфемерных ключей, генерируемых на основе полномочий, подтверждённых провайдерами OpenID Connect. В момент генерации ключей, необходимых для создания цифровой подписи, разработчик идентифицирует себя через провайдера OpenID, подтверждающего его связь с основным проектом. Инфраструктура для цифровой аттестации построена при помощи системы Sigstore и инструментария in-toto Attestation Framework.

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

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

Дополнительно можно отметить выявление в каталоге PyPI вредоносного пакета "fabrice", который при помощи тайпсквотинга (назначение похожих имён, отличающихся отдельными символами, например, exampl вместо example, djangoo вместо django, pyhton вместо python и т.п.) маскировался под популярную библиотеку "fabric", насчитывающую 201 миллионов загрузок (7 миллионов загрузок за прошлый месяц). Вредоносный пакет оставался незамеченным с 2021 года и с тех пор был загружен более 37 тысяч раз.

Пакет "fabrice" повторял базовую функциональность исходной библиотеки и дополнительно включал код для выявления и отправки на внешних хост ключей для доступа к AWS (Amazon Web Services), установки бэкдора и выполнения определённых скриптов. Активация вредоносных компонентов производилась в Linux и Windows. В Linux связанные с вредоносной активностью файлы загружались в каталог ~/.local/bin/vscode.

  1. Главная ссылка к новости (https://blog.pypi.org/posts/20...)
  2. OpenNews: Утечка токена для полного доступа к GitHub-репозиториям проекта Python
  3. OpenNews: Атакующие получили доступ к 174 учётным записям в каталоге PyPI
  4. OpenNews: Каталог PyPI перешёл на обязательную двухфакторную аутентификацию
  5. OpenNews: PyPI пересмотрит политику в отношении персональных данных и прекратит поддержку PGP-подписей
  6. OpenNews: В PyPI реализована возможность публикации пакетов без привязки к паролям и токенам API
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/62234-pypi
Ключевые слова: pypi, python
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (36) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 20:52, 14/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Вот поэтому всё нужно писать с нуля самостоятельно. Это быстрее и надёжнее, чем качать 100500 надстроек и прослоек, которые написаны не пойми кем и вполне себе могут быть напичканы бэкдорами. Любители фреймворков можете критиковать, но в таком случае задумайтесь, чем вы отличаетесь от ф///шистов, который точно так же нетерпимы ко всему, что не вписывается в их мировоззрение.
     
     
  • 2.6, Аноним (6), 21:27, 14/11/2024 [^] [^^] [^^^] [ответить]  
  • +4 +/
    >Вот поэтому всё нужно писать с нуля самостоятельно

    Ок, будь последователен - начинай новый проект с написания tcp-стека. Ой, нет, в эзернете же тоже может быть что-то плохое. Так, погоди, а с физикой что будем делать? Наверняка там китайцы свои китайские фотоны гоняют. Придется паять своё. Возвращайся лет через 10, расскажешь как всё быстро и надёжно.

     
     
  • 3.12, Аноним (12), 22:00, 14/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Обычно tcp уже реализован в самой системе, так что придумай что-то более остроумное, если уж так хочется выступать в роли вaньки бaлaгaнного.
     
     
  • 4.16, ОШИБКА Отсутствуют данные в поле Name (?), 22:32, 14/11/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ну значится систему надо обязательно свою иметь, самописанную. И чтоб ни строчки чужого кода.
     
     
  • 5.21, Аноним (21), 23:15, 14/11/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Так то он прав. Нужно определиться с какого момента мы начинаем полагаться на чужой код? С ОС, драйверов, ЯП?
     
  • 2.17, Аноним (-), 22:33, 14/11/2024 Скрыто ботом-модератором     [к модератору]
  • +/
     
     
  • 3.22, Аноним (22), 23:26, 14/11/2024 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 2.25, Аноним (25), 23:44, 14/11/2024 Скрыто ботом-модератором     [к модератору]
  • +2 +/
     
  • 2.31, foo (?), 00:04, 15/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >Вот поэтому всё нужно писать с нуля самостоятельно.

    Особенно криптографические функции.

     
     
  • 3.35, Ivan_83 (ok), 00:18, 15/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Я пишу крипту сам (реализации имеющихся алгоритмов), ничего плохого в этом нет.
     
     
  • 4.42, Аноним (42), 01:14, 15/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    где можно посмотреть на твои творения?
     

  • 1.4, Аноним (4), 21:12, 14/11/2024 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +1 +/
     

     ....ответы скрыты (4)

  • 1.8, Аноним (-), 21:31, 14/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Все правильно. PGP показал свою бесполезность уже давно.
    Пользоваться имеет смысл только если есть подписи с личным подтверждением.
    Иначе получается что это чел, который знает чела, который бухал на PGP-пати с знакомым твоего знакомого. А кто там что понаподписывал - одному богу известно.
     
     
  • 2.24, нах. (?), 23:30, 14/11/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Все правильно. PGP показал свою бесполезность уже давно.

    для тех кто не понимает что это и для чего на самом деле используется - показал.
    (кстати, вероятно, нынешние разработчики впихона именно такие, альтернативно-одаренные)

    > Иначе получается что это чел, который знает чела, который бухал на PGP-пати с знакомым твоего
    > знакомого.

    да ты можешь лично проверить паспорт Juan Tjan - как это поможет от написанного им троянца?

    Единственное, что на самом деле подтверждала pgp-подпись - это что пакет подписан тем же самым человеком что и в прошлый раз. (А дальше уже от тебя зависит, насколько ты доверяешь этому человеку и его коду. Если ты и прошлый раз в него даже не заглянул - то в общем-то, можно и не подписывать вовсе.)

     
     
  • 3.29, Аноним (-), 00:00, 15/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > да ты можешь лично проверить паспорт Juan Tjan - как это поможет от написанного им троянца?

    Во-первых его можно найти)
    Кто это будет делать соответсвующие органы или просто разгневанные пользователи это не столь важно.
    Как писал Стив в своей книге
    "Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
    А теперь про это будет знать и твой пользователь.

    Во-вторых - после первого такого факапа, сомнительно, что кто-то примет его код.
    А там был намеренный бекдор в несколько этапов, это тебе не за границы массива выйти.

     
     
  • 4.32, нах. (?), 00:06, 15/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Во-первых его можно найти)

    и че ты ему сделаешь, он вообще в другом городе.

    > Кто это будет делать соответсвующие органы

    так он на них и работал.

    > Во-вторых - после первого такого факапа, сомнительно, что кто-то примет его код.

    после такого факапа его наверное на органы разобрали. Это ж надо быть ТАКИМ неудачником! Тщательно продуманная многоходовая операция - псу под хвост.

    Но я уверен что у китайцев есть еще пара сотен тыщ Жун Тянов, готовых что угодно подписать своим ключом по первому зову. Причем у всех по пять акаунтов на шитхапе и шитляпе, существующих по десять лет, с кучей мусора в репах.

    И следующему наверняка повезет больше.

     
     
  • 5.34, Аноним (-), 00:12, 15/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > и че ты ему сделаешь, он вообще в другом городе.

    Поеду в гости?
    Ты что не видел рецеп из "Джей и Молчаливый Боб" про комментаторов в интернете?

    > так он на них и работал.

    Значит будет заруба нашего майора и не-нашего.
    "Нашесть" каждый выбирает в зависиммости от предпочтений, пачпорта.
    Непричасные могут запасаться попкорном.

    > Но я уверен что у китайцев есть еще пара сотен тыщ Жун Тянов, готовых что угодно подписать своим ключом по первому зову. Причем у всех по пять акаунтов на шитхапе и шитляпе, существующих по десять лет, с кучей мусора в репах.

    Отлично, а теперь мы не смотрим на кол-во мусорных аккаунтов, а сразу просим пасспорт.
    Желательно вместе с видосом.

    Уже проглядывается отличная практика неправильный-пасспорт-значит-нах, почему такого нельзя сделать и для других?
    А чтобы не было спукареков про ущемления - сделать для всех!

     

  • 1.19, 12yoexpert (ok), 23:01, 14/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    тотальная централизация. отсутствие ключей на популярных серверах им не нравится, ппц
     
     
  • 2.23, нах. (?), 23:26, 14/11/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    "Дополнительно можно отметить выявление в каталоге PyPI вредоносного пакета "fabrice", который при помощи тайпсквотинга"

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

    Ну ок, дивный новый мир стал чуточку ближе.

     
     
  • 3.37, 12yoexpert (ok), 00:26, 15/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    ладно бы только сама по себе централизация, но выкладывание (неудаляемого!) ключа на публичный сервер это конец для личного почтового сервера. этим ты как бы кричишь на весь интернет "мне вот сюда, я даже не смазывал"
     
  • 2.30, Аноним (-), 00:03, 15/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Кому им?
    Разве они не вправе устанавливать правила на своей платформе?
    Для справки, на опеннете тоже есть правила где-то в подвале сайта.

    Никто не запрещает сделать свой удобный сервис, без проверок или модерации.

     
     
  • 3.36, 12yoexpert (ok), 00:21, 15/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Кому им?

    а ты попробуй новость прочитать

    > Разве они не вправе устанавливать правила на своей платформе?

    кто они?

    > Для справки, на опеннете тоже есть правила где-то в подвале сайта.

    я знал это

    > Никто не запрещает сделать свой удобный сервис, без проверок или модерации.

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

     
     
  • 4.38, Аноним (38), 00:30, 15/11/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> Разве они не вправе устанавливать правила на своей платформе?
    > кто они?

    а ты попробуй новость прочитать

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

    А кто говорит про опровержение?
    Ладно если твой уровень не позволяет понять, то скажу прямо - каждый кому не нравится PyPI, может сделать свой сервис с блекджеком и щво6одькой.

     
     
  • 5.39, 12yoexpert (ok), 00:37, 15/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > каждый кому не нравится PyPI, может сделать свой сервис с блекджеком и щво6одькой.

    ещё один познавательный факт от нашего вассермана, жжош

     

  • 1.26, Аноним (22), 23:48, 14/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Лучше бы они с тайпсквоттингом боролись, и вообще с мусором который там тоннами регистрируют, что прекрасно видно если их фиды обрабатывать. А уж как защищать свой код мы сами разберёмся без сопливых. Так, их "обязательная" 2FA у меня на гитхабе в README свободно выложено, потому что я не считаю что должен тратить время и рисковать доступом к изменению своих пакетов ради гипотетической безопасности потребителей этих пакетов.
     
     
  • 2.33, Аноним (-), 00:06, 15/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > А уж как защищать свой код мы сами разберёмся без сопливых

    Да-да, Jia Tan может подтвердить.

    > их "обязательная" 2FA у меня на гитхабе в README свободно выложено

    А зачем ты вообще пользуешься гитхабом, если он такой плохой?
    Добавляешь им популярности и пользователей.

     
     
  • 3.46, Аноним (46), 02:39, 15/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Научись читать, и различать гитхаб и пупи, для начала. А потом попробуй понять что и с пупи нет никакого противоречия в том чтобы им пользоваться и продвигать, и чтобы при этом сpать с высокой колокольни на и саботировать их механизмы безопасности.
     
  • 2.41, Аноним (41), 01:03, 15/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Учитывая, что кроме самого ридми там ничего ценного нет и быть не может, то вреда от тебя ровно столько же, сколько и пользы.
     

  • 1.43, Аноним (43), 01:15, 15/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Это лютая дичь. По сути pypi предлагает доверить безопасность пакетов gitlab или github.
    Это не только не этично, но просто меганебезопасно. По сути это бекдор в экосистему питона (0.5% со своими зеркалами можно не учитывать).
     
     
  • 2.45, Вы забыли заполнить поле Name (?), 02:22, 15/11/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > По сути pypi предлагает доверить безопасность пакетов github

    Где работает Гвидо и кто владелец github? Дальше думаю ясно.

    > Это не только не этично, но просто меганебезопасно. По сути это бекдор в экосистему питона

    Не можешь победить - возглавь.

     

  • 1.44, Вы забыли заполнить поле Name (?), 02:20, 15/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    * оверинжиниринг
    * завязка на сторонние сервисы в кол-ве 2 штук

    Осуждаю.

    > который при помощи тайпсквотинга

    Запретитие общие имена. Просто зафиксируйте текущие, а новые пусть будут username/package-name. Для регистрации нового пользователя введите проверку на похожесть.  

     
  • 1.47, Аноним (46), 02:42, 15/11/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А что, если сделать вид что исходники пакета у меня на sr.ht, они это проглотят и не будут мне свои сраные механизмы аутентификации навязывать, или откажут мне в публикации пакета после чего можно будет поднять вонь в соцсетях?
     

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



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

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