The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Улучшение sandbox-изоляции в Firefox

12.05.2018 11:35

В недавно выпущенном релизе Firefox 60 была существенно улучшена sandbox-изоляция для платформы Linux, но к сожалению данное новшество не было отражено в официальном списке изменений. Процессы обработки контента, в которых осуществляется отрисовка web-страниц и выполнение JavaScript-кода, теперь лишены возможности прямой установки сетевых соединений и использования Unix-сокетов для обращения к локальным сервисам, таким как PulseAudio. Также теперь блокируются любые обращения к System V IPC (исключение сделано только для взаимодействия с fglrx и VirtualGL). В настройках about:config блокирование сетевого доступа ассоциировано с четвёртым уровнем изоляции в параметре security.sandbox.content.level.

Sandbox-изоляция значительно усложняет эксплуатацию уязвимостей в web-движке и вынуждает для проведения атаки на систему применять более сложные комбинации, охватывающие несколько уязвимостей в разных подсистемах. Блокирование сетевого доступа в процессах обработки контента позволяет исключить все нештатные пути отправки трафика, например, при включении работы через прокси в настройках доступ теперь возможен только через прокси, даже в случае эксплуатации уязвимости и попытки прямой установки соединения (особенно изменение актуально для защиты от атак по деанонимизации пользователей Tor Browser). Не менее важна блокировка доступа через unix-сокеты, так как эта возможность позволяет обратиться от имени пользователя к локальным сервисам, RPC-интерфейс которых допускает команды, в результате которых можно выполнить код в системе.

Блокировка реализована через запрет системных вызовов, таких как connect, и помещение процесса в отдельное пространство имён идентификаторов пользователя (user namespaces), по аналогии с тем как реализуется изоляция для контейнеров. Исключение сделано только для протокола X11, который применяется для отображения графики и приёма событий ввода (в будущих выпусках планируют реализовать защиту и для канала связи с X11).

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

В обычных условиях для настройки sandbox в Firefox требуется предоставление полномочий CAP_SYS_ADMIN, CAP_SYS_CHROOT и CAP_SET(UG)ID, которых достаточно для получения полноценных прав пользователя root. Применение user namespaces позволяет получить необходимые права в отдельном окружении без поднятия привилегий основного процесса. Но из-за обилия уязвимостей, которые можно эксплуатировать только при включенном user namespaces, данную возможность часто отключают, например, по умолчанию user namespaces отключен в Debian и Red Hat Enterprise Linux, но активен в Ubuntu и Fedora.

  1. Главная ссылка к новости (https://www.morbo.org/2018/05/...)
  2. OpenNews: Атака на системы с rTorrent для скрытого майнинга криптовалюты
  3. OpenNews: Уязвимость в BitTorrent-клиенте Transmission, позволяющая выполнить код
  4. OpenNews: В ночные сборки Firefox добавлена начальная поддержка sandbox-изоляции
  5. OpenNews: Выпуск sandboxed-tor-browser, прослойки для изоляции Tor Browser
  6. OpenNews: Обновление web-браузера Tor Browser 7.0.7 с поддержкой sandbox для Linux
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/48589-firefox
Ключевые слова: firefox, sandbox, limit
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (44) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 12:33, 12/05/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Т.е. теперь не будет выявления критических уязвимостей каждый месяц, или ещё нет?
     
     
  • 2.2, Аноним (-), 12:37, 12/05/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Это плохо или хорошо?
     
     
  • 3.7, Аноним (7), 13:53, 12/05/2018 [^] [^^] [^^^] [ответить]  
  • +/
    И хорошо и плохо.
     
     
  • 4.32, Аноним (-), 20:22, 12/05/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > И хорошо и плохо.

    Критическая уязвимость Шредингера. Wait, oh shi-!

     

  • 1.6, Stax (ok), 13:48, 12/05/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    > для платформы Linux, но к сожалению данное новшество не было отражено в официальном списке изменений

    Мда. Очередное свидетельство, насколько им положить на пользователей ОС, отличных от винды.

    > Также теперь блокируются любые обращения к System V IPC

    Так а что с POSIX IPC? Как бы SysV IPC уже давным-давно считается устаревшим, и хотя убирать его, конечно, никто не будет, всем приложениями настоятельно рекомендовано использовать POSIX вариант, в котором есть целый набор преимуществ (thread safety, разделяемая память более явная и удобнее управляется и т.п.). А технически он реализован совершенно независимо и через другие API.

    Несколько странно блокировать SysV и ничего не делать про POSIX вариант.

    Автор новости может прокомментировать? А то даже ссылки на багтрекер нет, где собственно это изменение делали (

     
     
  • 2.11, Аноним (-), 14:22, 12/05/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Несколько странно блокировать SysV и ничего не делать про POSIX вариант.

    Это мозилла, они только и умеют что "безопасные" просмотрщики PDF на JS наворачивать.

     
     
  • 3.24, Kuromi (ok), 16:48, 12/05/2018 [^] [^^] [^^^] [ответить]  
  • +/
    А иного просмотрщика и не будет, проект Mortar (PDFium их Хрома) официально закрыт, наработки в мусорку.
     
     
  • 4.31, Аноним (-), 20:21, 12/05/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > А иного просмотрщика и не будет, проект Mortar (PDFium их Хрома) официально
    > закрыт, наработки в мусорку.

    Тем хуже для мозиллы, я по сумме их достижений в результате хромиум использую. Там как-то больше результата и меньше хипстерского булшита. Не скажу что это здорово, ранние файрфоксы нравились больше. Версии так до 3 были очень даже. Но потом вместо разработчиков пришли маркетологи и все изгадили, про#$%в все достоинства программы и ничего не сделав взамен.

     
  • 3.43, Аноним (-), 01:02, 13/05/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А в чём твои претензии? С некоторых пор (57) pdf.js безопаснее системных просмотрщиков, благодаря песочнице. Коли не в теме - не надо вякать.
    https://github.com/The-OP/Fox/commit/cae3ccbcbc30921a6c3cae391d12c186138d3f03
     
     
  • 4.46, Аноним (-), 21:56, 13/05/2018 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Так безопасен, что Владимир Палант (изначальный автор адблока) накопал там кучу rce (в привилегированном контексте) уязвимостей.

     
  • 4.53, Аноним (-), 19:44, 14/05/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > просмотрщиков, благодаря песочнице. Коли не в теме - не надо вякать.

    Спасиб, я видел образчик такой JS-безопасности - клево оно харды сканило, наплевав на рассказы про "безопасность". Кроссплатформенно. Извини но настолько грубой нестыковки наблюдаемых реалий и заявлений разработчиков в вопросах безопасности достаточно и 1 раз для переоценки ситуации.

     
  • 2.17, пох (?), 15:56, 12/05/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Очередное свидетельство, насколько им положить на пользователей ОС, отличных от винды.

    по-моему, ровно наоборот - вон сколько гoвнoкода, пригодного только для одного лишь линукса, нашлепали. Других юникс-систем с точки зрения манки-кодера ведь нету.

     
     
  • 3.20, Аноним (-), 16:01, 12/05/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > по-моему, ровно наоборот - вон сколько гoвнoкода, пригодного только для одного лишь
    > линукса, нашлепали. Других юникс-систем с точки зрения манки-кодера ведь нету.

    Потому что отличаются в деталях, а тестить разработчику среднего пошиба один черт не на чем. Поэтому соляра может до упора какой там еще /dev/poll реализовывать, или что там у нее. Но лично мне будет не на чем это протестировать. Да и плевать мне как оно там работает - я это не видел и не увижу никогда, имхо.

     
     
  • 4.36, пох (?), 21:43, 12/05/2018 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > Потому что отличаются в деталях

    user namespaces - это не детали, это мертвый технологический тупик, в котором линукс по уши увяз.
    ТАК это делать больше никто и нигде не будет, поскольку насмотрелись.

    > Но лично мне будет не на чем это протестировать.

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

     
     
  • 5.41, Аноним (-), 23:58, 12/05/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Что там, в тупике-то?
     
  • 5.54, Аноним (-), 20:21, 14/05/2018 [^] [^^] [^^^] [ответить]  
  • +/
    На уровне технологий и реализации никаких фатальных провалов которые бы меня кор... большой текст свёрнут, показать
     
  • 2.25, Kuromi (ok), 16:52, 12/05/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> для платформы Linux, но к сожалению данное новшество не было отражено в официальном списке изменений
    > Мда. Очередное свидетельство, насколько им положить на пользователей ОС, отличных от винды.

    Как будто это нвовость. Не буду напоминать про отсутвие аппаратного декодирования видео, вялую разрабку аппаратного ускорения композинга и вывода на экран под Линуксом (притом что под Виндоус это все уже официально есть), так они даже свои WebExtentions под Линуксом в отдельном потоке не ерализовали. Было в Виндоус, кажется начиная с 60-ого есть и под Макинтошем, Линукс? "Может быть в 2018-ом".

    И это при том, что есть пара непритяных багов с WebEXt которые решаются именно включением отдельного процесса, их, соотвественно, отдельно не исправляют - остается только ждать.

     
  • 2.27, Kuromi (ok), 17:15, 12/05/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Автор новости может прокомментировать? А то даже ссылки на багтрекер нет, где
    > собственно это изменение делали (

    Вот ваша ссылочка в Багзиллу - https://bugzilla.mozilla.org/show_bug.cgi?id=1376910

    Но боюсь искомого ответа ПОЧЕМУ там нет. Могу только предположить что 1) до POSIX IPC еще не дошли руки, все таки играничения наращиваются постепенно, да и разработчков там не бесконечное количество 2) блокируют все что возможно заблокировать, так как такая тенденция

     
  • 2.33, КО (?), 20:25, 12/05/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >Мда. Очередное свидетельство, насколько им положить на пользователей ОС, отличных от винды.

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

     
     
  • 3.40, PereresusNeVlezaetBuggy (ok), 23:16, 12/05/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Причём тут рут? Запретить браузеру заливать в Интернет мои файлы без спроса, или там микрофоном пользоваться, или программы какие запускать — по-моему, не так уж плохо.

    А фича эта не совсем Linux-специфическая, сейчас обкатывается аналогичный патч для OpenBSD, использующий pledge.

     
  • 3.47, Аноним (-), 21:59, 13/05/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >>Ибо предоставлять браузеру рута в  надежде. что он лучше начнет сам себя ограничивать, это та еще возможность.

    для работы с capability root не нужен. firejail прекрасно без рута работает.

     
  • 2.42, Аноним (-), 01:00, 13/05/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Мда. Очередное свидетельство, насколько им положить на пользователей ОС, отличных от винды.

    Совсем не правда, линуксоид. Про мак всегда пишут. Про андроид тоже. Так что ты один в своей печали вместе с бсд, не стоит на винду злиться.

     
     
  • 3.44, анон (?), 03:36, 13/05/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А при чём тут bsdшнники?Мы локти не кусаем в ожидании вендокопца.Пилим себе потихоньку,пока остальные нас хоронят ;-)
     
     
  • 4.52, Аноним (-), 19:01, 14/05/2018 [^] [^^] [^^^] [ответить]  
  • +/
    За что вам респект и уважуха в отличии от покусанных блохастым ногоедом.
     

  • 1.8, Аноним (-), 13:56, 12/05/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Зачем эти возможности изначально?
     
  • 1.9, Аноним (-), 14:16, 12/05/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Эти ламерозные скриптокидозники так до сих пор и не смогли в clone() с отпиливанием браузера в приватные namespaces, чтобы атакующий по всей системе не шарился? Хромиум это делает уже лет, наверное, пять, если не больше. И кода там для этого мизер, а эффект от него - очень даже.
     
  • 1.15, Аноним (-), 15:18, 12/05/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Применение user namespaces позволяет получить необходимые права в отдельном окружении без поднятия привилегий основного процесса. Но из-за обилия уязвимостей, которые можно эксплуатировать только при включенном user namespaces, данную возможность часто отключают, например, по умолчанию user namespaces отключен в Debian и Red Hat Enterprise Linux, но активен в Ubuntu и Fedora.

    Я поавильно понимаю, что в Debian и RedHat эта улучшенная sandbox-изоляция работать не будет?

     
     
  • 2.26, Kuromi (ok), 16:56, 12/05/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >>Применение user namespaces позволяет получить необходимые права в отдельном окружении без поднятия привилегий основного процесса. Но из-за обилия уязвимостей, которые можно эксплуатировать только при включенном user namespaces, данную возможность часто отключают, например, по умолчанию user namespaces отключен в Debian и Red Hat Enterprise Linux, но активен в Ubuntu и Fedora.
    > Я поавильно понимаю, что в Debian и RedHat эта улучшенная sandbox-изоляция работать
    > не будет?

    Будет, если вручную включить user namespaces. Начиная с 7.2 в Рэд Хате оно есть, надо только включить - https://ru.scribd.com/document/357498357/User-Namespace-in-Red-Hat-Enterprise-

     

  • 1.16, X4asd (ok), 15:29, 12/05/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > В обычных условиях для настройки sandbox в Firefox требуется предоставление полномочий CAP_SYS_ADMIN, CAP_SYS_CHROOT и CAP_SET(UG)ID, которых достаточно для получения полноценных прав пользователя root. Применение user namespaces позволяет получить необходимые права в отдельном окружении без поднятия привилегий основного процесса. Но из-за обилия уязвимостей, которые можно эксплуатировать только при включенном user namespaces, данную возможность часто отключают, например, по умолчанию user namespaces отключен в Debian и Red Hat Enterprise Linux, но активен в Ubuntu и Fedora.

    а также (не включено) в Arch Linux и куче других линуксов.

    проще было так и написать что "Ubuntu и Fedora" в качестве оскдючения разрешается делать user_namespaces, а все остальные линуксы этого избегают!

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

     
     
  • 2.21, Аноним (-), 16:06, 12/05/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > проще было так и написать что "Ubuntu и Fedora" в качестве оскдючения
    > разрешается делать user_namespaces, а все остальные линуксы этого избегают!

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

     
     
  • 3.39, Арчевод (?), 23:11, 12/05/2018 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Дырявый этот ваш User Namespaces. Был включён раньше, но когда там стали пачками находить уязвимости, выключили до лучших времен.
     
     
  • 4.55, Аноним (-), 20:27, 14/05/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Дырявый этот ваш User Namespaces. Был включён раньше, но когда там стали
    > пачками находить уязвимости, выключили до лучших времен.

    Ну, блин, извини, линуксный кернель изначально не был заточен на то чтобы быть НАСТОЛЬКО многопользовательским. Поэтому без багов по первости все-же не обойдется. Это уж увы.

     
     
  • 5.57, Аноним (-), 09:33, 15/05/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну, блин, извини, линуксный кернель изначально не был заточен на то чтобы
    > быть НАСТОЛЬКО многопользовательским. Поэтому без багов по первости все-же не обойдется.
    > Это уж увы.

    Уважаемый гуру, подскажите пожалуйста, какой другой "кернель" "был заточен на то чтобы быть НАСТОЛЬКО многопользовательским"? И, желательно, под более-менее свободной лицензией.

     

  • 1.29, Аноним (-), 18:20, 12/05/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Противоречивая новость. Так и не понял стало лучше или хуже. юзер что-то там дырявое, то что не дырявое позволяет получить права рута.
    А между тем фокс в firejail не работает. Собственным изоляциям фокса доверия нет.

    Работает с таким конфигом, подсмотренным в тырнете, на сколько это безопасно? Или тупо вся изоляция выключена?
    #seccomp
    seccomp.drop @clock,@cpu-emulation,@debug,@module,@obsolete,@raw-io,@reboot,@resources,@swap,acct,add_key,bpf,fanotify_init,io_cancel,io_destroy,io_getevents,io_setup,io_submit,ioprio_set,kcmp,keyctl,mount,name_to_handle_at,nfsservctl,ni_syscall,open_by_handle_at,personality,pivot_root,process_vm_readv,ptrace,remap_file_pages,request_key,setdomainname,sethostname,syslog,umount,umount2,userfaultfd,vhangup,vmsplice

     
     
  • 2.30, Аноним (-), 19:37, 12/05/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Речь идет об очередных «"улучшениях" в файрфоксе».

    Думаю, ты знаешь, что такое «"улучшения" в файрфоксе» и как к ним относиться.

     
  • 2.35, КО (?), 20:53, 12/05/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >Так и не понял стало лучше или хуже.

    Ну как бы лучше, но если дать рута браузеру. А там, как повезет. :)

    Интересно, почему они просто не сделали отдельный процесс со своим контекстом того же Selinux, и никакого рута не надо.

     
     
  • 3.37, пох (?), 22:01, 12/05/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну как бы лучше, но если дать рута браузеру. А там, как

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

    но иногда он, внезапно, обратно есть ;-)

     
     
  • 4.49, КО (?), 09:26, 14/05/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Он не внезапно, он закономерно.
    Ядро это, что-то типа творчества Франкенштейна. И одни части, ради которых это задумывалось, в курсе концепции "царь то не настоящий". А авторы других об этом никогда и не задумывались. Пока все не прошерстить и не переписать, так и будет.
     
  • 4.56, Аноним (-), 20:29, 14/05/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > но иногда он, внезапно, обратно есть ;-)

    При том основы этого бардака заложили как ни странно древние юниксы и POSIX. А вот в линухе с его capabilities - даже если я кому-то и дам CAP_NET_ADMIN, сеть он конечно перекорежить сможет, но вот например в блочный девайс записать как настоящий рут - да сейчас.

     

  • 1.34, Аноним (-), 20:50, 12/05/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Оно включается после обновления или нужно самому включать?
     
     
  • 2.38, Kuromi (ok), 22:52, 12/05/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Если настройки sandbox-а руками не меняли раньше, то само включится. Если меняли, то надо в about:config перевести security.sandbox.content.level в 4
     

  • 1.50, Hdddd (?), 11:18, 14/05/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Помимо ограничения сети в прошлых выпусках Firefox также была применена изоляция доступа к файловой системе (используется chroot в пустой каталог)

    Вопрос знатокам: а как тогда я могу сохранять или аплоадить файлы, ведь я должен увидеть пустой каталог при открытии соотв. диалогового окна?

     
     
  • 2.51, Ан (??), 11:59, 14/05/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Если юзать firejail, то доступна только папка загрузки и собствнные папки фокса из коробки.
    Доки из фокса напрямую не открываются в либре - это минус.
    Очевидно, никакой втроенной изоляции нет.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру