PyPI (Python Package Index)

Продукт
Разработчики: Python Software Foundation
Дата последнего релиза: 2023/04/23
Отрасли: Интернет-сервисы
Технологии: Средства разработки приложений

Содержание

Основные статьи:

Python Package Index (PyPI) — это хранилище программного обеспечения для языка программирования Python. PyPI помогает находить и устанавливать программное обеспечение, разработанное и распространяемое сообществом Python.

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

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

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

Сопровождающие пакеты могут на стороне 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].

2022

Распространение фишинговых пакетов через репозиторий

15 декабря 2022 года появилась информация о том, что кампания по распространению фишинговых пакетов была обнаружена аналитиками из Checkmarx и Illustria, которые совместно работали над расследованием произошедшего. Как говорят специалисты, пакеты загружались с аккаунтов, использующих определенную схему именования, имели схожие описания и вели к одному и тому же кластеру из 90 доменов, на которых было размещено более 65 000 фишинговых страниц. На сайтах были фейковые приложения, опросы, промокоды и другое. В некоторых случаях там были реферальные ссылки для AliExpress.

Больше фишинговых пакетов было загружено в NuGet – 136 258, в PyPI – 7 894 пакетов, а в NPM – всего 212.

Статистика загрузки вредоносных пакетов (Checkmarx)
Иллюстрация: securitylab.ru

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

Описание одного из фишинговых пакетов (Checkmarx)
Иллюстрация: securitylab.ru

В некоторых случаях злоумышленники рекламировали поддельные генераторы подарочных карт Steam, коды электронных подарочных карт Playstation Network, сервисы по накрутке подписчиков на различных платформах. Но чтобы воспользоваться ими, жертва должна ввести свою электронную почту, а также логин и пароль от своего аккаунта на сервисе/площадке. Так киберпреступники собирают данные жертвы, чтобы позже продать их на хакерских форумах.

Злоумышленники еще и зарабатывают на этом, перенаправляя пользователей по реферальным ссылкам на различные маркетплейсы.

ИБ-специалисты, обнаружившие эту кампанию, уже сообщили NuGet, PyPI и NPM о заражении, поэтому все вредоносные пакеты уже удалены с площадок.[2]

Распространение инфостилеров в 29 пакетах PyPI

Исследователи компании Phylum обнаружили в реестре PyPI 29 пакетов Python с запутанным кодом, которые имитируют известные библиотеки, но вместо этого сбрасывают инфостилер W4SP на зараженные машины, а другие пакеты используют вредоносное ПО GyruzPIP, предположительно созданное только для «образовательных целей». Об этом стало известно 3 ноября 2022 года.

Иллюстрация:securitylab.ru

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

Атака начинается с копирования существующих известных библиотек и внедрения вредоносного оператора «__import__» в исправную кодовую базу пакета.

Особенность от копирования настоящего пакета заключается в том, целевая страница PyPI для пакета создается из «setup.py» и «README.md», поэтому киберпреступники сразу получают реальную целевую страницу с рабочими ссылками. Если пользователь не проверит страницу внимательно, он может подумать, что это легитимный пакет.

Исследователи Phylum заявили, что все пакеты были загружены более 5700 раз.

По словам экспертов, во время исследования им пришлось анализировать запутанный код, охватывающий более 71 000 символов.

Ранее стало известно о вредоносной кампании с использованием сети из более 200 доменов, имитирующих 27 брендов, которые принуждают пользователей загружать вредоносные программы для Windows и Android. Домены в этой кампании создавались с намеренными ошибками в названии при помощи техники «typosquatting»[3].

Примечания



СМ. ТАКЖЕ (7)


Подрядчики-лидеры по количеству проектов

