The OpenNET Project / Index page

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



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

Оглавление

Выпуск Pyston 2, реализации языка Python с JIT-компилятором , opennews (??), 29-Окт-20, (0) [смотреть все]

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


18. "Выпуск Pyston 2, реализации языка Python с JIT-компилятором "  +3 +/
Сообщение от Аноним (18), 29-Окт-20, 08:13 
> Ценой использования JIT является незначительное увеличение потребления памяти.

И значительное снижение безопасности.

JIT требует отключение защиты памяти процессором и ядром OS, делая вашу систему уязвимой к переполнению буфера.

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

21. "Выпуск Pyston 2, реализации языка Python с JIT-компилятором "  –3 +/
Сообщение от Аноним (21), 29-Окт-20, 09:27 
Это с какого перепуга?
Ответить | Правка | Наверх | Cообщить модератору

23. "Выпуск Pyston 2, реализации языка Python с JIT-компилятором "  +/
Сообщение от Аноним (18), 29-Окт-20, 09:56 
JIT -> изменение исполняемой памяти -> возможность эксплуатации уязвимости переполнения буфера.

Нет JIT -> запрет на любое изменение исполняемой памяти -> невозможность эксплуатации переполнения буфера.

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

25. "Выпуск Pyston 2, реализации языка Python с JIT-компилятором "  –4 +/
Сообщение от A.Stahl (ok), 29-Окт-20, 10:14 
Я всегда работал с обычными компилируемыми языками, поэтому JITом никогда не интересовался, но разве там не просто "скомпилировали в нативный бинарик, бросили в кеш чтобы не компилировать в следующий раз и запустили самый обычный нативный блоб"?
Ответить | Правка | Наверх | Cообщить модератору

26. "Выпуск Pyston 2, реализации языка Python с JIT-компилятором "  +1 +/
Сообщение от Аноним (26), 29-Окт-20, 11:02 
Нет. То что ты говоришь - AOT
Ответить | Правка | Наверх | Cообщить модератору

31. "Выпуск Pyston 2, реализации языка Python с JIT-компилятором "  –2 +/
Сообщение от Gogi (??), 29-Окт-20, 12:04 
> JIT -> изменение исполняемой памяти

Чушь собачья! JIT совершенно не подразумевает, что что-то должно изменяться. Почитай-ка лучше теорию, а потом садись за математику - завтра в школу.

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

80. "Двоечник ты."  +/
Сообщение от Аноним (80), 30-Окт-20, 15:48 
JIT - исполнение скомпилированного во время работы программы кода, который надо записать в память (доступ на запись, W), а потом исполнить (исполнение, X, измененного во время работы программы кода).
Ответить | Правка | Наверх | Cообщить модератору

33. "Выпуск Pyston 2, реализации языка Python с JIT-компилятором "  +1 +/
Сообщение от Аноним84701 (ok), 29-Окт-20, 14:18 
> JIT -> изменение исполняемой памяти -> возможность эксплуатации уязвимости переполнения  буфера.

простой интерпретатор без JIT -> исполнение высокоуровневого кода в неисполняемой памяти -> эксплуатация уязвимости в обход ASLR.

> Нет JIT -> запрет на любое изменение исполняемой памяти -> невозможность эксплуатации  переполнения буфера.

Только в моей реальности, в скриптовых/ЯП c автоматическим управлением памятью, уязвимости  переполнения буфера встречаются куда как реже, чем уязвимости с каким нибудь хитрым eval(userinput).

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

79. "Выпуск Pyston 2, реализации языка Python с JIT-компилятором "  +/
Сообщение от Аноним (80), 30-Окт-20, 15:43 
В твоем дистре ядро разрешает исполнение левых скриптов?

Не спрашиваю уже о ограничениях интерпретаторов средствами DAC.

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

38. "Выпуск Pyston 2, реализации языка Python с JIT-компилятором "  +1 +/
Сообщение от Аноним (38), 29-Окт-20, 15:24 
>Нет JIT -> запрет на любое изменение исполняемой памяти -> невозможность эксплуатации переполнения буфера.

Не полная невозможность, а только увеличение сложности эксплуатации. Если правильно подобрать данные, то переполнение буфера прыгнет на инструкцию в системном коде, которая вызовет функцию изменяющую атрибуты памяти в которой расположен shell-код, а затем "вернёт" управление ему. Именно поэтому и существует рендомизация адресного пространства, которая значительно усложняет ориентацию в коде процесса.

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

77. "Выпуск Pyston 2, реализации языка Python с JIT-компилятором "  +/
Сообщение от Аноним (80), 30-Окт-20, 15:40 
Согласен, что ALSR также необходимо использовать в ядре OS и программах.

Но в этой теме акцент на вредность JIT для защиты памяти OS. Если JIT нет то в OS можно реализовать простую защиту от переполнения буфера. А если JIT есть то защиту просто не реализуешь, будет дыра в OS и угроза переполнения буфера.

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

84. "Выпуск Pyston 2, реализации языка Python с JIT-компилятором "  +/
Сообщение от Аноним (38), 30-Окт-20, 16:55 
Простая защита это именно флаг запрещающий выполнять определённые области памяти, чтобы сделать защиту получше, нужно сломать ядерный ABI, который позволяет снимать запрет. Но в таком случае вполне возможно выполнять JIT-код в контейнере, который не может самостоятельно менять права страниц своего процесса и вообще может только общаться с процессом-мастером.
Ответить | Правка | Наверх | Cообщить модератору

85. "Выпуск Pyston 2, реализации языка Python с JIT-компилятором "  +/
Сообщение от Аноним (85), 30-Окт-20, 16:59 
> который позволяет снимать запрет.

Все зависит от реализации защиты: строгая или не строгая.

Нормальные ядра OS запрет снимать не разрешают и никакой JIT исполнить тоже не разрешат.

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

86. "Выпуск Pyston 2, реализации языка Python с JIT-компилятором "  +/
Сообщение от Аноним (38), 30-Окт-20, 17:03 
> Нормальные ядра OS запрет снимать не разрешают и никакой JIT исполнить тоже
> не разрешат.

POSIX:mprotect Ни одна нормальная ОС не может реализовать POSIX!

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

87. "Выпуск Pyston 2, реализации языка Python с JIT-компилятором "  +/
Сообщение от Аноним (87), 30-Окт-20, 17:31 
> Ни одна нормальная ОС не может реализовать POSIX!

И нормальная и посикс держит: https://mirror.yandex.ru/mirrors/ftp.linux.kiev.ua/Linux/CD/.../

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

88. "Выпуск Pyston 2, реализации языка Python с JIT-компилятором "  +/
Сообщение от Аноним (87), 30-Окт-20, 17:33 
> то переполнение буфера прыгнет на инструкцию в системном коде, которая вызовет функцию изменяющую атрибуты памяти

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

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

90. "Выпуск Pyston 2, реализации языка Python с JIT-компилятором "  +/
Сообщение от Аноним (38), 30-Окт-20, 17:40 
>Ну прочитаешь, ну прыгнешь, а исполняется память только для чтения.
>Ядро ловит попытку записи в область помеченную только для чтения и убивает вирусный процес.

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

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

92. "Выпуск Pyston 2, реализации языка Python с JIT-компилятором "  +/
Сообщение от Аноним (92), 30-Окт-20, 18:05 
Ты не имеешь права записи в области которые доступны только для чтения. Все исполняемые области, в нормальных ядрах OS,  доступны только для чтения.

Плевал я на программиста и его компилятор, контроль за памятью есть у ядра OS и процессора и при попытке записи в область доступны только для чтения ядро нормальной OS убьет процес.

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

93. "Выпуск Pyston 2, реализации языка Python с JIT-компилятором "  +/
Сообщение от Аноним (38), 30-Окт-20, 18:11 
Да не работает это всё, в том и дело. Только полный запрет mprotect может решить проблему, но это сломает ABI.
Ответить | Правка | Наверх | Cообщить модератору

104. "Выпуск Pyston 2, реализации языка Python с JIT-компилятором "  +1 +/
Сообщение от Аноним (104), 31-Окт-20, 08:03 
У меня на компе все работает, за малым исключением: firefox, kwin-wayland, polkitd, orc - эти программы выкинул; все остальное пересобрал без JIT с оптимизацией под свой процессор.

Не пользуйтесь дистрибутивами GNU/Linux и BSD* где нет строгой защиты памяти W^X.

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

89. "Выпуск Pyston 2, реализации языка Python с JIT-компилятором "  +/
Сообщение от Аноним (87), 30-Окт-20, 17:35 
> то переполнение буфера прыгнет на инструкцию в системном коде, которая вызовет функцию изменяющую атрибуты памяти

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

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

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

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




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

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