The OpenNET Project / Index page

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

В PyPI реализована возможность публикации пакетов без привязки к паролям и токенам API

23.04.2023 12:05

В репозитории Python-пакетов PyPI (Python Package Index) предоставлена возможность использования нового защищённого метода публикации пакетов, позволяющего обойтись без сохранения на внешних системах (например, в GitHub Actions) фиксированных паролей и токенов доступа к API. Новый метод аутентификации получил название 'Trusted Publishers' и призван решить проблему с публикацией вредоносных обновлений, осуществляемых в результате компрометации внешних систем и попадания в руки злоумышленников предопределённых паролей или токенов.

Новый метод аутентификации основан на использовании стандарта OpenID Connect (OIDC), подразумевающего использование токенов аутентификации с ограниченным временем действия, которыми обмениваются внешние сервисы и каталог PyPI для подтверждения операции публикации пакета вместо использования традиционных логина/пароля или вручную сгенерированных постоянных токенов доступа к API. Возможность применения механизма "Trusted Publishers" уже реализована для обработчиков, запускаемых в GitHub Actions. В будущем ожидается реализация поддержки Trusted Publishers и для других внешних сервисов.

Сопровождающие пакеты могут на стороне PyPI выставить признак доверия идентификаторам, предоставляемым внешним провайдерам OpenID (IdP, OpenID Connect Identity Provider), которые внешний сервис будет использовать для запроса у PyPI недолгоживущих токенов. Генерируемые токены OpenID Connect подтверждают связь между проектом и обработчиком, что позволяет PyPI выполнять дополнительную верификацию метаданных, например, проверять, что публикуемый пакет соотносится с определённым репозиторием. Токены не сохраняются, привязаны к определённым API и автоматически прекращают действовать после истечения короткого времени жизни.

Дополнительно можно отметить отчёт компании Sonatype с информацией о выявлении в марте 2023 года 6933 вредоносных пакетов в каталоге PyPI. Всего с 2019 года число выявленных в PyPI вредоносных пакетов превысило 115 тысяч. Большая часть вредоносных пакетов маскируются под популярные библиотеки при помощи тайпсквотинга (назначение похожих имён, отличающихся отдельными символами, например, exampl вместо example, djangoo вместо django, pyhton вместо python и т.п.) - злоумышленники рассчитывают на невнимательных пользователей, совершивших опечатку или не заметивших отличий в названии при поиске. Вредоносные действия обычно сводятся к отправке конфиденциальных данных, найденных на локальной системе в результате определения типовых файлов с паролями, ключами доступа, криптокошельками, токенами, сессионными Cookie и другой конфиденциальной информацией.

  1. Главная ссылка к новости (https://blog.pypi.org/posts/20...)
  2. OpenNews: Внедрение двухфакторной аутентификации в PyPI привело к инциденту с удалением популярного пакета
  3. OpenNews: В каталоге PyPI выявлены вредоносные библиотеки, использующие CDN PyPI для скрытия канала связи
  4. OpenNews: 46% Python-пакетов в репозитории PyPI содержат потенциально небезопасный код
  5. OpenNews: В каталоге пакетов PyPI появилась поддержка двухфакторной аутентификации
  6. OpenNews: Применение тайпсквоттинга для распространения вредоносных модулей NPM, PyPI и Gems
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/59019-pypi
Ключевые слова: pypi
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (33) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 12:37, 23/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –10 +/
    Что бы не придумают, лишь бы не делать нормальное управление зависимостями
     
     
  • 2.2, Аноним (2), 12:46, 23/04/2023 [^] [^^] [^^^] [ответить]  
  • +5 +/
    А что не так с зависимостями?
     
     
  • 3.3, Аноним (3), 12:53, 23/04/2023 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Приблизительно всё.
     
     
  • 4.9, Аноним (9), 14:28, 23/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Что именно?
     
     
  • 5.16, Аноним (3), 17:49, 23/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Например всё.
     
  • 2.4, Самый Лучший Гусь (?), 13:38, 23/04/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ума нельзя дать
    Ума можно только взять
     
  • 2.6, Аноним (6), 14:01, 23/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    мусье видимо не писал на си/плюсах. В пипоне оно хотя бы есть
     
     
  • 3.8, Аноним (3), 14:04, 23/04/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    И что это даёт кроме новых дыр?
     
  • 3.10, Аноним (10), 14:54, 23/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Вообще-то есть и даже разные - на выбор.
    В питоне кстати тоже и в современных менеджера пакетов много проблем устранены.
     
  • 3.22, Аноним (22), 20:03, 23/04/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Писал. С зависимостями там не идеально, тем не менее, лучше, нежели в питоне.

    Наиболее удобное управление я видел в Go, единственная беда — проксирование гуглом, но прокси можно заменить на свой

     
  • 3.44, Аноним (44), 16:55, 24/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    В Сяз давно уже есть CMake, Mseon и Conan в конце концов.
    А то что портирование Си на новую платформу заканчивается
    после завершения портирвоания CC так это просто показатель
    культуры платформы. Можно и вовсе только Asm пердоставлять
    вместе с платами для экономии ресурсов...
     
  • 3.50, AKTEON (?), 19:05, 25/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    У рыб-удильщиков  отряда  Ceratioidei самцы прирастают к самкам, объединяя в конце-концов свои системы кровообращения, проблема с зависимостями в С++ имеет   столь же  простое и изящно решение ...
     

  • 1.5, Аноним (5), 14:00, 23/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Основная его проблема в отсутствии старых версий, из-за чего не работает софт даже двухлетней давности
     
     
  • 2.11, Аноним (10), 14:54, 23/04/2023 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Звучит как достоинство, а не недостаток.
     
     
  • 3.35, КО (?), 08:45, 24/04/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Тяп-ляп и в продакшон
     
  • 2.12, Аноним (12), 16:12, 23/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    шта? там же можно указывать конкретную версию с ==, <= и >=
     
     
  • 3.13, Аноним (5), 16:38, 23/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    можно, но иногда приходится устанавливать старую версию python, например 3.7
     
     
  • 4.14, Аноним (14), 17:19, 23/04/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    И в чём проблема конкретно?
     
  • 3.41, Аноним (41), 11:57, 24/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Указывать можно, вот только в репозитории её уже нет. Хоть зауказывайся.
     
  • 2.20, Аноним (3), 19:50, 23/04/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Старые версии притона присутствуют в любых количествах не бредь, пожалуйста.
     

  • 1.7, Tron is Whistling (?), 14:02, 23/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    А пакеты с пакетами можно публиковать?
     
     
  • 2.46, Аноним (44), 16:57, 24/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Вот именно из-за таких как ты и придумали package namespaces.
     

  • 1.23, Аноньимъ (ok), 21:23, 23/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Бред какой-то, причем тут гитхаб, зачем хранить ключи доступа в гитхабе, нагородили черт знает чего.
     
     
  • 2.40, Пряник (?), 11:56, 24/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Пойди, разберись :)
     
     
  • 3.47, Аноним (44), 16:58, 24/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Вы кстати нам дискету с дистрибудтвом когда отправите?
     

  • 1.27, Аноним (27), 01:43, 24/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Подскажите, как pip искать пакеты? 'pip search' не работает:
    '''
    % pip search gns3        
    ERROR: XMLRPC request failed [code: -32500]
    RuntimeError: PyPI no longer supports 'pip search' (or XML-RPC search). Please use https://pypi.org/search (via a browser) instead. See https://warehouse.pypa.io/api-reference/xml-rpc.html#deprecated-methods for more information.
    '''
     
     
  • 2.32, ческа Йцукен (?), 05:29, 24/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Последние годы я ищу прямо на pypi. Этот поиск в pip они лет 7 назад отломали. Не совсем понимаю, почему и зачем, ну да и ладно
     

  • 1.28, Аноним (27), 01:47, 24/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Как тут код вставить? Маркдаун, вроде бы, не работает.
     
     
  • 2.38, Аноним (3), 10:28, 24/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ты лучше расскажи зачем тебе код вставлять в комментарий? Думаешь кому-то интересен твой код, кто-то будет читать твои простыни? Да все плевать.
     
     
  • 3.48, Аноним (44), 16:59, 24/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А вот и нехрена. Давно мечтаю о "'''" в комментах OpenNet.
     
  • 2.42, Аноним (42), 12:00, 24/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Просто вставляй как есть, он моноширинным шрифтом покажется или используй теги [ code ]...[ /code ] (без пробелов)
     
     
  • 3.49, Аноним (44), 16:59, 24/04/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Проверка:




    print("Hello, World!")



     

  • 1.43, Аноним (43), 12:56, 24/04/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    не ну просто окошко для заливки зловредов поменьше стало и ладно, осталось дожать до миллисикундныхъ таймингов и заставить разрабов это обыграть = секурность! (епт)

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

     

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



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

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