Запуск Firefox в песочнице

Запуск Firefox в песочнице

SecurityУтилиты Linux

Запуск Firefox в песочнице — полное руководство для специалиста.

Введение

В августе 2015 года исследователь безопасности Mozilla Cody Crews уведомил Mozilla о том, что вредоносная реклама на российском новостном сайте использует уязвимость в Firefox PDF Viewer. Эксплойт искала конфиденциальные файлы в локальной файловой системе пользователя и, как сообщается, загружал их на сервер злоумышленника. Конфигурация Firejail по умолчанию блокировала доступ к .ssh, .gnupg и .filezilla во всех каталогах, находящихся в /home. А более продвинутые конфигурации песочницы блокируют все остальные угрозы.

 

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

 

 

Запуск в Firefox

Самый простой способ запустить песочницу — это указать как префикс команды «firejail»:

$ firejail firefox

 

 

Если песочница уже интегрирована с вашим менеджером рабочего стола, запустив «sudo firecfg».

 

Примечание: по умолчанию один экземпляр процесса Firefox обрабатывает несколько окон браузера. Если у вас уже запущен Firefox, вам нужно будет использовать параметр командной строки -no-remote, в противном случае вы получите новую вкладку или новое окно, присоединенное к существующему процессу Firefox:

 

 

$ firejail firefox -no-remote

 

 

Описание песочницы

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

Whitelisting-home-files-and-directories-for-Firefox-browser.

 

 

Примечание. Реальными являются только каталоги ~/Downloads и ~/.mozilla, все остальные каталоги создаются только для Firefox. Firejail устанавливает одинаковую структуру домашних каталогов для всех поддерживаемых браузеров и клиентов BitTorrent. Пожалуйста, убедитесь, что вы сохранили все загруженные файлы в каталоге ~/Downloads.

 

 

Вот как выглядит остальная часть файловой системы:

  • /boot — в черном списке
  • /bin — только для чтения
  • /dev — только для чтения; присутствует небольшое подмножество драйверов, все остальное удалено
  • /etc — только для чтения; /etc/passwd и /etc/group были изменены, чтобы ссылаться только на текущего пользователя; вы можете включить подмножество файлов, отредактировав /etc/firejail/firefox-common.profile (раскомментируйте строку private-etc в этом файле)
  • /home — виден только текущий пользователь
  • /lib, /lib32, /lib64 — только для чтения
  • /proc, /sys — перемонтируется для отображения нового пространства имен PID; видны только процессы, запущенные браузером
  • /sbin — в черном списке
  • /selinux — в черном списке
  • /usr — только для чтения; /usr/sbin в черном списке
  • /var — только для чтения; аналогично домашнему каталогу, доступна только основная файловая система
  • /tmp — присутствуют только каталоги X11

 

Файлы паролей, ключи шифрования и средства разработки удаляются из песочницы. Если Firefox пытается получить доступ к помещенному в черный список файлу, сообщения журнала отправляются в системный журнал. Пример:

Dec 3 11:43:25 debian firejail[70]: blacklist violation - sandbox 26370, exe firefox, syscall open64, path /etc/shadow
Dec 3 11:46:17 debian firejail[70]: blacklist violation - sandbox 26370, exe firefox, syscall opendir, path /boot

 

 

Следующие фильтры безопасности включены по умолчанию. Назначение этих фильтров — уменьшить поверхность атаки ядра и защитить контейнер файловой системы:

  • seccomp-bpf — мы используем большой фильтр seccomp. Это одновременно двойной 32-битный и 64-битный фильтр.
  • protocol — этот фильтр на основе seccomp проверяет первый аргумент системного вызова сокета. Это позволяет пользоваться IPv4, IPv6, UNIX и netlink.
  • noroot user namespace — устанавливает пространство имен только с текущим пользователем.
  • capabilities — песочница отключает все возможности Linux, ограничивая возможности пользователя root в песочнице.
  • AppArmor — начиная с Firejail версии 0.9.53, если AppArmor в системе активен и /etc/apparmor.d/firejail-default включен, профиль будет активирован по умолчанию для около 140 приложений, включая браузеры, клиенты BitTorrent и мультимедиа.

 

Конфигурация seccomp обеспечивает соблюдение правил, завершая процессы браузера. Сообщения журнала отправляются в системный журнал. Пример:

Dec 8 09:48:21 debian kernel: [ 4315.656379] audit: type=1326 audit(1449586101.336:8): auid=1000 uid=1000 gid=1000 ses=1 pid=22006 comm="chmod" exe="/bin/chmod" sig=31 arch=c000003e syscall=268 compat=0 ip=0x7f027999f6b9 code=0x0
Dec 8 12:53:57 debian kernel: [17261.662738] audit: type=1326 audit(1450461237.367:2): auid=1000 uid=1000 gid=1000 ses=1 pid=4750 comm="strace" exe="/usr/bin/strace" sig=31 arch=c000003e syscall=101 compat=0 ip=0x7ff42f8cdc6c code=0x0

 

 

Для большинства пользователей достаточно стандартной настройки firejail firefox. Ниже приведены некоторые особые случаи!

 

 

Настройка браузера с высоким уровнем безопасности

Используйте эту настройку для доступа к вашему банковскому счету или любому другому сайту, имеющему дело с конфиденциальной конфиденциальной информацией. Идея в том, что вы доверяете сайту, но не доверяете надстройкам и плагинам, установленным в вашем браузере. Используйте параметр –private Firejail для запуска с заводской конфигурацией браузера по умолчанию и пустым домашним каталогом.

Кроме того, вам необходимо позаботиться о настройке DNS — текущие домашние маршрутизаторы смехотворно небезопасны, и самая простая атака — перенастроить DNS и перенаправить трафик на поддельный веб-сайт банка. Используйте параметр –dns Firejail, чтобы указать конфигурацию DNS для вашей песочницы:

$ firejail --private --dns=1.1.1.1 --dns=9.9.9.9 firefox -no-remote

 

 

Настройка рабочей директории

В этой настройке мы используем каталог /home/username/work для работы, электронной почты и просмотра веб-страниц. Вот как мы все настроим:

$ firejail --private=/home/username/work thunderbird &
$ firejail --private=/home/username/work firefox -no-remote &

 

 

Что Mozilla Thunderbird, что Firefox будут считать ~/work домашним каталогом пользователя.

 

 

Настройка сети

Предполагая, что eth0 является основным интерфейсом Ethernet, мы создаем новый стек TCP/ IP, подключаем его к проводной сети Ethernet и запускаем браузер:

$ firejail --net=eth0 firefox

 

 

Network-namespace-configured-in-a-Firejail-sandbox

 

 

Чтобы назначить IP-адрес, Firejail ARP сканирует сеть и выбирает случайный адрес, который еще не используется. Конечно, мы можем выполнить это в ручном режиме:

$ firejail --net=eth0 --ip=192.168.1.207 firefox

 

 

Примечание: Ubuntu запускает локальный DNS-сервер в пространстве имен сети хоста. Сервер не виден внутри песочницы. Используйте параметр –dns для настройки внешнего DNS-сервера:

 

$ firejail --net=eth0 --dns=9.9.9.9 firefox

 

 

По умолчанию, если запрашивается сетевое пространство имен, Firejail устанавливает сетевой фильтр, настроенный для обычного просмотра Интернета. Это обычный фильтр iptable. Вот пример установки, где доступ к локальной сети запрещен:

$ firejail --net=eth0 --netfilter=/etc/firejail/nolocal.net firefox

 

 

Кроме того, вы можете даже добавить файл hosts, реализующий блокировку рекламы:

$ firejail --net=eth0 --netfilter=/etc/firejail/nolocal.net \
--hosts-file=~/adblock firefox

 

 

Песочница X11

Firejail заменяет обычный сервер X11 серверами Xpra или Xephyr (apt-get install xpra xserver-xephyr в Debian/Ubuntu), предотвращая доступ клавиатурных регистраторов X11 и записи экрана основного сервера X11.

Команды следующие:

$ firejail --x11 --net=eth0 firefox

 

 

Сетевое пространство имен, инициализированное с помощью –net, необходимо для отключения абстрактного сокета X11. Если по каким-либо причинам вы не можете использовать сетевое пространство имен, сокет все равно будет виден внутри песочницы, и хакеры прикрепят сокет-программы и скриншоты только к нему.

 

 

Спасибо за уделенное время на прочтение статьи!

Если возникли вопросы, задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Ciscoкурсы по кибербезопасности,  полный курс по кибербезопасностикурсы DevNet (программируемые сети) от Академии Ciscoкурсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

Курсы Cisco и Linux с трудоустройством!

Спешите подать заявку! Осталось пару мест. Группы стартуют 22 июля, а следующая 19 августа, 23 сентября, 21 октября, 25 ноября, 16 декабря, 20 января, 24 февраля.
Что Вы получите?
  • Поможем стать экспертом в сетевом администрировании и получить международные сертификаты Cisco CCNA Routing & Switching или Linux LPI.
  • Предлагаем проверенную программу и учебник экспертов из Cisco Networking Academy и Linux Professional Institute, сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и сделать карьеру. 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проводим вечерние онлайн-лекции на нашей платформе или обучайтесь очно на базе Киевского офиса.
  • Спросим у вас об удобном времени для практик и подстроимся: понимаем, что времени учиться мало.
  • Если хотите индивидуальный график — обсудим и осуществим.
  • Выставим четкие дедлайны для самоорганизации. Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
А еще поможем Вам:
  • отредактировать резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроим на работу в Cisco по программе Cisco Incubator, New Graduate и Experienced. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco CCNA Routing & Switching и Linux LPI, подайте заявку или получите бесплатную консультацию.
SecurityУтилиты Linux

Больше похожих постов

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения

Самое читаемое
Меню