powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Песочница / sandbox - для опасного кода - с лимитами по CPU, RAM
23 сообщений из 23, страница 1 из 1
Песочница / sandbox - для опасного кода - с лимитами по CPU, RAM
    #39749911
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Существует-ли легковесная и безопасная песочница для опасного кода? Для JavaScript (можно не 100% совместимость со стандартом), Ruby?

Нужно:

- Легковесность - быстро создать и убить.
- Возможность установить лимиты на CPU (скажем не больше пары секунд), и RAM
- Возможность на сервере с 32Гб запустить скажем 320 песочниц по 100Мб каждая.
- Возможность общатся по сети, но только с разрешенными сервисами.
- Доступ к диску не нужен.

Вроде Докер все это может, но вот не уверен на счет насколько это будет эффективно и быстро создать убить.
Есть еще вроде специальные маленькие виртуальные машины для JavaScript для микроконтроллеров/embedded device. Может там можно поставить лимиты.
...
Рейтинг: 0 / 0
Песочница / sandbox - для опасного кода - с лимитами по CPU, RAM
    #39749912
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Теоретически - можно накупить пару тысяч распберри пи - и получить пару тысяч песочниц. Полная изоляция друг от друга, никто никому не мешает, зависла больше 3 секунд - выдернул, стер все и запустил заново. Как-то можно что-то подобное виртуально сделать на одном большом сервере?
...
Рейтинг: 0 / 0
Песочница / sandbox - для опасного кода - с лимитами по CPU, RAM
    #39749985
alex55555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
privateДля JavaScript
Для него есть масса интерпретаторов. Нужно погуглить и по каждому почитать в доках, есть ли нужные ограничения. Даже если нет, то некоторые легко расширяются, а потому любые ограничения можно дописать.
...
Рейтинг: 0 / 0
Песочница / sandbox - для опасного кода - с лимитами по CPU, RAM
    #39750265
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне одному кажется, что требования автора поста, это обычные и стандартные требования для любой ОС позволяющей многозадачность.

Первая попавшаяся ссылка в google
https://skeletor.org.ua/?p=4143

Ну или посмотреть на что нибудь типа docker. Не думаю, что там большие overhead по ресурсам. По крайне мере десятки докеров (под полусотню) на одном сервере видел, как будут жить в реальности 320 контейнеров - не знаю.

Тут еще важно кол-во threads и насколько активная работа. Что бы на переключение потоков много ресурсов не тратилось. 320+ активных threads - это все же достаточно много. Выдержит ли процессор(а) ?
...
Рейтинг: 0 / 0
Песочница / sandbox - для опасного кода - с лимитами по CPU, RAM
    #39750296
Фотография Малыхин Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Под такие требования и браузер с воркерами подойдет просто запустить его с правильными флагами --js-flags тынц 1176 строка
Или даже nodeJS с теми же флагами.

Но в плане создать убить браузер будет в разы быстрее работать и песочница у него уже готовая. и балансировать нагрузку он сам умеет.
...
Рейтинг: 0 / 0
Песочница / sandbox - для опасного кода - с лимитами по CPU, RAM
    #39750568
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Малыхин Сергей спасибо, я не знал что в веб-воркере можно лимит на память установить
...
Рейтинг: 0 / 0
Песочница / sandbox - для опасного кода - с лимитами по CPU, RAM
    #39750591
Фотография Малыхин Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это флаги движка v8 и лимит они на все процесы js выставляют
...
Рейтинг: 0 / 0
Песочница / sandbox - для опасного кода - с лимитами по CPU, RAM
    #39751090
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, погонял тесты nashorn это свой движек JavaScript встроенный в Java, там тоже можно установить лимиты по памяти и цпу. Запустил 20 параллельных песочниц на выполнение кода "2 + 2" - потребление памяти 600Мб. Получается каждый из песочниц сходу 30Мб забирает просто для себя.
...
Рейтинг: 0 / 0
Песочница / sandbox - для опасного кода - с лимитами по CPU, RAM
    #39751096
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще такой вопрос, теоретический, но интересно узнать. Есть же GPU процессоры еще, их сотни на видео карте, и они не имеют доступа к обычным функциям. И поскольку у каждого GPU свой процессор и память (вроде как) то переполнения быть не может. Интересно - их можно как сандбокс использовать? Не для жаваскрипта, а для их специализированного языка расчетов.
...
Рейтинг: 0 / 0
Песочница / sandbox - для опасного кода - с лимитами по CPU, RAM
    #39751360
alex55555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
privateИнтересно - их можно как сандбокс использовать?
Использовать можно всё, но усилий для этого иногда нужно больше, чем ваша короткая жизнь вам позволит. Если вы про GPU только звон слышали, то использовать его специфическим образом вы сумеете лишь лет через цать.
...
Рейтинг: 0 / 0
Песочница / sandbox - для опасного кода - с лимитами по CPU, RAM
    #39751420
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в Windows 10 Profession и Enterprise есть компонент Windows Sandbox
https://habr.com/company/infopulse/blog/433706/
...
Рейтинг: 0 / 0
Песочница / sandbox - для опасного кода - с лимитами по CPU, RAM
    #39754288
