The OpenNET Project / Index page

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

15.09.2017 21:30  В каталоге Python-пакетов PyPI выявлено 10 вредоносных библиотек

Центр национальной компьютерной безопасности Словакии опубликовал уведомление о выявлении 10 вредоносных пакетов в каталоге PyPI. Имена вредоносных пакетов выбраны похожими на популярные Python-библиотеки, но отличаются незаметными сразу деталями. Например, вредоносные пакеты urllib и urlib3 камуфлируют под известную библиотеку urllib3. Примечательно, что используемый при создании данных модулей метод тайпсквотинга известен уже давно, в том числе в PyPI ранее уже размещался и удалялся вредоносный пакет с именем urllib, но какой-либо защиты от повторной регистрации предпринято не было.

Распространяющие вредоносные пакеты злоумышленники рассчитывают на невнимательность разработчиков, которые по недосмотру устанавливают фиктивные пакеты (например, более логичным выглядит поставить urllib и bzip вместо настоящих urllib3 и bzip2). Периодически после жалоб пользователей вредоносные пакеты вычищаются из PyPI, но затем добавляются вновь. Выявленная порция вредоносных пакетов была помещена в PyPI в июне и за несколько месяцев данные модули по ошибке были задействованы в различных новых приложениях.

Вредоносные пакеты включают в себя копию кода оригинальной библиотеки, но отличаются модифицированным установочным скриптом setup.py. В момент установки модуля активируется вредоносная вставка, которая отправляет сведения о подставном пакете, пользователе и хосте на внешний сервер. Например, при установке пакета urllib-1.21.1 пользователем root на хосте testmachine, будет отправлена строка "Y:urllib-1.21.1 root testmachine", которая дополнительно маскируется при помощи операции XOR и кодирования методом base64.

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

Список подставных модулей:

  • acqusition (загружен 2017-06-03 01:58:01, подражает acquisition)
  • apidev-coop (загружен 2017-06-03 05:16:08, подражает apidev-coop_cms)
  • bzip (загружен 2017-06-04 07:08:05, подражает bz2file)
  • crypt (загружен 2017-06-03 08:03:14, подражает crypto)
  • django-server (загружен 2017-06-02 08:22:23, подражает django-server-guardian-api)
  • pwd (загружен 2017-06-02 13:12:33, подражает pwdhash)
  • setup-tools (загружен 2017-06-02 08:54:44, подражает setuptools)
  • telnet (загружен 2017-06-02 15:35:05, подражает telnetsrvlib)
  • urlib3 (загружен 2017-06-02 07:09:29, подражает urllib3)
  • urllib (загружен 2017-06-02 07:03:37, подражает urllib3)

Для проверки наличия данных пакетов можно воспользоваться командой:


   pip list --format=legacy | egrep '^(acqusition|apidev-coop|bzip|crypt|django-server|pwd|setup-tools|telnet|urlib3|urllib) '

