Как стать автором
Обновить
0
Brave
Browse privately. Search privately. Ditch Big Tech

Огораживаем доступ сайтов к localhost в Brave

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров1.9K
Автор оригинала: Peter Snyder

Это двадцать седьмой пост из нашей серии о новых мерах защиты приватности и конфиденциальности в браузере Brave. Рассказываем о новой технологии, ограничивающей доступ сайтов к localhost-ресурсам.

Начиная с версии 1.54, Brave на десктопах и Андроиде запускает новую технологию контроля того, какие сайты и на какое время получают доступ к ресурсам локальной сети. Большинство популярных браузеров предоставляет сайтам доступ к ресурсам локальной сети без каких-либо мер защиты или ограничений, что компрометирует безопасность и конфиденциальность пользователей. Многие популярные сайты опрашивают вашу локальную сеть в целях фингерпринтинга, другие же делают это с целью получить и проэксплутировать информацию о другом софте, запущенном на устройстве.

Brave является первым популярным браузером, который использует запрос пермиссий для контроля за доступом сайтов к localhost-ресурсам. Наша реализация этого механизма позволит продвинутым пользователям разрешать любым сайтам доступ к localhost, избегая при этом раздражающих нотификаций о том, что запрос к localhost может являться зловредным. Также мы воспользовались нашими уже внедрёнными разработками по улучшению работы с сетевыми разрешениями.

Что такое localhost-ресурсы, и зачем доступ к ним может понадобиться сайтам?

Localhost-ресурсы — это широкий термин, который описывает ресурсы (картинки, веб-страницы и т.д.), к которым сайт может получить доступ, но которые поступают не из сети: это локальные ресурсы, которые другое ПО размещает на девайсе, при этом часто даже не отдавая себе в этом отчёт. 

Это может показаться странным, но большинство браузеров дают сайтам доступ к таким локальным ресурсам так же легко и просто, как они дают им доступ к ресурсам в сети. Это происходит по ряду причин, но две главные — это историческое легаси («всегда так было»‎) и обратная совместимость. Раньше браузеры особо не заботились о пользовательской конфиденциальности и, соответственно, не прилагали усилий к разграничению трёх категорий ресурсов: first-party (размещённые посещаемым сайтом ресурсы), сторонних (размещённые на других общедоступных сайтах) и локальных ресурсов.

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

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

Как это нововведение повлияет на доступ сайтов к localhost-ресурсам в Brave?

Brave является единственным популярным браузером, предоставляющим многокомпонентную защиту от сайтов, пытающихся злонамеренно заполучить доступ к localhost-ресурсам. На данный момент Brave использует правила списков фильтрации для:

  • Блокирования скриптов, про которые известно, что они занимаются зловредным сканированием localhost-ресурсов;

  • Блокирования запросов с общедоступных сайтов к localhost-ресурсам.

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

Система по борьбе с сайтами, злонамеренно использующими ресурсы локальной сети, которую мы внедряем, будет работать следующим образом:

  • Запросы на локальные ресурсы из локального контекста будут автоматически разрешаться; Brave позволяет локально хостящейся странице получать доступ к другим локально хостящимся ресурсам (это не распространяется на алиасы, которые пользователь мог установить для localhost, например, /etc/hosts).

  • Brave продолжит применять правила списков фильтрации для блокировки скриптов и сайтов, злонамеренно запрашивающих доступ к localhost-ресурсам.

  • Brave добавляет новую пермиссию localhost. Только сайты, обладающие этим разрешением, смогут делать подзапросы к локальным ресурсам. По умолчанию ни один сайт не будет обладать этим разрешением и, что важно, большинство сайтов не смогут даже запросить пользователя о получении этого разрешения. Тем не менее, продвинутые пользователи смогут воспользоваться существующим интерфейсом настройки сайтов, чтобы предоставить сайтам это разрешение (на десктопах перейдите на brave://settings/content/localhostAccess; на Андроиде Settings > Site settings > Localhost Access).

  • Brave также будет включать в себя список доверенных сайтов, о которых известно, что они запрашивают доступ к localhost-ресурсам с благими намерениями и в интересах пользователя. Когда сайт из этого списка инициирует подзапрос к localhost-ресурсу в первый раз, это вызовет запрос на разрешение доступа к localhost-ресурсам. Этот список общедоступен и будет поддерживаться Brave.

Мы решили внедрить систему localhost-разрешений таким многоступенчатым образом по нескольким причинам; главной из них является то, что мы предполагаем, что злонамеренный доступ к localhost-ресурсам имеет место гораздо чаще, чем кейсы, в которых пользователь выигрывает от такого доступа; при этом мы хотим избежать ситуации, в которой мы будем избыточно показывать пользователям диалоги с возможностью предоставления разрешений для запросов, которые, как мы полагаем, лишь навредят пользователям. 

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

Как другие браузеры работают с запросами к localhost-ресурсам?

Как мы уже говорили, большинство других браузеров не делает сколько-нибудь значимых усилий по ограничению возможностей доступа сайтов к локальным ресурсам. Версии Firefox и Chrome для десктопов позволяют как защищённым, так и незащищённым общедоступным сайтам получить доступ к localhost-ресурсам, и, кажется, намереваются позволить защищённым общедоступным сайтам обращаться к локальным ресурсам бесконечно.

Safari, как и другие браузеры на основе WebKit, на настоящий момент блокируют запросы к localhost-ресурсам от безопасных общедоступных сайтов, но, если мы всё понимаем правильно, это является лишь побочным эффектом общей политики ограничений в целях безопасности, а не целенаправленной политикой Safari с целью заблокировать подобные запросы.

Насколько нам известно, Brave является единственным браузером, который блокирует запросы к localhost-ресурсам как от защищённых, так и от незащищённых общедоступных сайтов, сохраняя при этом пути совместимости с теми сайтами, которым пользователь доверяет (вышеописанным методом localhost-разрешений).

Что мы будем делать дальше по работе с localhost-ресурсами?

Мы гордимся тем, что наши пользователи смогут воспользоваться этой разработкой, и считаем, что она сделает браузер Brave ещё лучше, не вредя пользовательской конфиденциальности. Тем не менее, наша работа на этом не заканчивается: ещё только предстоит сделать многое в сфере того, как браузеры обрабатывают запросы к localhost-ресурсам.

Во-первых, мы продолжаем искать возможности для дальнейшего разъяснения пользователям того, что такое localhost-ресурсы. Когда мы будем убеждены, что даже непродвинутые пользователи достаточно разбираются в том, как работает наш механизм управления разрешениями доступа к локальным ресурсам, мы планируем внедрить его для всех сайтов, а не только для сайтов из нашего списка.

Во-вторых, вы внедряем эти меры защиты глубже в сетевой стек для того, чтобы Brave мог защитить пользователей от других, менее распространённых методов запроса к localhost-ресурсам сайтами (таких как записи DNS, обращающиеся к localhost), и мы надеемся вскоре рассказать вам больше о наших достижениях в этом направлении.

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

Теги:
Хабы:
Всего голосов 4: ↑4 и ↓0+4
Комментарии2

Публикации

Информация

Сайт
brave.com
Дата регистрации
Дата основания
Численность
101–200 человек
Местоположение
США

Истории