За всю историю
2021 год
2022 год
2023 год
Текущий год

  Солар (ранее Ростелеком-Солар) (46)
  Финансовые Информационные Системы (ФИС, FIS, Финсофт) (15)
  Форсайт (11)
  Axiom JDK (БеллСофт) ранее Bellsoft (10)
  Бипиум (Bpium) (10)
  Другие (389)

  Солар (ранее Ростелеком-Солар) (8)
  Финансовые Информационные Системы (ФИС, FIS, Финсофт) (4)
  Консом групп, Konsom Group (КонсОМ СКС) (2)
  ЛАНИТ - Би Пи Эм (Lanit BPM) (2)
  IFellow (АйФэлл) (2)
  Другие (30)

  Солар (ранее Ростелеком-Солар) (10)
  Форсайт (3)
  Banks Soft Systems, BSS (Бэнкс Софт Системс, БСС) (3)
  Cloud.ru (Облачные технологии) ранее SberCloud (2)
  КРИТ (KRIT) (2)
  Другие (13)

  Солар (ранее Ростелеком-Солар) (6)
  МТС Exolve (Межрегиональный ТранзитТелеком, МТТ) (4)
  Unlimited Production (Анлимитед Продакшен, eXpress) (4)
  РЖД-Технологии (3)
  Robin (Робин) (3)
  Другие (23)

  Unlimited Production (Анлимитед Продакшен, eXpress) (3)
  Солар (ранее Ростелеком-Солар) (3)
  МТС Exolve (Межрегиональный ТранзитТелеком, МТТ) (2)
  Axiom JDK (БеллСофт) ранее Bellsoft (1)
  Banks Soft Systems, BSS (Бэнкс Софт Системс, БСС) (1)
  Другие (9)

Распределение вендоров по количеству проектов внедрений (систем, проектов) с учётом партнёров

За всю историю
2021 год
2022 год
2023 год
Текущий год

  Солар (ранее Ростелеком-Солар) (2, 48)
  Microsoft (41, 47)
  Oracle (49, 26)
  Hyperledger (Open Ledger Project) (1, 23)
  IBM (33, 18)
  Другие (595, 304)

  Солар (ранее Ростелеком-Солар) (1, 8)
  Финансовые Информационные Системы (ФИС, FIS, Финсофт) (1, 4)
  Microsoft (4, 3)
  Oracle (2, 3)
  SAP SE (2, 2)
  Другие (16, 19)

  Солар (ранее Ростелеком-Солар) (1, 11)
  Banks Soft Systems, BSS (Бэнкс Софт Системс, БСС) (1, 3)
  Форсайт (1, 3)
  Cloud.ru (Облачные технологии) ранее SberCloud (1, 2)
  Сбербанк (1, 2)
  Другие (9, 9)

  Солар (ранее Ростелеком-Солар) (1, 6)
  Unlimited Production (Анлимитед Продакшен, eXpress) (1, 6)
  МТС Exolve (Межрегиональный ТранзитТелеком, МТТ) (1, 4)
  Мобильные ТелеСистемы (МТС) (1, 4)
  РЖД-Технологии (1, 3)
  Другие (14, 24)

  Мобильные ТелеСистемы (МТС) (2, 3)
  Солар (ранее Ростелеком-Солар) (1, 3)
  Unlimited Production (Анлимитед Продакшен, eXpress) (1, 3)
  МТС Exolve (Межрегиональный ТранзитТелеком, МТТ) (1, 2)
  Сбербанк (1, 1)
  Другие (12, 12)

Распределение систем по количеству проектов, не включая партнерские решения

За всю историю
2021 год
2022 год
2023 год
Текущий год

  Solar appScreener (ранее Solar inCode) - 48
  Hyperledger Fabric - 23
  Windows Azure - 20
  FIS Platform - 15
  Форсайт. Мобильная платформа (ранее HyperHive) - 12
  Другие 324

  Solar appScreener (ранее Solar inCode) - 8
  FIS Platform - 4
  Турбо X - 2
  Siemens Xcelerator - 2
  Java - 2
  Другие 22

  Solar appScreener (ранее Solar inCode) - 11
  Форсайт. Мобильная платформа (ранее HyperHive) - 3
  BSS Digital2Go - 3
  Cloud ML Space - 2
  Axiom JDK (ранее Liberica JDK до 2022) - 1
  Другие 8

  EXpress Защищенный корпоративный мессенджер - 6
  Solar appScreener (ранее Solar inCode) - 6
  МТС Exolve - 4
  Форсайт. Мобильная платформа (ранее HyperHive) - 3
  РЖД и Робин: Облачная фабрика программных роботов - 3
  Другие 14

  EXpress Защищенный корпоративный мессенджер - 3
  Solar appScreener (ранее Solar inCode) - 3
  МТС Exolve - 2
  Naumen Platform - 1
  Газпром: Ивентум Конструктор приложений для организации и управления мероприятиями - 1
  Другие 9