После отправки уведомления администраторам PyPI выявленные модули были немедленно удалены. Уже установленные пользователями пакеты требуют ручного удаления. При этом должных мер по предотвращению появления подобных вредоносных моделей в PyPI не принято. Например, уже после уведомления энтузиасты легко смогли разместить фиктивный модуль urllib2, который находится в PyPI и в настоящий момент. Кроме urllib2 было размещено ещё 20 пакетов с именами подобными random, codecs, smtplib и т.п. В итоге, только для одного urllib2 зафиксировано 1144 попыток установки за день. Всего 20 подставных модулей за несколько дней попытались установить 6861 раз. Подобная статистика в целом близка к результатам, полученным в результате прошлогоднего эксперимента по тайпсквотингу в PyPI.

  1. Главная ссылка к новости (https://news.ycombinator.com/i...)
  2. OpenNews: Применение тайпсквоттинга для распространения вредоносных модулей NPM, PyPI и Gems
  3. OpenNews: Незащищённость NPM к атакам по внедрению вредоносных модулей-червей
  4. OpenNews: Более половины npm-пакетов могли быть скомпрометированы из-за ненадёжных паролей доступа
Лицензия: CC-BY
Тип: Интересно / Проблемы безопасности
Ключевые слова: pypi, python
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
  • 1.1, Аноним, 21:43, 15/09/2017 [ответить] [смотреть все]
  • +1 +/
    Было бы им неплохо научиться в алиасы я бы поставил setup-tools вместо setuptoo... весь текст скрыт [показать]
     
  • 1.4, Аноним, 22:50, 15/09/2017 [ответить] [смотреть все]  
  • +/
    Там разве нет премодерации?
     
     
  • 2.5, Аноним, 23:45, 15/09/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +14 +/
    Зачем? Это ж её сколько времени ждать придётся! А продакшн не терпит.
     
     
  • 3.23, ., 21:10, 16/09/2017 [^] [ответить] [смотреть все]  
  • +3 +/
    > А продакшн не терпит.

    Смузи не ждет!

     
  • 2.15, Борщдрайвен бигдата, 10:28, 16/09/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +3 +/
    > Там разве нет премодерации?

    На гитхабе разве нет премодерации?

     
  • 1.8, Аноним, 05:36, 16/09/2017 [ответить] [смотреть все]  
  • –6 +/
    > pip

    Кто это использует? Пользователи windows?

     
     
  • 2.10, Крутой аноним, 07:43, 16/09/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +2 +/
    Например пользователи ubuntu, потому что замечательные разработчики даже не запу... весь текст скрыт [показать] [показать ветку]
     
  • 2.17, Аноним, 11:45, 16/09/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +3 +/
    Пользователи Python
     
  • 1.9, Аноним, 07:04, 16/09/2017 [ответить] [смотреть все]  
  • +1 +/
    Расходимся Это около 5 лет назад один чувак уже предупреждал о тайпсквоттинге ... весь текст скрыт [показать]
     
  • 1.11, Крутой аноним, 07:47, 16/09/2017 [ответить] [смотреть все]  
  • –1 +/
    > Центр национальной компьютерной безопасности Словакии опубликовал (http://www.nbu.gov.sk/skcsirt-sa-20170909-pypi/)
    > логичным выглядит поставить urllib и bzip вместо настоящих urllib3 и bzip2).
    > Периодически после жалоб пользователем вредоносные пакеты вычищаются из PyPI, но затем
    >    pip list --format=legacy | egrep '^(acqusition|apidev-coop|bzip|crypt|django-server|pwd|setup-tools|telnet|urlib3|urllib)'

    Какой-то regex неправильный, только что говорилось что urllib3 и тут же
    дается regex под который он подходит, добавьте тогда уж

    egrep -v '^(urllib3|bzip2)'

    в pipe

     
     
  • 2.12, Аноним, 08:12, 16/09/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Вы только что наглядно продемонстрировали потенциал подобных атак и не заметили ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.14, Аноним, 10:28, 16/09/2017 [^] [ответить] [смотреть все]  
  • +3 +/
    Регулярка ^urllib матчит urllib3.
     
     
  • 4.19, gavv, 15:06, 16/09/2017 [^] [ответить] [смотреть все]  
  • +/
    Там пробел после скобки закрывающей, получается "^urllib ".
     
  • 1.16, Борщдрайвен бигдата, 10:37, 16/09/2017 [ответить] [смотреть все]  
  • –2 +/
    Выскажу непопулярное мнение.
    Тайпсквоттинг имён пакетов — проблема пользователей, а не хранилища. Мы это уже проходили с npmjs, а с DNS-тайпсквоттингом уже не одно десятилетие живём.

    То, что репозиторий удаляет якобы (и даже не совсем) вредоносные пакеты — исключительно милость его владельцев, но не будут они вечно подтирать сопли нерадивым пользователям. В конце концов, это дорого.

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

     
  • 1.18, antares0, 14:50, 16/09/2017 [ответить] [смотреть все]  
  • –1 +/
    > Центр национальной компьютерной безопасности Словакии

    Вот самое странное в новости, что ее источник именно эта всемирно известная организация:(

     
  • 1.21, mimocrocodile, 16:06, 16/09/2017 [ответить] [смотреть все]  
  • –1 +/
    Ожидал "установка пакетов только из дистрибутива баттл", аноны огорчают
     
  • 1.24, Аноним, 01:55, 17/09/2017 [ответить] [смотреть все]  
  • –1 +/
    Линукс безопасен благодаря честным хакерам, которые выкладывают безопасные вирус... весь текст скрыт [показать]
     
     
  • 2.25, Аноним, 16:54, 17/09/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • –1 +/
    Рейтинг и так есть Суть же в том, что пакеты через браузер качают чуть реже чем... весь текст скрыт [показать] [показать ветку]
     
  • 1.26, Аноним, 02:37, 18/09/2017 [ответить] [смотреть все]  
  • –1 +/
    Я слышал много д---льных рэперских кличек, но Энди Картрайт с Блин, более... весь текст скрыт [показать]
     
  • 1.27, Аноним, 19:18, 18/09/2017 [ответить] [смотреть все]  
  • –2 +/
    именно поэтому следует ставить из гитхаба, а не из pip
     
     
  • 2.28, Andrey Mitrofanov, 00:17, 19/09/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +2 +/
    > именно поэтому следует ставить из гитхаба, а не из pip

    Тонко. Но ты ж знал[I]? http://www.opennet.ru/opennews/art.shtml?num=47216

     
  • 1.29, Аноним, 14:12, 23/09/2017 [ответить] [смотреть все]     [к модератору]  
  • +/
    Не работает code pip list --format legacy 124 egrep acqusition 124 api... весь текст скрыт [показать]
     
     
  • 2.30, Andrey Mitrofanov, 19:40, 23/09/2017 [^] [ответить] [смотреть все] [показать ветку]    [к модератору]  
  • +/
    > Не работает:
    > no such option: --format
    > [/code]

    [CODE]pip install --upgrade pip[/CODE]  -- https://duckduckgo.com/?q=pip+update+pip&t=ffab&ia=qa

     

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


      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor