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

Нужно:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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