a.guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
firejail
...
Рейтинг: 0 / 0
Песочница / sandbox - для опасного кода - с лимитами по CPU, RAM
    #39754362
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
private,

ну ладно, найдёшь движок с тюнингом, а окружение во первых какое? и как его моделировать собрался?
...
Рейтинг: 0 / 0
Песочница / sandbox - для опасного кода - с лимитами по CPU, RAM
    #39754409
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
privateВроде Докер все это может, но вот не уверен на счет насколько это будет эффективно и быстро создать убить.

Совершенно непонятно что значит эффективно и быстро убить?

Мне было в студенчестве сложно убивать процесс while(true){} запущенный с TIME_CRIT приоритетом
под Windows-95.

Это имелось в виду?
...
Рейтинг: 0 / 0
Песочница / sandbox - для опасного кода - с лимитами по CPU, RAM
    #39754422
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Окружение не нужно, виртуальной машины жаваскрипт и доступа к разрешенным портам на других разрешенных машинах достаточно.

Убить - да. Если он займет все процессорное время или память и зависнет надолго прежде чем песочница сможет вернуть контроль и убить его.
...
Рейтинг: 0 / 0
Песочница / sandbox - для опасного кода - с лимитами по CPU, RAM
    #39754445
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
privateОкружение не нужно, виртуальной машины жаваскрипт и доступа к разрешенным портам на других разрешенных машинах достаточно.в плане не нужно? сферический математический код которому не DOM-документа не нужен, ни чего либо ещё?
...
Рейтинг: 0 / 0
Песочница / sandbox - для опасного кода - с лимитами по CPU, RAM
    #39754582
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
privateЕсли он займет все процессорное время или память и зависнет надолго прежде чем песочница сможет вернуть контроль и убить его.
JavaScript не компилируется в машинный код, поэтому песочница исполняет каждую инструкцию и контроль никогда не теряет.
...
Рейтинг: 0 / 0
Песочница / sandbox - для опасного кода - с лимитами по CPU, RAM
    #39754593
alex55555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovJavaScript не компилируется в машинный код, поэтому песочница исполняет каждую инструкцию и контроль никогда не теряет.
Компилируется. Зависит от движка.
...
Рейтинг: 0 / 0
Песочница / sandbox - для опасного кода - с лимитами по CPU, RAM
    #39754725
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вобщем топик пока безпредметен.

Хорошо-бы рассмотреть кейс когда JavaScript (браузер+web-assembly?, Lua?, NodeJS?, Nashorn? Rhino? ) повесил операционку.

Автор у вас есть образец вредноносного кода который вы собираетесь тестить
и который настолько плох что создает проблемы такого масштаба?
...
Рейтинг: 0 / 0
Песочница / sandbox - для опасного кода - с лимитами по CPU, RAM
    #39754733
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex55555Dimitry SibiryakovJavaScript не компилируется в машинный код, поэтому песочница исполняет каждую инструкцию и контроль никогда не теряет.
Компилируется. Зависит от движка.Бред. Как впрочем, и все, что ты пишешь.
...
Рейтинг: 0 / 0
Песочница / sandbox - для опасного кода - с лимитами по CPU, RAM
    #39754811
Фотография Малыхин Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Siemarglalex55555пропущено...

Компилируется. Зависит от движка.Бред. Как впрочем, и все, что ты пишешь.
Ну почему же бред?
Там очень годный ассемблер и несколько компиляторов https://chromium.googlesource.com/v8/v8/ /master/src/assembler-inl.h
Наверно это лучшее встраиваемое решения для компиляции на лету в приложении и оптимизация под текущую архитектуру от разработчиков архитектуры идет из коробки.

Подходит не только для JS. Например если хочешь свой новый супер пупер язык программирования то просто генеришь байткод для этого ассемблера и скармливаешь компилятору.
Вроде языки D и Go работают на этом компиляторе но это не точно =).
...
Рейтинг: 0 / 0
Песочница / sandbox - для опасного кода - с лимитами по CPU, RAM
    #39755007
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Малыхин СергейSiemarglпропущено...
Бред. Как впрочем, и все, что ты пишешь.
Ну почему же бред?
Там очень годный ассемблер и несколько компиляторов https://chromium.googlesource.com/v8/v8/ /master/src/assembler-inl.h
Наверно это лучшее встраиваемое решения для компиляции на лету в приложении и оптимизация под текущую архитектуру от разработчиков архитектуры идет из коробки.

Подходит не только для JS. Например если хочешь свой новый супер пупер язык программирования то просто генеришь байткод для этого ассемблера и скармливаешь компилятору.
Вроде языки D и Go работают на этом компиляторе но это не точно =).
про D и Go - неверно
...
Рейтинг: 0 / 0
Песочница / sandbox - для опасного кода - с лимитами по CPU, RAM
    #39755016
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Node Js кажется использует.
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Песочница / sandbox - для опасного кода - с лимитами по CPU, RAM
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]