Как приложения для песочницы?

54

Я хочу запускать небольшие ненадежные программы, но не ограничивать их доступом к файлам за пределами их папки, сетевого доступа и всего остального, что им действительно не нужно. Каков самый простой способ достичь этого?

    
задан michel 09.05.2013 в 10:02
источник

8 ответов

24

Если они действительно ненадежны, и вы хотите быть уверенными, вы создали бы отдельный блок. Либо на самом деле, либо практически.

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

  • Таким образом, самым безопасным вариантом будет отдельный ящик, физически удаленный из вашей сети.
  • Вы можете дать немного, добавив его в физическую сеть, но в другой подсети: нет «реального» соединения внутри
  • Виртуальная машина будет вариантом, но, возможно, придется отказаться от некоторой производительности

Если вы привязаны к запуску в одном и том же поле, у вас есть, например, этот параметр

  • корневая. Это вариант по умолчанию для этого для многих людей, а для неспецифических угроз он может даже работать. Но это НЕ вариант безопасности, и его можно разбить довольно легко. Я бы предложил использовать это как предназначено, то есть не для безопасности.

В конце концов, возможно, вам понадобится настроить конкретную модель песочницы без проблем виртуализации или отдельных ящиков или ситуации с отсутствием риска chroot. Я сомневаюсь, что это то, что вы имели в виду, но посмотрите на эту ссылку для получения более подробной информации: Ссылка

    
ответ дан Nanne 09.05.2013 в 11:00
11

Docker поможет вам настроить контейнеры, которые вы можете отключить от вашего текущего ядра, но все равно оставайтесь в стороне от остальной части вашей системы. Это похоже на передний край, но в Ubuntu есть хорошая документация.

Ссылка

    
ответ дан N. Thomas Kor 22.05.2013 в 02:13
8

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

  • Установить виртуальную коробку
  • Создание виртуальной машины с включенной поддержкой сети
  • Установите Ubuntu или, возможно, более легкий рабочий стол, например Lubuntu
  • Полностью обновить установленную ОС (внутри виртуального окна)
  • Отключить сетевое взаимодействие на виртуальной машине
  • Сделайте снимок

Теперь вы можете установить программное обеспечение, которому не доверяете, чтобы узнать, что он делает. Он не может нарушить внешний мир или ОС хоста, поскольку он не имеет доступа.

Он может уничтожить вашу виртуальную машину, но если это возможно, вы можете просто восстановить ее из моментального снимка.

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

Другим вариантом может быть LXC дополнительная информация здесь

LXC - это пакет управления пользовательским пространством для Linux Containers, легкий механизм виртуальной системы, который иногда называют «chroot on steroids».

LXC формируется из chroot для реализации полных виртуальных систем, добавляя механизмы управления ресурсами и изоляции к существующей инфраструктуре управления процессами Linux.

Он доступен в программном центре. Однако у меня нет опыта.

    
ответ дан Warren Hill 09.05.2013 в 10:46
7

Mbox

«Mbox - это легкий механизм песочницы, который любой пользователь может использовать без особых привилегий в товарных операционных системах». Ссылка

- Ссылка

Я использовал его для нескольких вещей надежно.     

ответ дан 0x78 13.02.2014 в 04:10
6

Firejail является довольно новым и постоянно развивается. Прост в использовании.

Вы можете просто:

sudo apt-get install firejail
firejail app
    
ответ дан penguinforsupper 10.12.2015 в 18:10
2

Вы можете использовать subuser , чтобы изолировать ваши приложения с помощью Docker. Это позволяет делать такие вещи, как приложения с графическим интерфейсом sandbox, что нелегко сделать с Docker напрямую.

    
ответ дан timthelion 14.08.2015 в 17:19
1

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

ответ дан Phlya 09.05.2013 в 10:50
0

Если вы просто хотите, чтобы песочница работала с пользователями, вы можете использовать «dosh» Ссылка

    
ответ дан ubuser 15.11.2017 в 13:32