Ограниченная платформа драйверов, которая запускает драйверы в песочнице в пользовательском режиме

Иллюстрации

Показать все

Изобретение относится к способу исполнения преобразующего драйвера, реализуемому вычислительным устройством. Технический результат заключается в повышении надежности вычислительной системы за счет обеспечения безопасности в работе преобразующих драйверов. Способ содержит этапы, на которых: получают преобразующий драйвер, содержащийся в комплекте драйвера, имеющем назначенный формат, ассоциированный с платформой безопасности драйверов; распознают назначенный формат комплекта драйвера при установке, основываясь по меньшей мере отчасти на идентификационных данных, включенных в комплект драйвера; в качестве реакции на упомянутое распознавание регистрируют преобразующий драйвер в платформе безопасности драйверов, реализуемой вычислительным устройством; создают экземпляр ограниченной среды исполнения для преобразующего драйвера посредством платформы безопасности драйверов; и исполняют преобразующий драйвер в ограниченной среде исполнения, чтобы выполнять одну или несколько задач по указанию платформы безопасности драйверов. 3 н. и 17 з.п. ф-лы, 6 ил.

Реферат

УРОВЕНЬ ТЕХНИКИ

[0001] В настоящее время преобразующие (transmogrifying) драйверы, которые осуществляют преобразования лежащих в основе данных из одного вида в другой, например драйверы виртуальной частной сети (VPN), могут обладать общесистемными привилегиями, высоким приоритетом и доступом к конфиденциальным данным, и поэтому могут создавать значительные угрозы безопасности. Частично из-за этих вопросов пользователи могут с большой неохотой устанавливать такие драйверы и ассоциированное программное обеспечение на свои устройства. Например, пользователи могут неохотно загружать и устанавливать подключаемый модуль VPN из интернет-магазина приложений вследствие предполагаемых угроз этого типа продукта. Соответственно могут быть затруднены торговля и распространение продуктов, которые содержат такие преобразующие драйверы.

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

[0002] В этом документе описывается ограниченная платформа преобразующих драйверов. В одной или нескольких реализациях предоставляется платформа, которая обеспечивает ограниченную среду исполнения для драйверов виртуальной частной сети (VPN) и других преобразующих драйверов. Платформу можно реализовать в виде компонента операционной системы, который предоставляет интерфейс, посредством которого драйверы можно регистрировать в платформе и вызывать для выполнения поддерживаемых платформой функций. Ограниченная среда исполнения накладывает одно или несколько ограничений на преобразующие драйверы, которые работают посредством той платформы. Например, исполнение может происходить в пользовательском режиме для каждого пользователя в отдельности и в рамках песочницы. Кроме того, платформа побуждает ассоциированные драйверы запускаться в фоновых процессах со сравнительно небольшими привилегиями. Кроме того, платформа может приостанавливать драйверы и управлять операциями драйверов путем планирования фоновых задач. Соответственно посредством платформы управляется и ограничивается воздействие преобразующих драйверов на систему.

[0003] Данное краткое изложение сущности изобретения предоставляется, чтобы представить подборку идей в упрощенном виде, которые дополнительно описываются ниже в подробном описании. Данное краткое изложение сущности изобретения не предназначено ни для определения ключевых признаков или существенных признаков заявленного изобретения, ни для использования в качестве содействия в определении объема заявленного изобретения.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

[0004] Подробное описание приводится со ссылкой на прилагаемые фигуры. На чертежах крайняя левая цифра(цифры) в номере ссылки определяет чертеж, в котором номер ссылки появляется первый раз. Использование одних и тех же номеров ссылок в разных случаях в описании и на чертежах может указывать аналогичные или идентичные элементы.

[0005] Фиг. 1 – иллюстрация среды в соответствии с одной или несколькими реализациями методик ограниченной платформы преобразующих драйверов.

[0006] Фиг. 2 – иллюстрация примерного сценария в соответствии с одной или несколькими реализациями.

[0007] Фиг. 3 – логическая блок-схема, изображающая примерную процедуру для применения ограниченной среды исполнения для исполнения преобразующего драйвера.

[0008] Фиг. 4 – логическая блок-схема, изображающая примерную процедуру, в которой управляют работой преобразующего драйвера.

