Изоляция процессов - это набор различных аппаратных и программных технологий [1], предназначенных для защиты каждого процесса от других процессов в операционной системе . Это достигается путем предотвращения записи процесса A в процесс B.
Изоляция процесса может быть реализована с помощью виртуального адресного пространства , где адресное пространство процесса A отличается от адресного пространства процесса B, что предотвращает запись A в B.
Обеспечить безопасность проще, запретив доступ к памяти между процессами, в отличие от менее безопасных архитектур, таких как DOS, в которых любой процесс может записывать данные в любую память любого другого процесса. [2]
Ограниченное межпроцессное взаимодействие [ править ]
В системе с изоляцией процессов ограниченное (контролируемое) взаимодействие между процессами все еще может быть разрешено по каналам межпроцессного взаимодействия (IPC), таким как общая память , локальные сокеты или Интернет-сокеты . В этой схеме вся память процесса изолирована от других процессов, за исключением тех случаев, когда процесс разрешает ввод от взаимодействующих процессов.
В некоторых случаях системные политики могут запрещать IPC. Например, в системах обязательного контроля доступа субъектам с разными уровнями чувствительности может быть запрещено общаться друг с другом. Последствия для безопасности в этих обстоятельствах обширны и охватывают приложения в систематике шифрования сетевых ключей, а также алгоритмы распределенного кэширования. Аналогичным образом затрагиваются протоколы, определяемые интерфейсом, такие как базовая архитектура доступа к облаку и совместное использование сети. [3]
Операционные системы [ править ]
Известные операционные системы, поддерживающие изоляцию процессов:
Веб-браузеры [ править ]
Internet Explorer 4 использовал изоляцию процессов, чтобы позволить отдельным оконным экземплярам браузера создавать собственные процессы; однако в разгар войны браузеров от этого отказались в последующих версиях, чтобы конкурировать с Netscape Navigator (который стремился сконцентрироваться на одном процессе для всего пакета Internet). К этой идее «процесс на экземпляр» вернутся только через десять лет, когда просмотр с вкладками стал более обычным явлением.
В " Многопроцессорной архитектуре " Google Chrome [4] и " Слабо связанном IE (LCIE) " в Internet Explorer 8 [5] вкладки, содержащие веб-страницы, содержатся в их собственных полу-отдельных процессах уровня ОС, которые изолированы из основного процесса браузера, чтобы предотвратить сбой одной вкладки / страницы и сбой всего браузера. Этот метод (известный как multiprocess или process-per-tab ) предназначен как для управления памятью, так и для обработки, позволяя сбой на вкладках-нарушителях отдельно от браузера и других вкладок, а также управлять безопасностью.
Браузеры с изоляцией процессов [ править ]
- Гугл Хром
- Internet Explorer 8 и выше
- Сафари
- Mozilla Firefox (по умолчанию с 57)
- Maxthon
Языки программирования [ править ]
Erlang (язык программирования) предоставляет аналогичную концепцию в пользовательском пространстве, реализуя строго разделенные легковесные процессы.
Связанные технологии [ править ]
- Виртуальная память и виртуальное адресное пространство позволяют изолировать пространство памяти.
- Полиинстанция позволяет использовать зеркала общих ресурсов, где изменения, внесенные процессом A, не будут видны процессу B.
См. Также [ править ]
- Песочница (компьютерная безопасность)
- Бит NX
Ссылки [ править ]
- ^ Деконструкция изоляции процесса. Эйкен, Марк, Фендрих, Мануэль, Гавблитцель, Крис, Хант, Гален, Ларус, Джеймс Р. Исследование Microsoft. Октябрь 2006 г. [1]
- ^ Все в одном Руководстве по экзамену CISSP, 3-е издание, Шон Харрис
- ^ Пал, С (2015). «Контейнеры и кластеры для периферийных облачных архитектур - обзор технологий». 3-я международная конференция «Интернет вещей и облака будущего» .
- ^ Многопроцессорная архитектура , блог Chromium, четверг, 11 сентября 2008 г.
- ^ IE8 и слабосвязанный IE (LCIE) , Энди Зейглер, вторник, 11 марта 2008 г.