6

Я пытаюсь изолировать все установленные расширения Google Chrome / Chromium от моей более частой активности в Интернете. Я думал о том, чтобы у двух пользователей Chrome было больше приватного просмотра в одном и меньше приватного просмотра с расширениями в другом. Я хочу знать, насколько это безопасно (см. Ниже).

Предположим, у меня есть следующие настройки:

  • Я настроил Chrome/Chromium так, чтобы у меня было два "пользователя" (через страницу настроек Chrome). Назовите их UserAlice и UserBob.
  • UserAlice не имеет установленных расширений.
  • UserBob устанавливает некоторые установленные расширения. При установке некоторые из них имеют разрешения, предоставленные им.

Учитывая этот сценарий, главный вопрос :

  • Есть ли у расширений для UserBob какая-либо возможность иметь доступ даже к малейшей части активности и содержимого UserAlice?
    • Если "да", то какие разрешения разрешают этот межпользовательский доступ?

* Под "разумным" я подразумеваю, что хочу защитить от следующего: Предположим, что в UserBob установлено вредоносное расширение, которое каким-то образом может считывать имена пользователей и пароли с просматриваемых веб-сайтов, таких как электронная почта или банк. UserAlice просматривает электронную почту и банковские сайты. « Достаточно безопасный» означает, что ни одно из вредоносных расширений, установленных UserBob, не может получить доступ к имени пользователя и паролям UserAlice , электронной почте, банковскому делу и т.д.

2 ответа2

1

Краткий ответ: если вы устанавливаете расширение Chrome из Chrome Web Store и не устанавливаете отдельный автономный двоичный файл в явном виде, то расширение по умолчанию попадает в профиль браузера и не может получить доступ или изменить других пользователей Chrome. Сказать, что "нет защиты файловой системы на месте", неточно, поскольку Chrome никогда не поддерживал расширения типа XUL.


Я рассмотрю два способа, которые в другом ответе упоминаются как маршруты, которые может использовать расширение, чтобы избежать ограничения профиля браузера и доступа к другим частям файловой системы, плюс дополнительный. Первый - через разрешение nativeMessaging WebExtension, второй - через диалоговое окно файла, а третий - через API isAllowedFileSchemeAccess . Ни один из них не является автоматическим (фоновым или иным) и требует, чтобы пользователь явно согласился на такой доступ.

1) WebExtension, использующее разрешение nativeMessaging не может самостоятельно использовать привилегированное собственное приложение. Пока пользователь явно не решит установить собственное приложение, WebExtension будет удерживаться в профиле браузера, в котором он был установлен.

Из другого ответа: «[i] f any ... extensio [n] требуется [s] доступ администратора для установки», тогда указанное программное обеспечение включает в себя нечто большее, чем просто расширение Chrome, например, расширение подключается к установленному автономному клиенту nativeMessaging вне Chrome и путем установки внешнего клиента (вне Chrome) можно было бы также установить общесистемный двоичный файл кейлоггера, который затрагивает гораздо больше, чем просто браузер. Игра окончена, но ошибка пользователя, так как он нарушил безопасность, обеспечиваемую браузером.

2) Из другого ответа: «Я ... смог запустить переносную копию Firefox, в которой я установил браузер sqlite ... и перейти к своему старому профилю и просмотреть свою историю». Файловые диалоги требуют явного взаимодействия с пользователем, поэтому это не ошибка безопасности. Если пользователь явно загружает файлы в профиль браузера для манипулирования расширением, то пользователь выражает свое согласие на то, чтобы его данные были доступны совместно с расширением. В противном случае расширение может не делать ничего, кроме как надеяться, что пользователь выберет файл в диалоговом окне «Открыть файл», который пользователь (вызывая профиль, предназначенный для перехвата потенциально ненадежных расширений) может просто закрыть.

3) API-интерфейс isAllowedFileSchemeAccess в Chrome обеспечивает доступ к файловой системе только для чтения по протоколу file://. Однако «пользователь должен явно разрешить это поведение для данного расширения через панель настроек Chrome в chrome://extensions», и по состоянию на начало 2017 года только 55 расширений в CWS запрашивают его. (Источник: Mozilla Wiki) Маловероятно, что вероятность обнаружения расширения, злоупотребляющего этой привилегией для отслеживания в файловой системе, не только маловероятна, но также требует, чтобы пользователь вручную предоставил его расширению браузера.


Использование отдельных профилей браузера для изоляции потенциально опасных расширений более чем достаточно, так как отдельные учетные записи пользователей на уровне ОС излишни, если только вы не защищаетесь от эксплойтов браузера нулевого дня, которые полностью уничтожают модель разрешений Chrome WebExtension API, в этом случае уровень VM Ограждения в порядке. Если мы играем с программным обеспечением, которое использует эксплойты, то учетные записи пользователей на уровне ОС обеспечивают недостаточную защиту, так как мы сейчас играем с вредоносными программами.

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

В заключение, расширение Chrome не может перепрыгивать через профили браузера, если 1) пользователь вручную не установил отдельный исполняемый файл, внешний по отношению к Chrome, и в этом случае все ставки отключены; 2) пользователь выбирает файл в диалоговом окне открытия файла, созданном расширением, в этом случае пользователь явно предоставил разрешение расширению для произвольного доступа к файлу 3) пользователь вручную устанавливает флажок в расширениях chrome://, которые расширения не могут сами изменять.

1

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

Chrome устанавливается в каталог Program Files . Этот каталог недоступен для записи всем пользователям, и пользователи должны хранить свои личные данные в своем собственном каталоге C:\Users\myProfile . Когда Chrome запускается, а Алиса вошла в систему, он создает профиль где-то в C:\Users\Alice\appdata а когда Боб запускает Chrome, тогда новый профиль создается в C:\Users\Bob\appdata .

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

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

За исключением Алисы, явно предоставляющей доступ Бобу, или Бобу удалось заставить администратора разрешить установку надстройки, которая требует установки вне профиля пользователя Chrome, тогда Боб не сможет получить доступ к данным Алисы.

Если Боб или Алиса являются администраторами, они оба будут иметь практически свободный доступ к данным других пользователей.

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


Я пропустил ту часть вашего вопроса, где вы упомянули, что это профили в Chrome, а не в Windows, и я должен сказать, что для расширений в одном профиле Chrome вполне возможно получить доступ к данным в другом профиле, поскольку в них нет защиты файловой системы. Place и Chrome не будут применять какие-либо меры защиты, чтобы предотвратить доступ к файлам между профилями, поскольку это работа отдельных пользователей в операционной системе.

В качестве примера, я ранее использовал Firefox и удалил его, затем я смог запустить переносную копию Firefox, в которой я установил браузер sqlite (FF хранит данные в базах данных sqlite) и перешел к своему старому профилю и увидел мою историю, то же самое почти наверняка будет возможно в Chrome.

Если вы действительно хотите, чтобы несколько пользователей, то вы должны использовать функции операционной системы, а не программные функции для обеспечения безопасности. Если Боб и Алиса совместно используют один и тот же профиль пользователя Windows, то можно просто просмотреть данные другого пользователя вне Chrome и вообще не нуждаться в расширениях.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .