Краткий ответ: если вы устанавливаете расширение 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://, которые расширения не могут сами изменять.