LINUX.ORG.RU
ФорумTalks

Если вы виртуализируете Firefox/Chrome, то как?

 , , ,


2

2

В последнее время стало как-то не по себе из-за обилия 0 day уязвимостей в Firefox, о которых к тому же становится известно после того, как in the wild эксплоиты уже вовсю используют. Так, в Firefox 50.0.2/45.5.1 закрыли дыру, которая мило позволяет хакеру получить права пользователя после того, как он всего лишь зайдёт на «плохой» сайт. Проблема усугубляется тем, что ходить по плохим сайтам не обязательно - экслоит можно засунуть в баннерую сеть или послать мылом.

В связи с этим есть мысли запуска Firefox/Chrome в виртуальной среде. Если вы это уже реализовали - расскажите как, с полной инструкцией. Вариант запуска полноценной виртуалки, например, в VirtualBox/VMWare Workstation/KVM/etc. не предлагать - ибо в этом случае есть несколько сложностей: сложно правильно настроить выделение памяти, не понятно как пробросить микрофон, не ясно как будет работать ускорение вывода графики (сейчас браузерам даже для 2D подавай GPU).

Решение должно удовлетворять следующим требованиям: 1) возможность выделения папки реального компьютера для загрузок 2) возможность лёгкого обновления браузера 3) должен хотя бы работать вывод аудио

Крайне желательно 1) Возможность использования микрофона 2) Нормальная скорость проигрывания на видео хостингах (youtube/etc).

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

★★★★★

Чуваг, решение найдено стопицот тысяч лет назад - запускай браузер от другого низкопривелигерованного пользователя.

1) возможность выделения папки реального компьютера для загрузок

Права пользователей - в том числе и расширенные - не не слышал!

папки

Ужас какой.

Ygor ★★★★★ ()
Последнее исправление: Ygor (всего исправлений: 2)

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

ты лично знаком с папкой своего компьютера?

если без трололо - можешь юзать links с графикой, но там нет звука и видео. либо просто пускай браузер из-под другого юзера. скрипт напиши чтоб в консоль каждый раз не бегать и все

upcFrost ★★★★★ ()

После бага с пиздингом системных паролей при просмотре PDF, я просто запилил сильно лютый профиль для AppArmor, хотя планирую также ещё и firejail прикрутить со временем.

DawnCaster ★★ ()

Ничего, FF перепишут на rust, и ни одной уязвимости не будет. Вообще!

GoodRiddance ()

Тут скорей чем ты готов пожертвовать в плане удобства, для своей безопасности. Ты не сильно выиграешь запуская браузер в контейнере (гугли GUI in lxd, например), если же ты будешь запускать это дело еще и в отдельном легком аналоге Xorg, то про ускорение и оформление можешь совсем забыть. Так что пожалуй если безопасность действительно в приоритете, то запускай браузер в настоящей виртуалке. Что как раз подразумевает:

VirtualBox/VMWare Workstation/KVM/etc.

И да ты можешь найти какие-то решения, но тебе все-равно их придется адаптировать их свои задачи, потому-что иначе ты просто будешь ложно считать себя в безопасности. И да MAC от уязвимости про которую ты говорил никак не защитит, только данные не даст скачать, которые ты запретил. А так да, получил сначала права пользователя, потом уже 0 day локально рута. С контейнеров и виртуалок тоже убегали, более того в виртуалке проще получить доступ к железу. А контейнеры вообще некотороые под рутом запускаются. Все печально.

сложно правильно настроить выделение памяти, не понятно как пробросить микрофон, не ясно как будет работать ускорение вывода графики

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

anonymous_sama ★★★★★ ()
Последнее исправление: anonymous_sama (всего исправлений: 1)
Ответ на: комментарий от Harald

ты думаешь, в links не находили уязвимости?

находили, но это уж как неуловимый джо

upcFrost ★★★★★ ()

OMG создаём кастрированного пользователя, запрещаем ему доступ куда угодно, кроме кэша и нужной «папки» (луч поноса тебе). Запускаем браузер от имени этого пользователя. Всё.

Zoominger ()
Ответ на: комментарий от TheAnonymous

Примерно так:

 profile="/usr/lib/firefox/firefox{,*[^s][^h]}" name="/bin/dash" pid=18982 comm="firefox" requested_mask="x" denied_mask="x"
В том конкретном эксплоите получали доступ к «VirtualAlloc» в «kernel32.dll», в Windows, но если это будет уязвимая библиотека, к которой разрешен доступ firefox, то последствия трудно предсказать, особенно если после будут еще какие-то дальнейшие действия. Или если будет записываться что-то в файлы в downloads, а это директория к которой у firefox обычно есть доступ. А потом ты откроешь картинку например, а там уязвимость в какой-нибудь libpng и вот уже получен доступ к файлам, которые МАС в рамках профиля firefox блокирует. А потом уже и до local root раскручиваться, или просто ждать если актуальных эксплоитов нет. Более того например, те же ssh ключи обычно у всех хранятся в ~/.ssh, так как с -i мало кто использует, поэтому если захотеть и иметь доступ к 0 day эксплоитам, то это все можно даже как-то автоматизировать и направить удар на определенную категорию пользователей.

