- Mbox
- TL;DR
- О какой «песочнице» мы говорим?
- При каких обстоятельствах Mbox может помочь?
- Использование 1: Установка пакетов без рута
- Использование 2: Безопасный запуск неизвестного двоичного файла
- Использование 3: Контрольные точки файловая система
- Использование 4: Среда сборки / разработки
- Использование 5: песочница на основе профиля
- Установка
- Пакеты
- Arch Linux
- Debian
- Вот список доступных опций
Mbox
Mbox – это легкий механизм песочницы, который любой пользователь может использовать без специальных привилегий в обычных операционных системах.
$ git clone https://github.com/tsgates/mbox
TL;DR
$ mbox -- wget google.com
...
Network Summary:
> [11279] -> 173.194.43.51:80
> [11279] Create socket(PF_INET,...)
> [11279] -> a00::2607:f8b0:4006:803:0
...
Sandbox Root:
> /tmp/sandbox-11275
> N:/tmp/index.html
[c]ommit, [i]gnore, [d]iff, [l]ist, [s]hell, [q]uit ?>
О какой «песочнице» мы говорим?
Mbox представляет новую модель использования песочницы; при выполнении программы в песочнице Mbox не позволяет программам изменять файловую систему хоста, создавая у них впечатление, что они действительно вносят эти изменения.
Mbox достигает этого, предоставляя многоуровневую файловую систему изолированной программной среды и вставляя системные вызовы с помощью ptrace и seccomp / BPF.
В конце выполнения программы пользователь может проверить изменения в файловой системе песочницы и выборочно зафиксировать их обратно в файловую систему хоста.
При каких обстоятельствах Mbox может помочь?
Использование 1: Установка пакетов без рута
$ mbox -R -- apt-get install git
(-R: эмулировать среду fakeroot)
Использование 2: Безопасный запуск неизвестного двоичного файла
$ mbox -n -- wget google.com
(-n: отключить удаленный доступ к сети)
Использование 3: Контрольные точки файловая система
$ mbox -i -- sh
(-i: включить интерактивный режим фиксации)
Использование 4: Среда сборки / разработки
$ mbox -r outdir -- make
(-r dir: указать файловую систему песочницы)
Использование 5: песочница на основе профиля
$ mbox -p build.prof -- ./configure
(-p prof: enable profile-based policy)
## build.prof
[fs]
allow: .
hide: ~
Установка
Пакеты
Я настоятельно рекомендую вам использовать последнюю версию mbox, и вот несколько простых способов попробовать mbox.
Arch Linux
$ sudo aurget -S mbox-git
или
$ wget http://pdos.csail.mit.edu/mbox/mbox-latest-x86_64.pkg.tar.xz
$ sudo pacman -U mbox-latest-x86_64.pkg.tar.xz
Debian
$ wget http://pdos.csail.mit.edu/mbox/mbox-latest-amd64.deb
$ sudo dpkg -i mbox-latest-amd64.deb
Вот список доступных опций
$ mbox -h
usage: mbox [-r root] [-s] [PROG]
...
-m : keep md5 of original files
-c : count time, calls, and errors for each syscall and report summary
-d : enable syscall trace to stderr
-D : enable debug
-p file : load profile (see. NOTE.profile)
-t : run as unit tester (check pre/post condition, see tests-sbox/NOTE)
-n : disable network accesses
-S : enable nested seccomp
-i : disable interactive session at the end
-s : use seccomp instead of ptrace
-R : fakeroot
-C path : change directory
-r path : sandbox root (default:/tmp/sandbox-)