[0009] Фиг. 5 – логическая блок-схема, изображающая примерную процедуру, в которой преобразующие драйверы распространяются через интернет-магазин приложений.

[0010] Фиг. 6 изображает примерную вычислительную систему в соответствии с одним или несколькими вариантами осуществления.

ПОДРОБНОЕ ОПИСАНИЕ

ОБЗОР

[0011] Частично из-за вопросов безопасности с драйверами виртуальной частной сети (VPN) и другими преобразующими драйверами пользователи могут с большой неохотой устанавливать на свои устройства продукты, которые применяют преобразующие драйверы. Соответственно могут быть затруднены торговля и распространение продуктов, которые содержат такие преобразующие драйверы.

[0012] В этом документе описывается ограниченная платформа преобразующих драйверов. В одной или нескольких реализациях предоставляется платформа, которая обеспечивает ограниченную среду исполнения для драйверов виртуальной частной сети (VPN) и других преобразующих драйверов. Платформу можно реализовать в виде компонента операционной системы, который предоставляет интерфейс, посредством которого драйверы можно регистрировать в платформе и вызывать для выполнения поддерживаемых платформой функций. Ограниченная среда исполнения накладывает одно или несколько ограничений на преобразующие драйверы, которые работают посредством той платформы. Например, исполнение может происходить в пользовательском режиме для каждого пользователя в отдельности и в рамках песочницы. Кроме того, платформа побуждает ассоциированные драйверы запускаться в виде фоновых процессов со сравнительно небольшими привилегиями. Кроме того, платформа может приостанавливать драйверы и управлять операциями драйвера путем планирования фоновых задач. Соответственно посредством платформы управляется и ограничивается воздействие преобразующих драйверов на систему.

[0013] В нижеследующем обсуждении сначала описывается примерная операционная среда, которая может применять описанные в этом документе методики. Далее описываются примерные подробности и методики, которые можно реализовать в примерной среде, а также в других средах. Следовательно, выполнение методик не ограничивается примерной средой, и примерная среда не ограничивается выполнением примерных методик. Наконец, описываются примерные системы и устройства, которые могут применяться для реализации одного или нескольких вариантов осуществления.

ПРИМЕРНАЯ ОПЕРАЦИОННАЯ СРЕДА

[0014] Фиг. 1 – иллюстрация среды 100 в примерной реализации, которая функционирует для применения описанных в этом документе методик. Проиллюстрированная среда 100 включает в себя клиентское устройство 102, которое коммуникационно соединено с поставщиком 106 услуг по сети 104. Поставщик 106 услуг может конфигурироваться для предоставления различных ресурсов 108 (например, контента и услуг) клиентскому устройству 102 и другим клиентам по сети 104. Как правило, ресурсы 108, сделанные поставщиком 106 услуг доступными, могут включать в себя любое подходящее сочетание услуг и/или контента, обычно предоставляемых по сети одним или несколькими поставщиками. Некоторые примеры услуг включают в себя, но не ограничиваются, услугу поиска, услугу электронной почты, услугу обмена мгновенными сообщениями, комплекс онлайн-приложений для продуктивной работы и услугу аутентификации для управления доступом клиентов к ресурсам. Контент может включать в себя различные сочетания текста, мультимедийных потоков, документов, файлов приложений, фотографий, аудио/видеофайлов, анимаций, изображений, веб-страниц, веб-приложений, приложений для устройств, контента для отображения обозревателем или иным клиентским приложением и т. п.

[0015] Клиентское устройство 102 и поставщика 106 услуг можно реализовать с помощью одного или нескольких вычислительных устройств, а также они могут соответствовать одному или нескольким объектам. Вычислительное устройство может конфигурироваться различными способами. Например, вычислительное устройство может конфигурироваться в виде компьютера, который допускает осуществление связи по сети, такого как настольный компьютер, мобильная станция, развлекательное устройство, телевизионная приставка, коммуникационно соединенные с устройством отображения, беспроводной телефон, игровая приставка и так далее. Таким образом, вычислительное устройство может варьироваться от полноценных устройств со значительными ресурсами памяти и процессора (например, персональные компьютеры, игровые приставки) до ограниченного устройства с ограниченными ресурсами памяти и/или обработки (например, традиционные телевизионные приставки, наладонные игровые приставки). Более того, хотя в некоторых случаях показано одно вычислительное устройство, вычислительное устройство может соответствовать множеству разных устройств, например нескольким серверам, используемым поставщиком 106 услуг.

[0016] Клиентское устройство 102 дополнительно иллюстрируется как включающее в себя операционную систему 110. Операционная система 110 конфигурируется для обобщения лежащих в основе функциональных возможностей аппаратных средств для приложений 112, которые исполняются на клиентском устройстве 102. Например, операционная система 110 может обобщать функциональные возможности обработки, запоминающего устройства, сети и/или дисплея, так что приложения 112 можно писать без знаний о том, "как" реализуются эти лежащие в основе функциональные возможности. Например, приложения 112 могут предоставлять операционной системе 110 данные для обработки и отображения с помощью устройства отображения без понимания того, как будет выполняться эта обработка.

[0017] В соответствии с описанными в этом документе методиками клиентское устройство 102 также иллюстрируется как включающее в себя преобразующие драйверы 114 и платформу 116 безопасности драйверов, которая может конфигурироваться различными способами, чтобы накладывать ограничения на работу преобразующих драйверов 114. Преобразующие драйверы 114 соответствуют различным видам модулей приложений, подключаемых модулей и/или других сторонних программ, которыми можно управлять с помощью описанной в этом документе платформы 116 безопасности драйверов. Как правило, преобразующие драйверы 114 осуществляют преобразования лежащих в основе данных из одного вида в другой. Одним примерным типом преобразующих драйверов являются драйверы виртуальной частной сети (VPN), которые преобразуют пакеты данных (например, инкапсулируют/декапсулируют) в закрытый (собственный) вид для защищенной связи VPN между VPN-клиентом и VPN-сервером. Другие примеры могут включать в себя, но не ограничиваются, драйверы сетевой интерфейсной платы для пакетирования/депакетирования данных, драйверы антивируса для распознавания и обработки вредоносного ПО, драйверы графической обработки для обработки/преобразования графики, драйверы принтера для перевода данных приложений в пригодный для печати формат для принтера, и так далее. Обсуждаемые в этом документе методики также применимы к туннелям VPN и другим туннелям Интернет-протокола (IP), конвейерам данных, транспортным потокам, брандмауэрам и так далее.

[0018] В традиционной модели преобразующие драйверы 114 могут обладать общесистемными привилегиями, высоким приоритетом и доступом к конфиденциальным данным. Как правило, преобразующие драйверы тесно связаны с операционной системой и запускаются в режиме ядра. Таким образом, преобразующие драйверы 114 могут включать в себя и/или называться драйверами режима ядра, системными драйверами и/или драйверами класса. Поскольку преобразующие драйверы 114 обычно обладают повышенными привилегиями и полным доступом к системе в режиме ядра, эти виды драйверов создают значительную угрозу безопасности и могут становиться целями/инструментами, применяемыми злоумышленниками с противозаконными целями. Преобразующие драйверы 114, которые свободно работают с неограниченными привилегиями и доступом, также могут отрицательно влиять на ресурсы обработки и время работы от батарей. Кроме того, распространение преобразующих драйверов через магазин приложений или другой онлайн-канал может быть затруднено, по меньшей мере частично, из-за только что перечисленных вопросов.

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

[0020] В частности, платформа 116 безопасности драйверов представляет функциональные возможности клиентского устройства 102, чтобы создать экземпляр ограниченной среды исполнения для преобразующих драйверов 114. Функциональные возможности, представленные платформой 116 безопасности драйверов, можно реализовать различными способами. В некоторых реализациях платформу 116 безопасности драйверов можно предоставить в виде компонента операционной системы, однако платформу 116 безопасности драйверов также можно реализовать в виде автономного компонента, как проиллюстрировано. Как изображено, платформа 116 безопасности драйверов может включать в себя или иным образом состоять из модуля 118 диспетчера драйверов, контейнера 120 приложения, диспетчера 122 фоновой работы и брокера 124 событий для реализации различных аспектов платформы.

[0021] Модуль 118 диспетчера драйверов представляет функциональные возможности платформы для распознавания и управления преобразующими драйверами 114, ассоциированными с платформой. Модуль 118 диспетчера драйверов может управлять исполнением преобразующих драйверов 114 в пользовательском режиме для каждого пользователя посредством контейнера 120 приложения или "песочницы", созданной для каждого драйвера. Контейнер 120 приложения задает ограниченный набор задач, которые могут выполняться для отдельных драйверов, и ограничивает операции заданным набором задач. Контейнер 120 приложения дополнительно обеспечивает изоляцию в песочнице "с двойными стенками", означающую, что доступ ограничивается как изнутри контейнера в систему, так и от внешних объектов в контейнер. Это не позволяет внешним объектам перехватывать и/или получать управление над драйверами в песочнице в контейнерах приложений.

[0022] Диспетчер 122 фоновой работы функционирует для управления контейнерами 120 приложений (и ассоциированными драйверами) с использованием фоновых процессов. Это может включать в себя, но не ограничивается, создание экземпляра фоновых процессов для контейнеров и проведение планирования задач для фоновых процессов. Фоновым процессам можно назначить маркеры небольших привилегий или сопоставимые управляющие данные, которые передают сравнительно мало привилегий и прав доступа. Другими словами, платформа 116 безопасности драйверов ассоциирует сравнительно низкий приоритет с преобразующими драйверами 114, что ограничивает доступ и/или свободу действия. Диспетчер 122 фоновой работы также может вызвать приостановку фоновых процессов для преобразующих драйверов 114, когда они не используются, что дополнительно ограничивает возможность преобразующих драйверов выполнять работу помимо конкретного указания от пользователя и/или платформы 116 безопасности драйверов. Например, можно приостанавливать преобразующий драйвер 114 кроме случаев, когда набор задач, специально заданный для того драйвера или типа драйвера, выполняется по указанию модуля 118 диспетчера драйверов.

[0023] Диспетчер 122 фоновой работы можно реализовать, как проиллюстрировано, в виде компонента платформы 116 безопасности драйверов. В качестве альтернативы диспетчер 122 фоновой работы может конфигурироваться в виде компонента операционной системы (ОС), спроектированного для управления и координации операций множества приложений 112 с использованием фоновых процессов, включая преобразующие драйверы 114. При этом подходе платформа 116 безопасности драйверов может конфигурироваться для взаимодействия с диспетчером 122 фоновой работы, чтобы воспользоваться встроенными функциональными возможностями ОС по поддержке фоновой работы приложений.

[0024] Брокер 124 событий представляет функциональные возможности для формирования событий, чтобы урегулировать взаимодействие между драйвером и системными службами для выполнения обозначенных задач, которые разрешены по отношению к преобразующему драйверу и соответствующему контейнеру 120 приложения. В частности, брокер 124 событий может создавать события, которые побуждают выполнение задач, которые планируются диспетчером 122 фоновой работы. В некоторых реализациях это включает в себя формирование подходящих вызовов точек входа в код, например программных интерфейсов приложения (API) системы или других подходящих интерфейсов. Брокер 124 событий может дополнительно конфигурироваться для создания событий, чтобы урегулировать взаимодействия с элементами интерфейса пользователя, показанными вычислительным устройством, например экраном дисплея и UI, ассоциированными с ОС, обозревателем, приложением VPN-клиента и/или другими приложениями. Преобразующий драйвер, который "помещен в песочницу" описанным способом, можно ограничить в прямом манипулировании компонентами и элементами UI. Соответственно брокер 124 событий может работать в качестве заменителя, который делает возможным взаимодействие и координацию с компонентами UI от лица преобразующих драйверов 114 без чрезмерного нарушения безопасности.

[0025] Как дополнительно проиллюстрировано на фиг. 1, поставщик 106 услуг может конфигурироваться для управления и предоставления клиентского доступа к услуге 126 магазина приложений. Услуга 126 магазина приложений представляет конкретный ресурс из ресурсов 108, который может предоставляться клиентам поставщиком 106 услуг по сети 104. Услуга 126 магазина приложений конфигурируется для разрешения пользовательского доступа к онлайн-базе данных приложений (например, к торговой площадке приложений) для просмотра, выбора, покупки и/или загрузки приложений. Приложения от различных разработчиков могут быть доступны клиентам посредством услуги 126 магазина приложений.

[0026] В соответствии с обсуждаемыми в этом документе методиками услуга 126 магазина приложений может выбираться в качестве механизма распространения для преобразующих драйверов 114, которые управляются через платформу 116 безопасности драйверов. Это становится возможным благодаря дополнительным мерам безопасности, ограничениям и улучшениям характеристик, которые достигаются с использованием ограниченной среды(сред) исполнения, созданной для драйвера посредством платформы 116 безопасности драйверов. В одном подходе преобразующие драйверы 114 можно упаковать в комплект для включения в торговую площадку приложений в назначенном известном формате, ассоциированном с платформой 116 безопасности драйверов. Комплект 128 драйвера, содержащий соответствующий преобразующий драйвер 114 в назначенном формате, можно сделать доступным посредством услуги 126 магазина приложений и можно загружать для использования клиентским устройством 102 по сети 104, как представлено на фиг. 1. В одном подходе комплект 128 драйвера может применять закрытый формат (например, .appx или другой сопоставимый формат, специфический для магазина или для поставщика), ассоциированный с услугой 126 магазина приложений. Дополнительно или в качестве альтернативы комплект может конфигурироваться содержащим идентификатор, ключ, код, расширение файла или другие подходящие идентифицирующие данные, чтобы упростить распознавание комплекта 128 драйвера как содержащего преобразующий драйвер, который поддерживается платформой 116 безопасности драйверов.

[0027] Во время установки платформа 116 безопасности драйверов посредством модуля 118 диспетчера драйверов или иным образом может распознать комплект 128 драйвера и/или формат как ассоциируемый с платформой 116 безопасности драйверов на основе подходящих идентифицирующих данных, включенных в пакет. Соответственно в ответ на установку комплекта 128 драйвера в распознанном формате модуль 118 диспетчера драйверов может зарегистрировать соответствующий преобразующий драйвер в платформе и посредством этого привести в исполнение ограничения и дополнительную безопасность для драйвера, доступные посредством платформы 116 безопасности драйверов.

[0028] Дополнительные подробности касательно этих и других аспектов ограниченной платформы преобразующих драйверов обсуждаются в отношении примерного сценария использования, изображенного на фиг. 2 в целом по ссылке 200. В этом примере контейнер 120 приложения или песочница иллюстрируется как содержащий (содержащая) драйвер 202 виртуальной частной сети (VPN), хотя, как отмечается в этом документе, также предполагаются другие драйверы, подключаемые модули и код. Контейнер 120 приложения конфигурируется для разрешения ограниченного набора задач для содержащегося драйвера, который в этом случае оказывается драйвером 202 VPN. В этом сценарии VPN разрешенные задачи можно ограничить операциями подключения, отключения, инкапсуляции и/или декапсуляции, ассоциированными со связью VPN с VPN-сервером по сети. Можно ассоциировать другие типы драйверов и код с соответствующими операциями, которые разрешены платформой, для поддержки их базовых функциональных возможностей, минимизируя при этом доступ и влияние на производительность. Допустимый набор задач может ассоциироваться с каждым типом драйвера и/или по каждому отдельному драйверу. Как отмечалось, контейнер 120 приложения эффективно ограничивает драйвер конкретным набором задач, разрешенным для драйвера посредством платформы.

[0029] Фиг. 2 также представляет распределение различных компонентов между пользовательским режимом и режимом ядра. Как правило, система обработки в вычислительном устройстве может переключаться между пользовательским режимом и режимом ядра в зависимости от типа кода, который исполняется. Как правило, настольные приложения запускаются в пользовательском режиме, а базовые компоненты операционной системы запускаются в режиме ядра. Драйверы/код, которые работают в режиме ядра, могут совместно использовать распределение общей памяти и не изолированы от других драйверов/кода или ресурсов ОС. Как отмечалось, преобразующие драйверы традиционно реализуются в виде драйверов режима ядра, которые обладают практически неограниченным доступом к ОС и возможностью вызывать общесистемные отказы. Тем не менее, в соответствии с описанными в этом документе методиками преобразующие драйверы вместо этого могут исполняться в пользовательском режиме посредством подходящей ограниченной среды исполнения.

[0030] В частности, контейнер 120 приложения и содержащийся в нем драйвер 202 VPN изображаются на фиг. 2 как исполняемые в пользовательском режиме. Драйвер 202 VPN может взаимодействовать с базовыми службами и функциональными возможностями операционной системы 110, которые предоставляются ядром 206, через интерфейс 204 драйвера. Ядро 206 в целом реализует программное обобщение лежащих в основе аппаратных средств 208, чтобы упростить работу аппаратных средств с помощью программных компонентов. Интерфейс 204 драйвера может представлять один или несколько программных интерфейсов приложения (API) или других подходящих интерфейсов, ассоциированных с операционной системой 110, через которые базовые службы и функциональные возможности, представленные ядром 206, становятся доступны коду, исполняемому в пользовательском режиме.

[0031] В конкретном примере базовые службы и функциональные возможности включают в себя по меньшей мере службы 210 VPN для упрощения связи VPN. Службы 210 VPN могут соответствовать разрешенному набору задач для драйвера 202 VPN, который может конфигурироваться для вызова служб через подходящие вызовы и обратные вызовы, поддерживаемые интерфейсом драйвера. Можно создать экземпляр интерфейса 204 драйвера в контейнере 120 приложения, как изображено, или в виде автономного компонента. Функциональные возможности, представленные интерфейсом 204 драйвера, также можно разделить между компонентом пользовательского режима и соответствующим компонентом ядра 206, который работает в режиме ядра. Взаимодействиями через интерфейс 204 драйвера можно управлять посредством платформы безопасности драйверов через модуль 118 диспетчера драйверов или иным образом.

[0032] В ходе работы диспетчер 122 фоновой работы может установить фоновый процесс 211 для контейнера 120 приложения и управлять исполнением драйвера 202 VPN с использованием фонового процесса 211. Задачи могут планироваться по указанию платформы. Как правило, это происходит по явному указанию пользователя (например, выбор пользователя или согласие пользователя) или в соответствии с профилем, созданным на основе пользовательского ввода. Профиль может задавать набор задач, доступный драйверу 202 VPN в контейнере 120 приложения, и соответствующим образом устанавливать ассоциированные привилегии и права доступа. Затем платформа принудительно применяет ограничения, указанные профилем, с использованием контейнера 120 приложения. Профиль, например, может указывать, что согласие пользователя нужно получать каждый раз, когда выполняются конкретные операции (например, для каждого случая операции), и в этом случае может формироваться уведомление и приглашение для согласия пользователя, чтобы выборочно управлять конкретными операциями. Профиль также может указывать глобальное согласие пользователя или согласие пользователя по умолчанию, чтобы позволять некоторым избранным операциям совершаться автоматически без дополнительного указания согласия для каждого случая. При отсутствии согласия пользователя контейнер 120 приложения препятствует выполнению ограниченных задач драйвером. Другими словами, ограниченная среда исполнения конфигурируется для выборочного разрешения операций преобразующих драйверов в зависимости от согласия пользователя. Таким образом, пользователь обеспечивается окончательным контролем над областью взаимодействий, разрешенных для преобразующих драйверов 114, которые управляются через платформу.

[0033] Фиг. 2 дополнительно иллюстрирует взаимодействие контейнера 120 приложения с брокером 124 событий. В частности, брокер 124 событий может создать события 212 VPN и/или события 214 интерфейса пользователя от лица драйвера VPN, что побуждает выполнение задач, запланированных диспетчером 122 фоновой работы. Например, события 212 VPN могут включать в себя вызовы, направленные на интерфейс 204 драйвера, чтобы вызвать службы 210 VPN. Более того, брокер 124 событий может создать события 214 интерфейса пользователя, чтобы манипулировать компонентами UI для операционной системы 110, приложения 112 или другого UI. Это может включать в себя, но не ограничивается, вывод уведомлений, чтобы получить согласие пользователя для запланированных задач в подходящих обстоятельствах.

[0034] Таким образом, ограниченную среду исполнения можно реализовать для управления работой драйвера 202 VPN и/или других преобразующих драйверов, традиционно исполняемых в режиме ядра. Такие драйверы, как правило, принимают входные данные 216 в конкретном виде и обрабатывают данные для создания преобразованных данных 218 в ином виде, как представлено на фиг. 2. Например драйвер 202 VPN из фиг. 2 может инкапсулировать пакеты данных в закрытый формат для защищенной связи VPN с учрежденческим сервером. Драйвер 202 VPN также может конфигурироваться для декапсуляции пакетов данных, полученных от учрежденческого сервера в закрытом формате, в данные, потребляемые клиентским устройством 102. Другие типы драйверов конфигурируются для выполнения сопоставимых преобразований данных, связанных с задуманными функциональными возможностями драйверов. Например драйвер принтера преобразует данные для печати, драйвер сетевой интерфейсной платы работает для пакетирования и депакетирования данных, драйвер антивируса может сканировать файлы и сравнивать файлы с известными сигнатурами, и так далее.

[0035] Таким образом, можно предоставить платформу безопасности драйверов, которая обеспечивает ограниченную среду исполнения, сконфигурированную для принудительного применения различных ограничений для драйверов VPN, а также других преобразующих драйверов. Платформу можно реализовать в виде компонента операционной системы, который предоставляет интерфейс, посредством которого драйверы можно регистрировать в платформе и вызывать для выполнения задач, поддерживаемых и/или разрешенных платформой. Преобразующие драйверы могут исполняться платформой в пользовательском режиме, для каждого пользователя и в контейнере приложения "в песочнице", который ограничивает привилегии и доступ к системе у преобразующих драйверов.

[0036] Приняв во внимание предшествующее обсуждение примерной операционной среды, рассмотрим теперь подробности касательно методик для ограниченной платформы преобразующих драйверов, описанные в отношении следующих примерных процедур.

ПРИМЕРНЫЕ ПРОЦЕДУРЫ

[0037] Этот раздел обсуждает подробности методик для ограниченной платформы преобразующих драйверов со ссылкой на примерные процедуры из фиг. 3-5. В частях нижеследующего обсуждения можно ссылаться на примерную операционную среду из фиг. 1, в которой можно реализовать различные аспекты. Аспекты каждой из описанных ниже процедур можно реализовать в аппаратных средствах, микропрограммном обеспечении или программном обеспечении, или в их сочетании. Процедуры показаны в виде набора этапов, которые задают операции, выполняемые одним или несколькими устройствами, и они не обязательно ограничены очередностями, показанными для выполнения операций с помощью соответствующих этапов. По меньшей мере в некоторой реализации процедуры могут выполняться соответствующим образом сконфигурированным вычислительным устройством, например, примерным клиентским устройством 102 из фиг. 1, которое включает в себя или использует платформу 116 безопасности драйверов или сопоставимые функциональные возможности.

[0038] Фиг. 3 – логическая блок-схема, изображающая примерную 300 процедуру для применения ограниченной среды исполнения для исполнения преобразующего драйвера. Преобразующий драйвер регистрируется в платформе безопасности драйверов (этап 302). Например модуль 118 диспетчера драйверов может конфигурироваться для распознавания драйверов, которые упакованы в комплект в назначенном формате. Комплект может включать в себя, например, подходящий идентификатор для указания платформе безопасности драйверов, что драйвер предназначен для этой платформы и должен управляться посредством платформы. Таким образом, при установке драйвера модуль 118 диспетчера драйверов обнаруживает комплект и/или идентификатор и регистрирует драйвер для управления посредством системы. Впоследствии операции драйвера управляются платформой безопасности драйверов с соответствующими ограничениями.

[0039] Создается экземпляр ограниченной среды исполнения для преобразующего драйвера (этап 304), и преобразующий драйвер вызывается для выполнения одной или нескольких задач (этап 306). Затем преобразующий драйвер исполняется посредством ограниченной среды исполнения, чтобы выполнить задачи (этап 308). Здесь модуль 118 диспетчера драйверов может создать ограниченную среду исполнения для конкретного драйвера, когда исполняется тот драйвер. Ограниченная среда исполнения может содержать контейнер 120 приложения (например, "песочницу"), как обсуждалось ранее. Ограниченная среда исполнения накладывает различные ограничения на работу преобразующего драйвера, которые применяются во время исполнения. Например ограниченная среда исполнения изолирует соответствующий драйвер, чтобы ограничить доступ к ресурсам системы. В частности, можно ограничить доступ к назначенному набору задач, ассоциированному с функциональными возможностями драйвера. Драйвер вызывается системой для выполнения задач и может быть неспособен самостоятельно инициировать задачи. Например ограниченная среда исполнения может препятствовать самостоятельному созданию объектов драйвером. Вместо этого объекты для конкретных задач создаются платформой и передаются в ограниченную среду исполнения для использования драйвером.

[0040] Драйвер также может исполняться посредством ограниченной среды исполнения в виде фоновой задачи, и ему можно назначить маркер привилегий, который передает ограниченные привилегии и права доступа. Фоновый процесс, ассоциированный с ограниченной средой исполнения, можно приостанавливать при отсутствии конкретного указания к выполнению работы от платформы и/или пользователя. Более того, ограниченная среда исполнения отклоняет приложения и другие компоненты, которые не ассоциируются с доступом платформы безопасности драйверов к преобразующему драйверу, чтобы предотвратить подделку и/или перехват драйвера.

[0041] Более того, драйвер исполняется в пользовательском режиме, как обсуждалось ранее, и также может быть установлен для каждого пользователя в отдельности. Соответственно разные пользователи могут устанавливать разные драйверы для использования на одном и том же клиентском устройстве и/или с одной и той же целью. Это может упростить использование разных аппаратных средств или разной версии программного обеспечения в соответствии с предпочтениями пользователя. Поскольку драйверы находятся в песочнице в пользовательском режиме, установка и удаление одного драйвера не влияет на восприятие других пользователей. Например, что касается технологии VPN, разные пользователи одного и того же устройства могли бы применять разные драйверы VPN для подключения к соответствующим VPN-серверам разных работодателей без неблагоприятного воздействия друг на друга.

[0042] Кроме того, реализованные с использованием описанных методик драйверы можно легко и полностью удалить без остаточных файлов, данных, настроек и свойств, которые могут вызывать нестабильность или непредусмотренное поведение. Это возможно потому, что ограниченная среда исполнения обеспечивает индивидуальное распределение памяти для исключительного использования соответствующим драйвером. Драйвер может не иметь доступа для записи данных или настроек куда-то в другое место. Соответственно очистка драйвера и состояния легко выполняется путем удаления данных, содержащихся в распределенной памяти, ассоциированной с драйвером.

[0043] Фиг. 4 – логическая блок-схема, изображающая примерную процедуру, в которой управляется работа преобразующего драйвера. Распознается ассоциация преобразующего драйвера с платформой безопасности драйверов (этап 402). Например, преобразующий драйвер может быть зарегистрирован в платформе 116 безопасности драйверов, как обсуждалось ранее. Работа драйвера впоследствии управляется через платформу 116 безопасности драйверов. Ассоциацию можно создать во время установки на основе драйвера, конфигурируемого в назначенном формате или комплекте пакете. Как отмечалось, формат .appx является подходящим форматом, который может использоваться для ассоциации драйверов с платформой, хотя также предполагаются другие типы файлов, имена и идентифицирующая информация.

[0044] Выявляется набор задач, разрешенный для преобразующего драйвера (этап 404). Разрешенный набор задач может основываться на идентификации драйвера как конкретного типа драйвера (например, VPN в отличие от принтера, антивируса и т. п.) и/или индивидуальной идентификации каждого конкретного драйвера (например, различие между драйверами одного типа, ассоциированными с разными производителями/поставщиками). Поэтому платформа может поддерживать и разрешать назначенный набор задач для каждого отдельного драйвера и/или на основе типа драйвера. Набор задач может быть конкретными контрактами, которые операционная система выставила и разрешает выполнить драйверам. Таким образом, при идентификации заданного драйвера платформа узнает виды задач, которые драйвер способен выполнять, разрешает те задачи и может препятствовать выполнению драйвером других задач.

[0045] В частности создается среда исполнения, которая ограничивает работу преобразующего драйвера набором задач, которые разрешены (этап 406). Например можно создать ограниченную среду исполнения ранее описанным способом. Ограниченная сред