anonymous_sama ★★★★★ ()

Говорят, ещё KOI8-R использовать безопаснее.

Deleted ()
Ответ на: комментарий от anonymous_sama

Да цели разные могут быть, можно полезть в неподписанные аддоны и что-то там для плохого seo сделать, или просто сменить network.proxy.type на direct и собирать адреса пользователей. Черех аддоны вообще можно такой конфиг для firefox установить, что не только повредит безопасности, но и например сертификаты в исключения добавить, HSTS отключить и т.д.

anonymous_sama ★★★★★ ()
Последнее исправление: anonymous_sama (всего исправлений: 1)
Ответ на: комментарий от anonymous_sama

если это будет уязвимая библиотека, к которой разрешен доступ firefox, то последствия трудно предсказать

По идее, эта библиотека будет работать в том же контексте, и даже если сможет получить рута, всё равно не будет иметь доступа к файлам.

А потом ты откроешь картинку например, а там уязвимость в какой-нибудь libpng и вот уже получен доступ к файлам, которые МАС в рамках профиля firefox блокирует

Да, только здесь уже не спасёт ни links, ни wget, ни виртуалка, ни даже отдельный компьютер.
По хорошему для всех программ, которые обрабатывают внешние данные, тоже должны быть политики MAC

TheAnonymous ★★★★★ ()

нуу тут нужен как минимум докер(и то эксплойт может и его пробивать, ведь таких как ты будет много, и хакеры сразу догадаются что к чему). Побробуй всё же в виртуалке с пробросом GPU и микрофона запускать этот самый докер, тогда, может быть, обойдется. Папка с виртуалкой шарится довольно легко, но лучше синхронизируй только при вырубленном браузере.

f1u77y ★★★ ()
Ответ на: комментарий от TheAnonymous

По идее, эта библиотека будет работать в том же контексте, и даже если сможет получить рута, всё равно не будет иметь доступа к файлам.

Да я об этом написал выше, но не факт что атака на этом остановится.

если сможет получить рута

То он просто отключит MAC, переписав бинарник к которому есть доступ у Firefox и запустит его от рута, например.

По хорошему для всех программ, которые обрабатывают внешние данные, тоже должны быть политики MAC

Только не у всех они есть.

anonymous_sama ★★★★★ ()
Ответ на: комментарий от anonymous_sama

переписав бинарник к которому есть доступ

Зачем разрешать ему перезаписывать бинарники? MAC действует над UNIX-правами, рут тоже подчиняется политикам и не может делать всё.

Впрочем, уязвимость может быть и в самом MAC, или уровнем ниже, в ядре.

Только не у всех они есть

Да вообще какой-либо MAC есть далеко не у всех. Или как в убунте, формально есть (apparmor), но по умолчанию профили только для 3,5 демонов, а для десктопного софта, как firefox, нет.
Это ещё надо быть параноиком, чтобы заморачиваться

TheAnonymous ★★★★★ ()
Ответ на: комментарий от TheAnonymous

Много профилей на самом деле, пусть и не все актуальны. Для Firefox профиль идет с ним, но он disabled по умолчанию. С некоторым софтом профили уже идут. Для Firefox профиль не самый идеальный дефолтный, но он сделан так, чтобы тот же flash не ломать и другие плагины. А вот сюда можно бинарники записать:

# Allow 'x' for downloaded extensions, but inherit policy for safety
 owner @{HOME}/.mozilla/**/extensions/** mixr,
Еще есть gmp, с которым возможно тоже можно что-то провернуть.
Он есть не формально, он работает и установлен по умолчанию, а то что они не инфорсят все подряд профили, это правильно. Оно мало кому реально нужно на самом деле. И если конфиги лежат в нестандартных местах, то профиль просто скорей всего сломает работу приложения.

anonymous_sama ★★★★★ ()
Последнее исправление: anonymous_sama (всего исправлений: 1)
Ответ на: комментарий от anonymous_sama

сюда можно бинарники записать
inherit policy for safety

Должны работать с теми же правами, что и firefox.
Хотя, я не разбираюсь в apparmor, точно не знаю, что здесь подразумевается. Может и решето.

Оно мало кому реально нужно на самом деле. И если конфиги лежат в нестандартных местах, то профиль просто скорей всего сломает работу приложения.

О чём и речь.
Например, в федоре и прочих red hat в случае каких-то проблем первое решение - отключить нафиг selinux.

TheAnonymous ★★★★★ ()
Ответ на: комментарий от TheAnonymous

Должны работать с теми же правами, что и firefox.
Хотя, я не разбираюсь в apparmor, точно не знаю, что здесь подразумевается. Может и решето.

Можно запустить любой бинарник от пользователя с которым выполняется Firefox, профиль все еще действует, но скорей всего этого будет достаточно чтобы получить рута. В случае если же рут уже получен можно писать в /dev/dri* и в случае дефолтного профиля запись и чтение всей системной почты (spool, mbox, maildir) и доступ к java, python и bash пусть и рамках профиля. Думаю это не такая уж и ограниченная ситуация. Впрочем записи в bash profile/rc хотя бы нет, только доступ к истории.

anonymous_sama ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.