Изоляция сайта

Изоляция сайтов — это функция некоторых веб-браузеров , которая позволяет из разных источников сайты изолировать друг от друга. Первоначально эта функция была предложена Чарльзом Рейсом и другими, с последующими итерациями от Microsoft , в виде реализации этой функции в исследовательском браузере Gazelle . Однако эта функция не получила широкого распространения из-за проблем, связанных с ее реализацией и производительностью.
были раскрыты уязвимости Spectre и Meltdown В 2018 году, после того как общественности , Google начал работу над добавлением изоляции сайтов в Chrome, кульминацией которой в конечном итоге стал выпуск этой функции в 2019 году. В 2021 году Firefox также запустил собственную версию изоляции сайтов, над которой они работали под кодовым названием Project Fission .
Несмотря на преимущества этой функции в области безопасности, исследователи также обнаружили проблемы безопасности, связанные с различными аспектами этой функции. К ним относятся проблемы с предполагаемой защитой от временных атак, таких как Spectre и Meltdown , а также новые атаки по времени и исчерпанию ресурсов, активируемые этой функцией.
Предыстория [ править ]
До 2017 года преобладающая архитектура безопасности основных браузеров придерживалась модели «процесс на каждый экземпляр просмотра». Это означало, что браузер содержал отдельные изолированные процессы, включая процесс браузера, процесс графического процессора, сетевой процесс и процесс рендеринга. Процесс рендеринга будет взаимодействовать с другими привилегированными службами, когда это необходимо для выполнения действий с повышенными правами при просмотре веб-страницы. [1] [2]
Хотя эта модель успешно предотвращала проблемы, связанные с получением доступа вредоносного JavaScript к операционной системе, ей не хватало возможности адекватно изолировать веб-сайты друг от друга. [3] Несмотря на эти опасения, внедрение более надежной модели столкнулось с ограниченным успехом из-за предполагаемых проблем с новыми моделями, особенно связанных с производительностью и памятью. [4] [5]
Однако в 2017 году раскрытие эксплойтов Spectre и Meltdown изменило ситуацию. Раньше доступ к произвольной памяти был сложным и требовал скомпрометированного средства рендеринга. Однако в случае Spectre были разработаны атаки, которые злоупотребляли функциями Javascript для чтения почти всей памяти в процессе рендеринга, включая память, в которой хранится потенциально конфиденциальная информация из ранее обработанных страниц с перекрестным происхождением. [6] [7] Это обнажило проблемы модели безопасности «процесс-за-экземпляр». Следовательно, потребовалась новая архитектура безопасности, которая позволила бы разделить рендеринг различных веб-страниц на полностью изолированные процессы. [8] [7]
История [ править ]
В 2009 году Рейс и др. предложил первую версию модели «процесс на сайт» для изоляции веб-страниц на основе их веб-происхождения. [9] Это было улучшено в 2009 году исследовательским браузером Gazelle , который разделял определенные фреймы документов на основе их веб-принципа, барьер безопасности, который соответствовал конкретному загружаемому документу. [10] [11] Примерно в то же время велась работа над браузерами OP (который позже стал браузером OP2), IBOS, Tahoma и SubOS, каждый из которых предлагал различные парадигмы для решения проблемы разделения процессов между сайтами. [12] [13]
Современная реализация [ править ]
В 2019 году Рейс и другие участники проекта Google Chrome представили доклад на конференции USENIX Security. [14] что подробно описаны изменения в существующей модели безопасности браузера в ответ на недавнее исследование, доказывающее, что атака Spectre может использоваться внутри процесса рендеринга браузера. [15] [16] В документе предложены изменения в модели, заимствованные из работы Рейса и др. в 2009 году. [17] Реализация изоляции сайтов в Chrome будет использовать веб-источники как основной отличительный признак «сайта» на уровне процесса. [18] [19] Кроме того, команда Chrome также реализовала идею внепроцессного выполнения фреймов веб-сайта — функцию, предложенную авторами веб-браузера «Газель» , а также веб-браузеров OP и OP2. [12] Это потребовало существенной реорганизации кода обработки процессов Chrome, включающей более 4000 коммитов от 320 участников в течение 5 лет. [20]
Реализация изоляции сайтов в Chrome позволила устранить многочисленные атаки с использованием универсального межсайтового скриптинга (uXSS). [21] Атаки uXSS позволяют злоумышленникам скомпрометировать политику одного и того же источника , предоставляя неограниченный доступ для внедрения и загрузки контролируемого злоумышленником javascript на другой веб-сайт. [22] Команда Chrome обнаружила, что все 94 атаки uXSS, зарегистрированные в период с 2014 по 2018 год, станут неэффективными из-за развертывания изоляции сайтов. [23] В дополнение к этому команда Chrome также заявила, что их реализация изоляции сайта будет эффективной для предотвращения разновидностей групп тайминг-атак Spectre и Meltdown, которые полагались на то, что адресное пространство жертвы находится в том же процессе, что и процесс злоумышленника. [16]
В марте 2021 года команда разработчиков Firefox объявила, что они также внедрят реализацию изоляции сайтов. Эта функция находилась в разработке несколько месяцев под кодовым названием Project Fission. [24] Реализация Firefox исправила несколько недостатков, обнаруженных в реализации Chrome, а именно тот факт, что аналогичные веб-страницы все еще были уязвимы для атак uXSS. [25] [26] Проект также потребовал переписать код обработки процесса в Firefox. [27]
Прием [ править ]
До 2019 года изоляция сайтов была реализована только в исследовательских браузерах. Изоляция сайта считалась ресурсоемкой. [5] из-за увеличения объёма памяти, занимаемой процессами. [28] Эти издержки производительности были отражены и в реальных реализациях. [29] Реализация изоляции сайтов в Chrome в среднем требовала на одно-два ядра больше, чем то же самое без изоляции сайтов. [5] Кроме того, инженеры, работающие над проектом изоляции сайта, заметили увеличение использования памяти на 10–13 процентов при использовании изоляции сайта. [30] [31]
Chrome был первым крупным веб-браузером в отрасли, который использовал изоляцию сайтов в качестве защиты от uXSS и атак с временным выполнением . [32] Для этого они преодолели многочисленные препятствия, связанные с производительностью и совместимостью, и тем самым положили начало общеотраслевым усилиям по улучшению безопасности браузера . Однако, несмотря на это, некоторые аспекты защиты Spectre оказались недостаточными. [6] В частности, способность изоляции сайта защититься от атак по времени оказалась неполной. [33] В 2021 году Агарвал и др. смогли разработать эксплойт под названием Spook.js, который смог взломать защиту Chrome Spectre и перенести данные на веб-страницы из разных источников. [34] В том же году исследователи из Microsoft смогли использовать изоляцию сайтов для выполнения различных атак по времени, которые позволили им утечь информацию из разных источников путем тщательного манипулирования протоколами межпроцессного взаимодействия, используемыми при изоляции сайтов. [35]
В 2023 году исследователи из Рурского университета в Бохуме показали, что они могут использовать архитектуру процессов, необходимую для изоляции сайтов, для исчерпания системных ресурсов, а также выполнять сложные атаки, такие как отравление DNS . [36]
Ссылки [ править ]
Цитаты [ править ]
- ^ Рейс и Гриббл 2009 , стр. 225–226.
- ^ Донг и др. 2013 , стр. 78–79.
- ^ Цзя и др. 2016 , стр. 791–792.
- ^ Донг и др. 2013 , с. 89.
- ^ Jump up to: Перейти обратно: а б с Чжу, Вэй и Тивари, 2022 , стр. 114.
- ^ Jump up to: Перейти обратно: а б Джин и др. 2022 , с. 1525.
- ^ Jump up to: Перейти обратно: а б Рёттгер и Янк .
- ^ Роговский и др. 2017 , стр. 336–367.
- ^ Рейс и Гриббл 2009 , стр. 224–225.
- ^ Пол 2009 .
- ^ Ван и др. 2009 , стр. 1–2.
- ^ Jump up to: Перейти обратно: а б Reis, Moshchuk & Oskov 2019 , p. 1674.
- ^ Донг и др. 2013 , с. 80
- ^ Гирлингс, Бринкманн и Швенк, 2023 , с. 7049.
- ^ Кохер и др. 2020 , стр. 96–97.
- ^ Jump up to: Перейти обратно: а б Reis, Moshchuk & Oskov 2019 , p. 1661.
- ^ Reis, Moshchuk & Oskov 2019 , pp. 1663, 1664.
- ↑ Епископ 2021 , стр. 25–26.
- ^ Рокицки, Морис и Лапердрикс, 2021 , с. 476.
- ^ Reis, Moshchuk & Oskov 2019 , p. 1667.
- ^ Ким и Ли, 2023 , с. 757.
- ^ Ким и др. 2022 , стр. 1007.
- ^ Reis, Moshchuk & Oskov 2019 , p. 1668.
- ^ Кампания 2019 .
- ^ Нараян и др. 2020 , с. 714.
- ^ Кокацу 2020 .
- ^ Лейзелл 2019 .
- ^ Рейс и Гриббл 2009 , стр. 229–230.
- ^ Ван и др. 2009 , стр. 12–13.
- ^ Уоррен 2018 .
- ^ Reis, Moshchuk & Oskov 2019 , p. 1671.
- ^ Джин и др. 2022 , с. 1526.
- ^ Джин и др. 2022 , с. 1527.
- ^ Агарвал и др. 2022 , стр. 1529, 1530.
- ^ Джин и др. 2022 , стр. 1525, 1530.
- ^ Гирлингс, Бринкманн и Швенк, 2023 , стр. 7037–7038.
Источники [ править ]
- Рейс, Чарльз; Гриббл, Стивен Д. (апрель 2009 г.). «Изоляция веб-программ в современных браузерных архитектурах» . Материалы 4-й Европейской конференции ACM по компьютерным системам . АКМ. стр. 219–232. дои : 10.1145/1519065.1519090 . ISBN 978-1-60558-482-9 . S2CID 8028056 . Архивировано из оригинала 24 декабря 2023 г. Проверено 24 декабря 2023 г.
- Роговский, Роман; Мортон, Мика; Ли, Форрест; Монроуз, Фабиан; Сноу, Кевин З.; Полихронакис, Михалис (2017). «Возврат к безопасности браузера в современную эпоху: новые атаки и средства защиты, использующие только данные» . Европейский симпозиум IEEE по безопасности и конфиденциальности (EuroS&P) 2017 г. стр. 366–381. дои : 10.1109/ЕвроСП.2017.39 . ISBN 978-1-5090-5762-7 . S2CID 7325479 . Архивировано из оригинала 10 февраля 2020 г. Проверено 24 декабря 2023 г.
- Реттгер, Стивен; Янк, Артур. «Проверка концепции Spectre для защищенной от Spectre сети» . Блог Google по онлайн-безопасности . Архивировано из оригинала 24 декабря 2023 г. Проверено 24 декабря 2023 г.
- Донг, Синьшу; Ху, Хун; Саксена, Пратик; Лян, Чжэнькай (2013). Крэмптон, Джейсон; Яйодиа, Сушил; Мэйс, Кейт (ред.). Количественная оценка разделения привилегий в дизайне веб-браузеров . Конспекты лекций по информатике. Берлин, Гейдельберг: Springer. стр. 75–93. дои : 10.1007/978-3-642-40203-6_5 . ISBN 978-3-642-40203-6 . Архивировано из оригинала 29 декабря 2023 г. Проверено 29 декабря 2023 г.
- Уоррен, Том (12 июля 2018 г.). «Chrome теперь использует больше оперативной памяти из-за исправлений безопасности Spectre» . Грань . Архивировано из оригинала 25 октября 2022 г. Проверено 30 декабря 2023 г.
- Рейс, Чарльз; Мощук, Александр; Осков, Наско (2019). Изоляция сайта: разделение процессов для веб-сайтов в браузере . стр. 1661–1678. ISBN 978-1-939133-06-9 . Архивировано из оригинала 28 ноября 2023 г. Проверено 24 декабря 2023 г.
- Чжу, Юнье; Вэй, Шицзя; Тивари, Мохит (2022). «Возврат к тестированию производительности браузера с архитектурной точки зрения» . Письма IEEE по компьютерной архитектуре . 21 (2): 113–116. дои : 10.1109/LCA.2022.3210483 . S2CID 252641754 . Архивировано из оригинала 30 июля 2023 г. Проверено 24 декабря 2023 г.
- Пол, Райан (10 июля 2009 г.). «Внутри Газели, «браузерной ОС» Microsoft Research » . Арс Техника . Проверено 7 марта 2024 г.
- Цзинь, Цзыхао; Конг, Цзыцяо; Чен, Шуо; Дуань, Хайсинь (2022). «Уязвимости конфиденциальности просмотра, основанные на времени, посредством изоляции сайта» . Симпозиум IEEE 2022 по безопасности и конфиденциальности (SP) . стр. 1525–1539. дои : 10.1109/SP46214.2022.9833710 . ISBN 978-1-6654-1316-9 . S2CID 247570554 . Архивировано из оригинала 28 июля 2022 г. Проверено 24 декабря 2023 г.
- Лэйзелл, Ника (04 февраля 2019 г.). "НИКА:\fision-news-1\>" . mystor.github.io . Архивировано из оригинала 29 декабря 2023 г. Проверено 30 декабря 2023 г.
- Агарвал, Аюш; о'Коннелл, Сиоли; Ким, Джейсон; Йехезкель, Шакед; Генкин, Даниил; Ронен, Эяль; Яром, Юваль (2022). «Spook.js: атака на строгую изоляцию сайтов Chrome посредством спекулятивного выполнения» . Симпозиум IEEE 2022 по безопасности и конфиденциальности (SP) . стр. 699–715. дои : 10.1109/SP46214.2022.9833711 . ISBN 978-1-6654-1316-9 . S2CID 251140823 . Архивировано из оригинала 27 октября 2022 г. Проверено 24 декабря 2023 г.
- Рокицки, Томас; Морис, Клементина; Лапердрикс, Пьер (2021). «SoK: В поисках утраченного времени: обзор таймеров JavaScript в браузерах» . Европейский симпозиум IEEE по безопасности и конфиденциальности 2021 года (EuroS&P) (PDF) . стр. 472–486. дои : 10.1109/EuroSP51992.2021.00039 . ISBN 978-1-6654-1491-3 . S2CID 263897590 . Архивировано (PDF) из оригинала 17 декабря 2022 г. Проверено 24 декабря 2023 г.
- Ван, Хелен; Гриер, Крис; Мощук, Александр; Кинг, Сэмюэл Т.; Чоудхури, Пиали; Вентер, Герман; Кинг, Сэм (19 февраля 2009 г.). «Построение многоосновной ОС веб-браузера Газель» . SSYM'09: Материалы 18-й конференции по симпозиуму по безопасности USENIX . Архивировано из оригинала 4 сентября 2023 г. Проверено 29 декабря 2023 г.
- Цзя, Яоци; Чуа, Чжэн Леонг; Ху, Хун; Чен, Шуо; Саксена, Пратик; Лян, Чжэнькай (24 октября 2016 г.). « Граница «Интернет/локальное» нечеткая: исследование безопасности песочницы Chrome на основе процессов» . Материалы конференции ACM SIGSAC 2016 г. по компьютерной и коммуникационной безопасности . ККС '16. Нью-Йорк, штат Нью-Йорк, США: Ассоциация вычислительной техники. стр. 791–804. дои : 10.1145/2976749.2978414 . ISBN 978-1-4503-4139-4 . S2CID 7573477 .
- Бишоп, Дуглас Л. (2021). Улучшения безопасности и конфиденциальности пользователей в веб-браузере (Диссертация). Университет Дейтона. Архивировано из оригинала 24 декабря 2023 г. Проверено 24 декабря 2023 г.
- Чимпану, Каталин (06 февраля 2019 г.). «Firefox получит функцию «изоляции сайта», аналогичную Chrome» . ЗДНЕТ . Архивировано из оригинала 29 декабря 2023 г. Проверено 29 декабря 2023 г.
- Нараян, Шраван; Дисселькоен, Крейг; Гарфинкель, Таль; Фройд, Натан; Рам, Эрик; Лернер, Сорин; Шахам, Ховав; Стефан, Деян (2020). Модернизация мелкозернистой изоляции в средстве визуализации Firefox . стр. 699–716. ISBN 978-1-939133-17-5 . Архивировано из оригинала 24 декабря 2023 г. Проверено 24 декабря 2023 г.
- Гирлингс, Матиас; Бринкманн, Маркус; Швенк, Йорг (2023). Изолирован и исчерпан: атака на операционные системы посредством изоляции сайта в браузере . стр. 7037–7054. ISBN 978-1-939133-37-3 . Архивировано из оригинала 24 декабря 2023 г. Проверено 24 декабря 2023 г.
- Кокацу, Джун (10 ноября 2020 г.). «Углубленное изучение изоляции объектов (часть 1)» . Исследование уязвимостей браузера Microsoft . Архивировано из оригинала 24 декабря 2023 г. Проверено 24 декабря 2023 г.
- Ким, Ён Мин; Ли, Бёнён (2023). Протягиваем руку злоумышленникам: атаки на повышение привилегий браузера с помощью расширений . стр. 7055–7071. ISBN 978-1-939133-37-3 . Архивировано из оригинала 24 декабря 2023 г. Проверено 24 декабря 2023 г.
- Кохер, Пол; Хорн, Янн; Фог, Андерс; Генкин, Даниил; Грусс, Дэниел; Хаас, Вернер; Гамбург, Майк; Липп, Мориц; Мангард, Стефан; Прешер, Томас; Шварц, Майкл; Яром, Юваль (18 июня 2020 г.). «Призрачные атаки: использование спекулятивного исполнения» . Коммуникации АКМ . 63 (7): 93–101. дои : 10.1145/3399742 . ISSN 0001-0782 . S2CID 373888 .
- Ким, Сону; Ким, Ён Мин; Хур, Джэвон; Сон, Сухван; Ли, Кванму; Ли, Бёнён (2022). {FuzzOrigin}: обнаружение уязвимостей {UXSS} в браузерах с помощью Origin Fuzzing . стр. 1008–1023. ISBN 978-1-939133-31-1 .