The OpenNET Project / Index page

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



"В каталоге Python-пакетов PyPI выявлено 10 вредоносных библи..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"В каталоге Python-пакетов PyPI выявлено 10 вредоносных библи..."  +/
Сообщение от opennews (??) on 15-Сен-17, 21:43 
Центр национальной компьютерной безопасности Словакии опубликовал (http://www.nbu.gov.sk/skcsirt-sa-20170909-pypi/) уведомление о выявлении 10 вредоносных пакетов в каталоге PyPI (https://pypi.python.org). Имена вредоносных пакетов выбраны похожими на популярные Python-библиотеки, но отличаются незаметными сразу деталями. Например, вредоносные пакеты urllib и urlib3 камуфлируют под известную библиотеку urllib3. Примечательно, что используемый при создании данных модулей метод тайпсквотинга (https://www.opennet.ru/opennews/art.shtml?num=44576) известен уже давно, в том числе в 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 не принято, так как энтузиасты легко смогли разместить (https://www.pytosquatting.org/) фиктивный модуль  urllib2 (https://pypi.python.org/pypi/urllib2/1505291288.714008), который находится в PyPI и  поныне. Кроме  urllib2 было размещено (https://www.pytosquatting.org/) ещё 20 пакетов с именами подобными random, codecs, smtplib и т.п. Только для одного urllib2 зафиксировано 1144 попыток установки за день. Всего 20 подставных модулей за несколько дней попытались установить 6861 раз. Подобная статистика в целом близка к результатам, полученным в результате прошлогоднего эксперимента (https://www.opennet.ru/opennews/art.shtml?num=44576) по тайпсквотингу в PyPI.


URL: https://news.ycombinator.com/item?id=15256121
Новость: https://www.opennet.ru/opennews/art.shtml?num=47211

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "В каталоге Python-пакетов PyPI выявлено 10 вредоносных библи..."  +1 +/
Сообщение от Аноним (??) on 15-Сен-17, 21:43 
Было бы им неплохо научиться в алиасы: я бы поставил setup-tools вместо setuptools.
Но и в проверку подлинности, кончено.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "В каталоге Python-пакетов PyPI выявлено 10 вредоносных библи..."  +/
Сообщение от Аноним (??) on 15-Сен-17, 22:50 
Там разве нет премодерации?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "В каталоге Python-пакетов PyPI выявлено 10 вредоносных библи..."  +14 +/
Сообщение от Аноним (??) on 15-Сен-17, 23:45 
Зачем? Это ж её сколько времени ждать придётся! А продакшн не терпит.
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

23. "В каталоге Python-пакетов PyPI выявлено 10 вредоносных библи..."  +3 +/
Сообщение от . on 16-Сен-17, 21:10 
> А продакшн не терпит.

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

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

15. "В каталоге Python-пакетов PyPI выявлено 10 вредоносных библи..."  +3 +/
Сообщение от Борщдрайвен бигдата on 16-Сен-17, 10:28 
> Там разве нет премодерации?

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

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

8. "В каталоге Python-пакетов PyPI выявлено 10 вредоносных библи..."  –6 +/
Сообщение от Аноним (??) on 16-Сен-17, 05:36 
> pip

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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

10. "В каталоге Python-пакетов PyPI выявлено 10 вредоносных библи..."  +3 +/
Сообщение от Крутой аноним on 16-Сен-17, 07:43 
> Кто это использует? Пользователи windows?

Например пользователи ubuntu, потому что замечательные разработчики
даже не запускают пакеты перед тем как их запаковать и выложить.

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

17. "В каталоге Python-пакетов PyPI выявлено 10 вредоносных библи..."  +3 +/
Сообщение от Аноним (??) on 16-Сен-17, 11:45 
Пользователи Python
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

9. "В каталоге Python-пакетов PyPI выявлено 10 вредоносных библи..."  +1 +/
Сообщение от Аноним (??) on 16-Сен-17, 07:04 
>В момент установки модуля активируется вредоносная вставка, которая отправляет сведения о подставном пакете, пользователе и хосте на внешний сервер.

Расходимся. Это около ~5 лет назад один чувак уже предупреждал о тайпсквоттинге и запихал туда несколько пакетов, включая вариации на тему urllib, которые отсылали инфу на его сервер. По результатам написал статью.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

11. "В каталоге Python-пакетов PyPI выявлено 10 вредоносных библи..."  –1 +/
Сообщение от Крутой аноним on 16-Сен-17, 07:47 
> Центр национальной компьютерной безопасности Словакии опубликовал (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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

12. "В каталоге Python-пакетов PyPI выявлено 10 вредоносных библи..."  +/
Сообщение от Аноним (??) on 16-Сен-17, 08:12 
> pip list --format=legacy | egrep '^(acqusition|apidev-coop|bzip|crypt|django-server|pwd|setup-tools|telnet|urlib3|urllib)'
> Какой-то regex неправильный, только что говорилось что urllib3 и тут же
> дается regex под который он подходит, добавьте тогда уж

Вы только что наглядно продемонстрировали потенциал подобных атак и не заметили отличий даже прочитав в чём суть.

Hint: Правильный  urllib3  с двумя буквами "l" (urllib3), а в регекспе с одной (urlib3).

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

14. "В каталоге Python-пакетов PyPI выявлено 10 вредоносных библи..."  +3 +/
Сообщение от Аноним (??) on 16-Сен-17, 10:28 
Регулярка ^urllib матчит urllib3.
Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

19. "В каталоге Python-пакетов PyPI выявлено 10 вредоносных библи..."  +/
Сообщение от gavv on 16-Сен-17, 15:06 
Там пробел после скобки закрывающей, получается "^urllib ".
Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

16. "В каталоге Python-пакетов PyPI выявлено 10 вредоносных библи..."  –2 +/
Сообщение от Борщдрайвен бигдата on 16-Сен-17, 10:37 
Выскажу непопулярное мнение.
Тайпсквоттинг имён пакетов — проблема пользователей, а не хранилища. Мы это уже проходили с npmjs, а с DNS-тайпсквоттингом уже не одно десятилетие живём.

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

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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

18. "В каталоге Python-пакетов PyPI выявлено 10 вредоносных библи..."  +/
Сообщение от antares0 email on 16-Сен-17, 14:50 
> Центр национальной компьютерной безопасности Словакии

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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

21. "В каталоге Python-пакетов PyPI выявлено 10 вредоносных библи..."  –1 +/
Сообщение от mimocrocodile on 16-Сен-17, 16:06 
Ожидал "установка пакетов только из дистрибутива баттл", аноны огорчают
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

24. "В каталоге Python-пакетов PyPI выявлено 10 вредоносных библи..."  –1 +/
Сообщение от Аноним (??) on 17-Сен-17, 01:55 
Линукс безопасен благодаря честным хакерам, которые выкладывают безопасные вирусы =)
ЗЫ: могли бы сразу несколько имен для пакета регистрировать., ну или рейтинг закачек хотя бы показывать
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

25. "В каталоге Python-пакетов PyPI выявлено 10 вредоносных библи..."  –1 +/
Сообщение от Аноним (??) on 17-Сен-17, 16:54 
Рейтинг и так есть. Суть же в том, что пакеты через браузер качают чуть реже чем никогда, всё из setup.py и pip.
Ответить | Правка | ^ к родителю #24 | Наверх | Cообщить модератору

26. "В каталоге Python-пакетов PyPI выявлено 10 вредоносных библи..."  –1 +/
Сообщение от Аноним (??) on 18-Сен-17, 02:37 
"Я слышал много д---льных рэперских кличек, но Энди Картрайт..." (с)

Блин, более невменяемые названия пакетов просто сложно придумать.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

27. "В каталоге Python-пакетов PyPI выявлено 10 вредоносных библи..."  –2 +/
Сообщение от Аноним (??) on 18-Сен-17, 19:18 
именно поэтому следует ставить из гитхаба, а не из pip
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

28. "В каталоге Python-пакетов PyPI выявлено 10 вредоносных библи..."  +2 +/
Сообщение от Andrey Mitrofanov on 19-Сен-17, 00:17 
> именно поэтому следует ставить из гитхаба, а не из pip

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

Ответить | Правка | ^ к родителю #27 | Наверх | Cообщить модератору

29. "В каталоге Python-пакетов PyPI выявлено 10 вредоносных библи..."  +/
Сообщение от Аноним (??) on 23-Сен-17, 14:12 
Не работает:

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

Usage:  
  pip list [options]

no such option: --format


Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

30. "В каталоге Python-пакетов нет Питон-packet-ов"  +/
Сообщение от Andrey Mitrofanov on 23-Сен-17, 19:40 
> Не работает:
> no such option: --format
>

pip install --upgrade pip
  -- https://duckduckgo.com/?q=pip+update+pip&t=ffab&ia=qa
Ответить | Правка | ^ к родителю #29 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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