Внедряването на двуфакторна автентикация в PyPI доведе до инцидент с изтриването на популярен пакет

Разработчиците на репозитория Python пакети PyPI публикуваха план за преход към задължителна двуфакторна автентикация за пакети, които попадат в категорията критично важни. Важността се определя по броя на изтеглянията и промяната ще се приложи към акаунтите на поддържащите и собствениците на проекти, свързани с 1% от пакетите, водещи по брой изтегляния през последните 6 месеца. Като се има предвид, че в момента репозиторият PyPI включва над 350 хиляди пакета, двуфакторната автентикация ще бъде приложена за около 3500 пакета. За проверка на попадането на акаунта в списъка е подготвена специална страница. Точната дата на включване на задължителната двуфакторна автентикация все още не е определена, предполага се, че това ще се случи през следващите месеци.

За разлика от прехода към двуфакторна автентикация в проектите RubyGems, NPM и GitHub, в PyPI първоначално ще бъде внедрена схема, която предвижда желателно използване на хардуерен токен с ключове за достъп. Като причина за препоръчаното използване на токени и протоколи WebAuthn се споменава по-висока сигурност в сравнение с генерирането на еднократни пароли (възможността за използване на TOTP вместо токени ще бъде налична под формата на опция).

Токените ще могат да бъдат получени безплатно — компанията Google е спонсор на инициативата и е предоставила 4000 ключа Titan за проекта. Всеки поддържащ може да подаде заявка за безплатно получаване на два токена с интерфейс USB-C или USB-A. Вторият токен ще бъде изпратен като резервен, в случай на повреда или загуба на основния, за да се минимизира рискът от загуба на достъп до репозитория и да се освободи разработчиците от необходимостта да преминават през сложна процедура за възстановяване на достъпа.

За съжаление, токените могат да бъдат изпращани само в Австрия, Белгия, Канада, Франция, Германия, Италия, Япония, Испания, Швейцария, Обединеното кралство и САЩ. Придружаващите лица от други държави могат самостоятелно да закупят токени, съвместими със спецификацията FIDO U2F, например, подходящи са токените Yubikey и Thetis. Като алтернатива също е предоставена възможност за използване на приложения за автентикация, базирани на еднократни пароли, които поддържат протокола TOTP, например, Authy, Google Authenticator и FreeOTP.

Инициативата не мина без инциденти. Авторът на пакета Atomicwrites, който има 6 милиона сваляния месечно и 38 милиона за 6 месеца, не пожела да премине на двуфакторна автентикация и в опит да изключи пакета си от списъка с критични, опита да нулира броя на свалянията. За да удостовери това, първо изтри пакета, а след това качи нова версия. Очакваше се, че подобна манипулация просто ще нулира броя, но за изненада на разработчика, от репозитория бяха изтрити и всички стари версии, което доведе до проблеми за проектите, зависещи от библиотеката, и които някои разработчици сравниха с инцидента, породен от изтриването на пакета left-pad в NPM.

Проблемата се задълбочи, тъй като след изтриването авторът на atomicwrites не успя да качи старите версии, които бяха възстановени едва на следващия ден след намесата на администраторите на PyPI. След случилото се, авторът на пакета решава да прекрати разработката на atomicwrites и да преведе пакета в категорията на остарелите. Като причина се посочва, че той развива проекта като хоби в свободното си време и появата на допълнителни изисквания, усложняващи работата, не оправдават времето, отделяно за безплатната поддръжка на пакета с такава популярност. Авторът на atomicwrites твърди, че предпочита просто да пише код за удоволствие, а грижите за допълнителната защита от кражба от хакери могат да се поемат, когато за това се плаща.

Библиотеката atomicwrites съдържа около 200 реда код и предлага функции за атомарно записване на файлове. В качеството на заместител могат да се използват стандартните извиквания на os.replace и os.rename (операцията се свежда до запис в файл с временно име и преименуване в целевия файл след готовност).

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster