Как сделать песочницу для приложений?

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

77
задан 27 January 2014 в 18:25

8 ответов

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

1
ответ дан 27 January 2014 в 18:25

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

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

sudo apt-get install firejail
firejail app
20
ответ дан 27 January 2014 в 18:25

Полная виртуализация / эмуляция (VirtualBox)

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

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

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

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

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

Виртуализация на основе контейнеров (Docker / LXC)

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

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

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

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

12
ответ дан 27 January 2014 в 18:25

субпользователем

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

sudo apt install subuser
4
ответ дан 27 January 2014 в 18:25

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

13
ответ дан 27 January 2014 в 18:25

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

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

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

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

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

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

28
ответ дан 27 January 2014 в 18:25

DoSH - Docker SHell

В случае, если вы просто хотите изолировать активность пользователей, вы можете использовать «DoSH»

DoSH (что означает Docker SHell) - это разработка для создания контейнеров Docker, когда пользователи входят в систему Linux. систему и запустить в них оболочку вместо простого создания оболочки.

1
ответ дан 27 January 2014 в 18:25

mbox

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

I've used it for a couple things reliably.

9
ответ дан 27 January 2014 в 18:25

Другие вопросы по тегам:

Похожие вопросы: