ßàØÃÂâÕàë áÕÓÞÔÃÂï - Xakep Online
ßàØÃÂâÕàë áÕÓÞÔÃÂï - Xakep Online
ßàØÃÂâÕàë áÕÓÞÔÃÂï - Xakep Online
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
120 UnixoidХАКЕР 04 /171/ 2013ОПЦИИ КОМАНДНОЙ СТРОКИ ARKOSE# schroot -c quantal-skype -u root# addgroup --gid 1000 skype# adduser --disabled-password --force --uid 1000--gid 1000 skypeПосле этого ставим свежескачанный Skype — опять жев chroot — и удовлетворяем его зависимости:# dpkg --force-all -iskype-ubuntu-precise_4.1.0.20-1_i386.deb# apt-get -f install# exitВ основной системе разрешаем соединения с X-серверомс localhost и заходим в chroot как обычный пользователь:$ xhost +localhost$ cd / && schroot -c quantal-skype -u rom /bin/bashУстанавливаем переменную DISPLAY (которую надо посмотретьв основной системе) и запускаем Skype:$ export DISPLAY=":0.0"$ skype --dbpath=/home/skype/.Skype &Скайп успешно установлен и запущен в chroot-окружении.Можно было бы написать скрипт для облегчения запуска,но это ты можешь сделать и сам.ИСПОЛЬЗОВАНИЕ ARKOSEArkose действует аналогично песочницам в Windows, таким,например, как Sandboxie. Практически это удобная оберткадля контейнеров LXC. Но, как известно, удобство и гибкостьпорой несовместимы — тонкая настройка создаваемых контейнеровзатруднительна. Из плюсов отмечу интуитивно понятныйинтерфейс (это если использовать GUI — впрочем,запуск из командной строки тоже очень прост), из минусовже — по умолчанию требует довольно много свободного местана жестком диске и имеются некоторые возможные пути обхода;но, если использовать Arkose как дополнительную оберткудля потенциальных путей внедрения малвари (браузер) илидаже просто для экспериментов с каким-нибудь интереснымОткат на снапшот BtrfsWWWhttps://btrfs.wiki.kernel.org— wiki по Btrfs.www.palecrow.com/chroot-jail-paper.html— пример запускадемона в chrootокружении.Несколькоустарело, однакообщие принципыостались те же.Развертывание в chrootбазовой системы с помощьюdebootstrap• n {none,direct,filtered} — отображение сети на песочницу.Опции none и direct не требуют пояснения, filtered создаетдля каждой песочницы свой интерфейс. На практике желучше использовать либо none, либо direct, посколькуfiltered настраивать достаточно долго.• d {none,system,session,both} — доступ к шинам D-Bus из песочницы.• s размер — устанавливает размер хранилища в мегабайтах.По умолчанию 2000 Мб для ext4 или половина памятидля tmpfs. После завершения работы запускаемой в песочницепрограммы хранилище уничтожается.• t [ext4,tmpfs] — тип файловой системы хранилища. По дефолтуиспользуется ext4.• root каталог — указывает каталог, который отображаетсяна песочницу в качестве корня.• root-type {cow,bind} — как именно отображать корень. Еслииспользовать cow, то любые изменения после закрытияпесочницы пропадут, а если bind — сохранятся.• base-path — указывает место хранения песочницы.По умолчанию это ~/.arkose.• bind каталог и --cow каталог — отображает каталог либо в режимеcow, либо напрямую. Естественно, использованиетой или иной опции зависит от типа отображения корня —использовать опцию --cow на каталоге, который и так ужеcopy-on-write, не имеет смысла.• h — использовать реальный домашний каталог. Действуетаналогично --bind $HOME.• p — разрешает использовать PulseAudio.приложением, это никак не повредит. Перед тем как использоватьArkose, его надо установить. Процедура стандартна:$ sudo apt-get install arkose-guiБудет установлен как графический интерфейс (arkose-gui),так и утилита командной строки (arkose). Графический интерфейснастолько прост, что описывать его я смысла не вижу, лучшесразу перейдем к практике. Для примера запустим Firefox:$ sudo arkose -n direct -p firefoxДанная команда запустит Firefox с доступом к сетии к PulseAudio. Поскольку для каждого вновь создаваемогоконтейнера по умолчанию создается свой домашний каталог,то и профиль огнелиса будет новый, без установленных до-SECCOMP И SECCOMP-BPFSeccomp — малоизвестный механизм, внедренныйеще в ядро 2.6.12, который позволяет процессу совершитьодносторонний переход в «безопасное» состояние,где ему будет доступно только четыре системныхвызова — exit(), sigreturn(), read() и write(), причем последниедва доступны только для уже открытых файлов.Если же процесс попытается вызвать любой другойсисколл, он будет немедленно убит.Очевидно, что это решение не очень гибкое. В связис этим в ядре 3.5 появился seccomp-bpf, которыйпозволяет с помощью правил BPF тонко настраивать,какие именно системные вызовы (и их аргументы)разрешены, а какие — нет. Seccomp-bpf применяетсяв Google Chrome, Chrome OS, а также бэкпортированв Ubuntu 12.04.