Использование binfmt-misc в сочетании с xattrs

В настоящее время я использую на своем компьютере 14.04 часть программного обеспечения для песочницы, которое изолирует двоичные файлы Linux друг от друга (используя специальный тип изоляции пространства имен, отличный от AppArmor)

В настоящее время способ вызова песочницы подобен Итак:

/usr/local/bin/sandbox /path/to/binary --optional-arguments

Моя проблема в том, что я хочу вызвать некоторые произвольные двоичные файлы и заставить их выполняться в «песочнице» , без перед добавлением части /usr/local/bin/sandbox к моей команде оболочки. Т.е.:

/usr/local/bin/sandbox /path/to/binary --optional-arguments --> *new process*

становится:

/path/to/binary --optional-arguments --> *binfmt-misc* --> *new process*

Я подумал, что могу легко сделать это благодаря binfmt-misc, однако после прочтения документации кажется, что он поддерживает запрос на переводчика через магические биты в самом файле или через расширение файла. Поскольку в данном конкретном случае ничего подобного делать не нужно, я искал в binfmt-misc опцию, которая позволяла бы мне указывать расширенные атрибуты для определенных двоичных файлов, которые я хочу запустить в песочнице, чтобы binfmt-misc мог затем прочитать и используйте, чтобы определить, что эти двоичные файлы должны запускаться /usr/local/bin/sandbox «интерпретатором». Тем не менее, мне еще предстоит найти такую ​​особенность, которая позволила бы мне сделать это.

Есть ли какой-нибудь способ, которым я могу добиться запуска произвольных двоичных файлов ELF без расширения, скомпилированного для той же архитектуры, что и мой компьютер, использующий песочницу автоматически?

4
задан 5 May 2016 в 06:34

1 ответ

Я не знаю о способе сделать это через binfmt-misc и xattrs, но я предложу другой подход. Я не испытал его, но я не вижу, почему это не работало бы.

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

Запись универсальный сценарий обертки:

#!/bin/sh
exec /usr/local/bin/sandbox "${0#/sandboxed}" "$@"

Создают каталог /sandbox и создают объединение, монтируют что тени корневая файловая система. Я буду использовать aufs (Ubuntu: aufs-tools ), от которого, к сожалению, недавно отказались; может быть лучший выбор.

mount -t aufs -o br:/,br:/sandbox aufs-sandbox /

Для каждого исполняемого файла, который Вы хотите поиграть в песочнице, свяжитесь /sandbox/path/to/foo со сценарием обертки (после создания необходимых каталогов /path/to под /sandbox).

0
ответ дан 5 May 2016 в 16:34
  • 1
    Мои причины не доверчивый CHI является главным образом безопасностью, у меня скорее есть Ориентированный на многопотоковое исполнение PHP, чем Не Ориентированный на многопотоковое исполнение, игнорируя, как быстро это может работать как CGI. – jfha73 18 October 2017 в 03:59

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

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