The OpenNET Project / Index page

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



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

Оглавление

46% Python-пакетов в репозитории PyPI содержат потенциально небезопасный код, opennews (??), 30-Июл-21, (0) [смотреть все]

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


6. "46% Python-пакетов в репозитории PyPI содержат потенциально ..."  –1 +/
Сообщение от Annoynymous (ok), 30-Июл-21, 14:48 
А давайте запретим eval!
Ответить | Правка | Наверх | Cообщить модератору

9. "46% Python-пакетов в репозитории PyPI содержат потенциально ..."  +3 +/
Сообщение от Онаним (?), 30-Июл-21, 14:55 
Вообще eval давно пора вынести из пыха, пинота, и где он там ещё есть. Можно не вынести, а сделать отключенным по умолчанию, и без плясок с бубном не включаемым - чтобы включал только тот, кто знает, что делает.
Ответить | Правка | Наверх | Cообщить модератору

12. "46% Python-пакетов в репозитории PyPI содержат потенциально ..."  +2 +/
Сообщение от заминированный тапок (ok), 30-Июл-21, 15:01 
>Вообще eval давно пора вынести из пыха, пинота, и где он там ещё есть.

ещё eval есть в bash, меня устраивает, не надо его никуда выносить

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

15. "46% Python-пакетов в репозитории PyPI содержат потенциально ..."  +/
Сообщение от fernandos (ok), 30-Июл-21, 15:21 
В пыхе оно не так часто встречается.

Но да, она губительна.

> If eval() is the answer, you're almost certainly asking the
>
>Rasmus Lerdorf

Отключить её через конфиг не выйдет, ведь это не функция, а языковая конструкция.

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

62. "46% Python-пакетов в репозитории PyPI содержат потенциально ..."  +1 +/
Сообщение от Онаним (?), 30-Июл-21, 20:22 
Не, я имею в виду что-то типа --disable-eval по умолчанию :)
Ответить | Правка | Наверх | Cообщить модератору

160. "46% Python-пакетов в репозитории PyPI содержат потенциально ..."  +/
Сообщение от fernandos (ok), 01-Авг-21, 18:52 
> Не, я имею в виду что-то типа --disable-eval по умолчанию :)

Радикально, но да, так даже лучше.

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

161. "46% Python-пакетов в репозитории PyPI содержат потенциально ..."  +/
Сообщение от fernandos (ok), 01-Авг-21, 18:52 
> Не, я имею в виду что-то типа --disable-eval по умолчанию :)

Радикально, но да, так даже лучше.

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

119. "46% Python-пакетов в репозитории PyPI содержат потенциально ..."  +1 +/
Сообщение от InuYasha (??), 31-Июл-21, 10:29 
asking the ...?
Ответить | Правка | К родителю #15 | Наверх | Cообщить модератору

133. "46% Python-пакетов в репозитории PyPI содержат потенциально ..."  +2 +/
Сообщение от Аноним (133), 31-Июл-21, 15:25 
the wrong question было в оригинале.
Ответить | Правка | Наверх | Cообщить модератору

29. "46% Python-пакетов в репозитории PyPI содержат потенциально ..."  +/
Сообщение от Annoynymous (ok), 30-Июл-21, 16:32 
> Вообще eval давно пора вынести из пыха, пинота, и где он там
> ещё есть.

В js. Самое большое зло - в js.

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

11. "46% Python-пакетов в репозитории PyPI содержат потенциально ..."  +1 +/
Сообщение от Аноним (4), 30-Июл-21, 14:58 
+1.
Ответить | Правка | К родителю #6 | Наверх | Cообщить модератору

106. "46% Python-пакетов в репозитории PyPI содержат потенциально ..."  +/
Сообщение от Аноним (-), 31-Июл-21, 08:01 
> А давайте запретим eval!

Вообще-то это было бы очень удачной идеей, ибо эти господа быкуют на сишников и проч, а сами грубо кладут на W^X подобным образом. Именно так поимели pybitmessage, например. И у кулхацкеров с ним круто подгорело.

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

118. "46% Python-пакетов в репозитории PyPI содержат потенциально ..."  +/
Сообщение от Аноним (118), 31-Июл-21, 10:28 
Да не поимели. Там явный бэкдор был.
Ответить | Правка | Наверх | Cообщить модератору

147. "46% Python-пакетов в репозитории PyPI содержат потенциально ..."  +/
Сообщение от Аноним (-), 01-Авг-21, 05:31 
> Да не поимели. Там явный бэкдор был.

Да черт его разберет. Вон тут рядом некто exec втулить в свой код предлагает, мне назло. Это бэкдор или человек дypак? Так сходу и не поймешь даже. Самый большой облом для него - в том что я как раз вот именно его код как раз и не буду использовать, ибо на ... вертел питон, благодаря таким прогерам :)

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

144. "46% Python-пакетов в репозитории PyPI содержат потенциально ..."  –1 +/
Сообщение от Аноним (144), 01-Авг-21, 03:01 
А представь, что запретили.
Я напишу свой eval через дочерний интерпретатор, тебе легче от этого станет? Или дальше запретить запускать дочерние процессы?
Ответить | Правка | К родителю #6 | Наверх | Cообщить модератору

148. "46% Python-пакетов в репозитории PyPI содержат потенциально ..."  +/
Сообщение от Аноним (-), 01-Авг-21, 05:38 
> Я напишу свой eval через дочерний интерпретатор, тебе легче от этого станет?

1. Это больше приседаний, случайно, для своего удобства это уже все же никто делать не будет, прорубятся только самые одаренные и неленивые самострельщики.
2. По счастью, до меня это никогда не долетит, ибо я разборчивая скотина и не пользуюсь порождениями таких программистов. Облом, да? :)
3. Это не вы pybitmessage случайно кодили, кстати?

> Или дальше запретить запускать дочерние процессы?

Вообще-то я именно это и делаю в сетевых сервисах например... и если какому-нибудь сетевому серваку захочется в выполнение процесса, это немедленно гарантирует его пристрел и дальнейший аудит или замену. А с системдой это все еще и довольно легко организуется, ибо seccomp может вот именно что вырубить вам к чогту exec* да и W^X может быть и в файловой системе, то-есть, что врайтабельно то не экзекутабельно, а то что экзекутабельно - либо совсем не доступно, либо жестко влеплено только для чтения.

При очень сильном желании, конечно, гуру бэкдоринга сможет и это попытаться обойти. Но во первых высокий риск запалиться, во вторых высокий риск что что-то не сработает, в третьих это надо основательно по#$%ться уже и случайно так уж точно не сделаешь. Заодно и отмазаться при поимке не получится уже. Будет "споткнулся, упал на мой кулак своим лицом, и так 5 раз подряд".

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

159. "46% Python-пакетов в репозитории PyPI содержат потенциально ..."  +/
Сообщение от Аноним (159), 01-Авг-21, 15:59 
>для своего удобства это уже все же никто делать не будет

Конечно же, чем написать копеечную обертку над процессами, побегу переписывать всю логику с eval.
А через какое-то время после запрета в pypi какой-нибудь pyeval появится.

>если какому-нибудь сетевому серваку захочется в выполнение процесса, это немедленно гарантирует его пристрел и дальнейший аудит или замену

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

>врайтабельно то не экзекутабельно

python xxx.py, и все. Даже файл писать не обязательно, можно код аргументом передать.
А на самом деле даже процессы сторонние запускать не нужно.
Давай, запрети мне импортировать свежезаписанный py файл как модуль.

В любом случае, я буду писать как удобно мне, а всякие хуру идут лесом.

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

162. "46% Python-пакетов в репозитории PyPI содержат потенциально ..."  +/
Сообщение от Онаним (?), 01-Авг-21, 19:12 
> Конечно же, чем написать копеечную обертку над процессами, побегу переписывать всю логику с eval.

Побежишь, куда денешься. Потому что иначе твоё поделие больше не запустится, и придётся тебе его в виде образа докера со включенным в интерпретаторе eval раздавать.

> И сразу идешь в баню, сесурити вахтёр доморощенный. Или пишешь мне биндинги
> на C ко всему, что запускается через процессы.

А кому ты нужен-то, биндинги тебе писать?

> python xxx.py, и все

И отказ в exec. Дальше см. первый тезис про докер.
Не, на локалхосте - пожалуйста. Но не далее.

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

184. "46% Python-пакетов в репозитории PyPI содержат потенциально ..."  –1 +/
Сообщение от Аноним (144), 02-Авг-21, 13:29 
>А кому ты нужен-то

А ты кому нужен? Девопсы деплоят то, что написали разработчики, а не разработчики выполняют хотелки девопсов. Я написал сервис, описал в каких условиях он работает - будь добр его запустить. Сломанную твоими ограничениями логику переписываешь сам в личное время. Потому что если я дергаю некий инструмент через popen, значит другого способа (кроме переписывания инструмента на питон или написания обертки на C) нет. И потом еще посчитаем, сколько уязвимостей к уже имеющимся в инструменте ты добавил своей оберткой.

>придётся тебе его в виде образа докера
>придётся

претендент на сесурити ыкспертнасть юзает докер только в исключительных случаях. Ясно, понятно. Только когда вся инфраструктура без докера, то это тебе придется моё поделие в образ оформлять. Потому что я свои задачи завершил, а с деплоем выкобениваешься ты.

>отказ в exec

с чего бы? python на разделе с exec. Или ты мне хочешь весь мультипроцессинг сломать запретив создавать дочерние процессы?

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

190. "46% Python-пакетов в репозитории PyPI содержат потенциально ..."  +/
Сообщение от Онаним (?), 02-Авг-21, 22:03 
> А ты кому нужен? Девопсы деплоят то, что написали

Вот девопсам это и объясняй, а не мне :D
Я в т.ч. общую системную полиси генерю, и хрен ты мне что напишешь и задеплоишь вне этой полиси.

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

191. "46% Python-пакетов в репозитории PyPI содержат потенциально ..."  +/
Сообщение от Онаним (?), 02-Авг-21, 22:05 
(не, ты можешь конечно, никому не сказав, но при разборе полётов в случае дыры в твоём эвале - с тебя же и вычтут)
Ответить | Правка | Наверх | Cообщить модератору

175. "46% Python-пакетов в репозитории PyPI содержат потенциально ..."  +/
Сообщение от Аноним (-), 02-Авг-21, 04:52 
> Конечно же, чем написать копеечную обертку над процессами, побегу переписывать
> всю логику с eval.

Ну как бы я по подобным причинам и не собираюсь питонятиной пользоваться, больно там характерная секурити. Небось у вас такого красивого и на system() ума хватит, очень рекомендую, особенно круто в него непроверенные пользовательские данные отдавать.

> А через какое-то время после запрета в pypi какой-нибудь pyeval появится.

Да ну кто бы сомневался что питонисты придумают полунедосвоместимый способ прострела пяток еще раз?

> И сразу идешь в баню, сесурити вахтёр доморощенный. Или пишешь мне биндинги
> на C ко всему, что запускается через процессы.

Ну, мне для начала нафиг не упал твой софт, с таким качеством и секурити, поэтому пишу я тебе только дырку от бублика. А в баню отправляется такой софт с моих систем. Впрочем, он туда обычно и не попадает.

> python xxx.py, и все. Даже файл писать не обязательно, можно код аргументом передать.

Как тебе идея получить -1 на эту потугу, вебмакака? А прикинь, после сборки вон той песочницы там может не быть ни 1 бинаря. А что, прога уже запущена, ей больше не надо ничо. Если она что-то внешнее дергает это уже повод провести аудит этого крапа и скорее всего стереть его, либо за бэкдор, либо за непотребный код. Легитимных поводов для exec из например сетевого сервиса очень немного.

> А на самом деле даже процессы сторонние запускать не нужно.

Вообще-то именно так, покуда вы не менеджер сервисов или нечто подобное. А для сетевых штук это удобный хук для детекта хаксоров.

> Давай, запрети мне импортировать свежезаписанный py файл как модуль.

Хорошая идея, reason: W^X. Ну то-есть на своем локалхосте ты можешь хоть вирье запускать, а на чем-то сверх того ну тебя такого в пень.

> В любом случае, я буду писать как удобно мне, а всякие хуру идут лесом.

Вот именно это я как раз и делаю - и спасибо за иллюстрацию почему. Мне код с таким качеством и безопасТностью даром не упал.

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

185. "46% Python-пакетов в репозитории PyPI содержат потенциально ..."  +/
Сообщение от Аноним (144), 02-Авг-21, 13:46 
>непроверенные пользовательские данные

мои непроверенные пользовательские данные это медиафайлы. И там уязвимостей в нижележащих библиотеках столько, что RCE рано или поздно случится хоть eval отключай, хоть capabilities по самый корень режь.
>W^X

как это остановит importlib? Модуль это не динамическая библиотека, а тот же скрипт, который будет выполняться уже запущенным интерпретатором.

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

198. "46% Python-пакетов в репозитории PyPI содержат потенциально ..."  –1 +/
Сообщение от Аноним (-), 06-Авг-21, 07:02 
> мои непроверенные пользовательские данные это медиафайлы. И там уязвимостей в нижележащих
> библиотеках столько, что RCE рано или поздно случится

Отличный аргумент за то чтобы их в sandbox по максимуму. А то и пересобрать с asan/ubsan если просадка скорости не критична.

Грубо говоря, если RCE не может ничего, кроме счета - вред умеренный. А с должной расстановкой капканов будет легко пойман. Ну вон хук на exec - и при попытке развить успех разовьется... облом для хаксора.

> хоть eval отключай, хоть capabilities по самый корень режь.

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

>>W^X
> как это остановит importlib? Модуль это не динамическая библиотека, а тот же
> скрипт, который будет выполняться уже запущенным интерпретатором.

Вообще идея такая чтобы нельзя было догружать извне исполняемые штуки. Eval - самый простой и быстрый способ прострела пяток на этом направлении. Но если вы хотели сказать что в питоне более 9000 способов прострела пяток - наверное, вы правы. Во всяком случае, в battle for wesnoth его пробовали юзать как игровой скриптинг и пришли к тому что догружаемые с сервера дополнений аддоны могут взламывать юзеру систему и это нельзя заткнуть, питон слишком дыряв для этого. И поюзали Lua. А вот этот вполне можно сделать чисто считалкой-скриптилкой без IO наружу и вот так оно урон системе пользователя нанести не может.

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

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

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




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

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