|
Песочница / sandbox - для опасного кода - с лимитами по CPU, RAM
|
|||
---|---|---|---|
#18+
Существует-ли легковесная и безопасная песочница для опасного кода? Для JavaScript (можно не 100% совместимость со стандартом), Ruby? Нужно: - Легковесность - быстро создать и убить. - Возможность установить лимиты на CPU (скажем не больше пары секунд), и RAM - Возможность на сервере с 32Гб запустить скажем 320 песочниц по 100Мб каждая. - Возможность общатся по сети, но только с разрешенными сервисами. - Доступ к диску не нужен. Вроде Докер все это может, но вот не уверен на счет насколько это будет эффективно и быстро создать убить. Есть еще вроде специальные маленькие виртуальные машины для JavaScript для микроконтроллеров/embedded device. Может там можно поставить лимиты. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2018, 01:17 |
|
Песочница / sandbox - для опасного кода - с лимитами по CPU, RAM
|
|||
---|---|---|---|
#18+
Теоретически - можно накупить пару тысяч распберри пи - и получить пару тысяч песочниц. Полная изоляция друг от друга, никто никому не мешает, зависла больше 3 секунд - выдернул, стер все и запустил заново. Как-то можно что-то подобное виртуально сделать на одном большом сервере? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2018, 01:21 |
|
Песочница / sandbox - для опасного кода - с лимитами по CPU, RAM
|
|||
---|---|---|---|
#18+
privateДля JavaScript Для него есть масса интерпретаторов. Нужно погуглить и по каждому почитать в доках, есть ли нужные ограничения. Даже если нет, то некоторые легко расширяются, а потому любые ограничения можно дописать. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2018, 10:45 |
|
Песочница / sandbox - для опасного кода - с лимитами по CPU, RAM
|
|||
---|---|---|---|
#18+
Мне одному кажется, что требования автора поста, это обычные и стандартные требования для любой ОС позволяющей многозадачность. Первая попавшаяся ссылка в google https://skeletor.org.ua/?p=4143 Ну или посмотреть на что нибудь типа docker. Не думаю, что там большие overhead по ресурсам. По крайне мере десятки докеров (под полусотню) на одном сервере видел, как будут жить в реальности 320 контейнеров - не знаю. Тут еще важно кол-во threads и насколько активная работа. Что бы на переключение потоков много ресурсов не тратилось. 320+ активных threads - это все же достаточно много. Выдержит ли процессор(а) ? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2018, 15:47 |
|
Песочница / sandbox - для опасного кода - с лимитами по CPU, RAM
|
|||
---|---|---|---|
#18+
Под такие требования и браузер с воркерами подойдет просто запустить его с правильными флагами --js-flags тынц 1176 строка Или даже nodeJS с теми же флагами. Но в плане создать убить браузер будет в разы быстрее работать и песочница у него уже готовая. и балансировать нагрузку он сам умеет. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2018, 16:24 |
|
Песочница / sandbox - для опасного кода - с лимитами по CPU, RAM
|
|||
---|---|---|---|
#18+
Малыхин Сергей спасибо, я не знал что в веб-воркере можно лимит на память установить ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2018, 07:53 |
|
Песочница / sandbox - для опасного кода - с лимитами по CPU, RAM
|
|||
---|---|---|---|
#18+
Это флаги движка v8 и лимит они на все процесы js выставляют ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2018, 09:03 |
|
Песочница / sandbox - для опасного кода - с лимитами по CPU, RAM
|
|||
---|---|---|---|
#18+
Кстати, погонял тесты nashorn это свой движек JavaScript встроенный в Java, там тоже можно установить лимиты по памяти и цпу. Запустил 20 параллельных песочниц на выполнение кода "2 + 2" - потребление памяти 600Мб. Получается каждый из песочниц сходу 30Мб забирает просто для себя. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2018, 00:30 |
|
Песочница / sandbox - для опасного кода - с лимитами по CPU, RAM
|
|||
---|---|---|---|
#18+
Еще такой вопрос, теоретический, но интересно узнать. Есть же GPU процессоры еще, их сотни на видео карте, и они не имеют доступа к обычным функциям. И поскольку у каждого GPU свой процессор и память (вроде как) то переполнения быть не может. Интересно - их можно как сандбокс использовать? Не для жаваскрипта, а для их специализированного языка расчетов. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2018, 01:07 |
|
Песочница / sandbox - для опасного кода - с лимитами по CPU, RAM
|
|||
---|---|---|---|
#18+
privateИнтересно - их можно как сандбокс использовать? Использовать можно всё, но усилий для этого иногда нужно больше, чем ваша короткая жизнь вам позволит. Если вы про GPU только звон слышали, то использовать его специфическим образом вы сумеете лишь лет через цать. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2018, 14:40 |
|
Песочница / sandbox - для опасного кода - с лимитами по CPU, RAM
|
|||
---|---|---|---|
#18+
в Windows 10 Profession и Enterprise есть компонент Windows Sandbox https://habr.com/company/infopulse/blog/433706/ ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2018, 15:33 |
|
Песочница / sandbox - для опасного кода - с лимитами по CPU, RAM
|
|||
---|---|---|---|
#18+
firejail ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2018, 03:15 |
|
Песочница / sandbox - для опасного кода - с лимитами по CPU, RAM
|
|||
---|---|---|---|
#18+
private, ну ладно, найдёшь движок с тюнингом, а окружение во первых какое? и как его моделировать собрался? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2018, 10:14 |
|
Песочница / sandbox - для опасного кода - с лимитами по CPU, RAM
|
|||
---|---|---|---|
#18+
privateВроде Докер все это может, но вот не уверен на счет насколько это будет эффективно и быстро создать убить. Совершенно непонятно что значит эффективно и быстро убить? Мне было в студенчестве сложно убивать процесс while(true){} запущенный с TIME_CRIT приоритетом под Windows-95. Это имелось в виду? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2018, 11:01 |
|
Песочница / sandbox - для опасного кода - с лимитами по CPU, RAM
|
|||
---|---|---|---|
#18+
Окружение не нужно, виртуальной машины жаваскрипт и доступа к разрешенным портам на других разрешенных машинах достаточно. Убить - да. Если он займет все процессорное время или память и зависнет надолго прежде чем песочница сможет вернуть контроль и убить его. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2018, 11:20 |
|
Песочница / sandbox - для опасного кода - с лимитами по CPU, RAM
|
|||
---|---|---|---|
#18+
privateОкружение не нужно, виртуальной машины жаваскрипт и доступа к разрешенным портам на других разрешенных машинах достаточно.в плане не нужно? сферический математический код которому не DOM-документа не нужен, ни чего либо ещё? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2018, 11:46 |
|
Песочница / sandbox - для опасного кода - с лимитами по CPU, RAM
|
|||
---|---|---|---|
#18+
privateЕсли он займет все процессорное время или память и зависнет надолго прежде чем песочница сможет вернуть контроль и убить его. JavaScript не компилируется в машинный код, поэтому песочница исполняет каждую инструкцию и контроль никогда не теряет. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2018, 14:55 |
|
Песочница / sandbox - для опасного кода - с лимитами по CPU, RAM
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovJavaScript не компилируется в машинный код, поэтому песочница исполняет каждую инструкцию и контроль никогда не теряет. Компилируется. Зависит от движка. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2018, 15:04 |
|
Песочница / sandbox - для опасного кода - с лимитами по CPU, RAM
|
|||
---|---|---|---|
#18+
Вобщем топик пока безпредметен. Хорошо-бы рассмотреть кейс когда JavaScript (браузер+web-assembly?, Lua?, NodeJS?, Nashorn? Rhino? ) повесил операционку. Автор у вас есть образец вредноносного кода который вы собираетесь тестить и который настолько плох что создает проблемы такого масштаба? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2018, 21:58 |
|
Песочница / sandbox - для опасного кода - с лимитами по CPU, RAM
|
|||
---|---|---|---|
#18+
alex55555Dimitry SibiryakovJavaScript не компилируется в машинный код, поэтому песочница исполняет каждую инструкцию и контроль никогда не теряет. Компилируется. Зависит от движка.Бред. Как впрочем, и все, что ты пишешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2018, 22:36 |
|
Песочница / sandbox - для опасного кода - с лимитами по CPU, RAM
|
|||
---|---|---|---|
#18+
Siemarglalex55555пропущено... Компилируется. Зависит от движка.Бред. Как впрочем, и все, что ты пишешь. Ну почему же бред? Там очень годный ассемблер и несколько компиляторов https://chromium.googlesource.com/v8/v8/ /master/src/assembler-inl.h Наверно это лучшее встраиваемое решения для компиляции на лету в приложении и оптимизация под текущую архитектуру от разработчиков архитектуры идет из коробки. Подходит не только для JS. Например если хочешь свой новый супер пупер язык программирования то просто генеришь байткод для этого ассемблера и скармливаешь компилятору. Вроде языки D и Go работают на этом компиляторе но это не точно =). ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2018, 10:06 |
|
Песочница / sandbox - для опасного кода - с лимитами по CPU, RAM
|
|||
---|---|---|---|
#18+
Малыхин СергейSiemarglпропущено... Бред. Как впрочем, и все, что ты пишешь. Ну почему же бред? Там очень годный ассемблер и несколько компиляторов https://chromium.googlesource.com/v8/v8/ /master/src/assembler-inl.h Наверно это лучшее встраиваемое решения для компиляции на лету в приложении и оптимизация под текущую архитектуру от разработчиков архитектуры идет из коробки. Подходит не только для JS. Например если хочешь свой новый супер пупер язык программирования то просто генеришь байткод для этого ассемблера и скармливаешь компилятору. Вроде языки D и Go работают на этом компиляторе но это не точно =). про D и Go - неверно ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2018, 16:29 |
|
|
start [/forum/topic.php?fid=16&fpage=11&tid=1340010]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
72ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 192ms |
0 / 0 |