Система и способ контроля доступа на основе acl

Иллюстрации

Показать все

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

Реферат

Область техники

Изобретение относится к области контроля приложений, а именно к системам и способам контроля доступа на основе списков контроля доступа (англ. access control list, ACL).

Уровень техники

В настоящее время в корпоративных сетях широко распространены решения в области контроля приложений (application control), в частности контроля запуска и выполнения приложений. При помощи таких решений администратору или любому другому специалисту, ответственному за безопасность сети, проще контролировать, какие приложения используются и запускаются на компьютерах сети. При помощи контроля приложений администратор может, например, определять, какие приложения можно запускать, какие нельзя, и какие исключения могут быть и в том, и в другом случае. Современные системы контроля приложений обладают гибким инструментарием для формирования правил контроля доступа к объектам операционных систем (ОС), в том числе и к файлам приложений: доступ может осуществляться как на основании списков запрещенных и разрешенных приложений, так и на основании более сложных правил доступа, которые учитывают различные атрибуты как самого доступа, например токен доступа (англ. access token), так и объекта, к которому упомянутый доступ осуществляется.

Однако существует ряд особенностей ОС Windows поздних версий, например версии 10, которые диктуют архитектуру систем контроля приложений: некоторая информация, которая используется системой контроля приложений для поиска правил доступа, регулирующих доступ к некоторому объекту, а также для принятия решения о предоставлении доступа к этому объекту (например, для систем контроля приложений Kaspersky Lab такой информацией может являться информация об электронной цифровой подписи - ЭЦП), недоступна для компонентов системы контроля приложений, которые запущены в режиме ядра (англ. kernel mode), при этом ряд других компонентов, например перехватывающих доступ к объектам операционной системы, должен работать в режиме ядра. При этом переключение между режимом пользователя и режимом ядра при работе системы контроля приложений - трудоемкая операция, требующая большого (относительно выполнения без переключения) времени. В такой ситуации может применяться предварительная обработка правил доступа для их последующего применения компонентами системы контроля приложений, работающих в режиме ядра, в частности трансляция правила из одного представления в другое, например в формат списков контроля доступа (англ. access control list, ACL, в частности discretionary ACL - DACL).

В уровне техники существуют подходы транслирования правил из одного представления в другое. Например в ЕР 1668437 В1 описана трансляции правил из представления, используемого в ОС семейства Unix в ACL. Однако в описанном подходе не описаны варианты трансляции правил доступа с целью уменьшения времени, в течении которого система контроля приложений принимает решение о предоставлении доступа к некоторому объекту или нет.

Хотя подходы в уровне техники направлены на решение определенных задач в области контроля приложений, они не решают задачу контроля приложений при использовании ACL или решают недостаточно эффективно. Настоящее изобретение позволяет более эффективно решить задачу контроля приложений.

Раскрытие изобретения

Настоящее изобретение предназначено для оптимизации процедуры принятия решения относительно доступа к объекту операционной системы.

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

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

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

В другом варианте реализации способа списком контроля доступа является список избирательного контроля доступа - DACL.

В еще одном из вариантов реализации способа под определением учетной записи пользователя понимают определение по крайней мере токена доступа, который формируется операционной системой Windows при авторизации пользователя на вычислительном устройстве.

В другом варианте реализации способа объектом операционной системы является по меньшей мере файл, запись реестра, любой другой защищаемый объект в операционной системе Windows.

В еще одном из вариантов реализации способа доступом к объекту операционной системы является по меньшей мере вызовов одной из системных функций для загрузки объекта операционной системы или его части в оперативную память: Loadlibrary, OpenFileEx, RegCreateKey.

В другом варианте реализации способа при блокировании доступа к объекту операционной системы упомянутый объект исключается из проверки, которая проводится модулем контроля приложений.

В еще одном из вариантов реализации способа правилами доступа к объекту операционной системы являются правила доступа, которые описывают режим доступа к объекту операционной системы со стороны по меньшей мере одного пользователя, а также обладают одним из двух свойств: «запрет по умолчанию», «доступ по умолчанию»; при этом режим доступа может быть «доступ разрешен» или «доступ запрещен».

В другом варианте реализации способа правилами доступа к объекту являются правила, используемые модулем контроля приложений.

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

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

В другом варианте реализации системы списком контроля доступа является список избирательного контроля доступа - DACL.

В еще одном варианте реализации системы под определением учетной записи пользователя понимают определение по крайней мере токена доступа, который формируется операционной системой Windows при авторизации пользователя на вычислительном устройстве.

В другом варианте реализации системы объектом операционной системы является по меньшей мере файл, запись реестра, любой другой защищаемый объект в операционной системе Windows.

В еще одном варианте реализации системы доступом к объекту операционной системы является по меньшей мере вызовов одной из системных функций для загрузки объекта операционной системы или его части в оперативную память: Loadlibrary, OpenFileEx, RegCreateKey.

В другом варианте реализации системы при блокировании доступа к объекту операционной системы упомянутый объект исключается из проверки, которая проводится модулем контроля приложений.

В еще одном варианте реализации системы правилами доступа к объекту операционной системы являются правила доступа, которые описывают режим доступа к объекту операционной системы со стороны по меньшей мере одного пользователя, а также обладают одним из двух свойств: «запрет по умолчанию», «доступ по умолчанию»; при этом режим доступа может быть «доступ разрешен» или «доступ запрещен».

В другом варианте реализации системы правилами доступа к объекту являются правила, используемые модулем контроля приложений.

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

Краткое описание чертежей

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

Фиг. 1 иллюстрирует структурную схему системы контроля доступа на основе ACL.

Фиг. 2 показывает примерную схему алгоритма работы одного из вариантов реализации способа контроля доступа на основе ACL.

Фиг. 3 показывает пример компьютерной системы общего назначения.

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

Описание вариантов осуществления изобретения

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

Введем ряд определений и понятий, которые будут использоваться при описании вариантов осуществления изобретения.

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

Доверенное приложение - приложение, которое не наносит вреда компьютеру или его пользователю. Доверенным приложением может считаться приложение, разработанное доверенным производителем ПО, загруженное из доверенного источника (например, сайт, занесенный в базу данных доверенных сайтов) или приложение, идентификатор которого (например, MD5 файла приложения) хранится в базе данных доверенных приложений. Идентификатор производителя, например, цифровой сертификат, может также храниться в базе данных доверенных приложений.

Недоверенное приложение - приложение, которое не является доверенным, но также не признано вредоносным, например, при помощи антивирусного приложения.

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

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

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

Объект операционной системы - по меньшей мере файл, запись реестра или любой другой защищаемый объект (англ. securable object в ОС Windows, https://msdn.microsoft.com/ru-ru/library/windows/desktop/aa379557(v=vs.85).aspx) - любой объект в операционной системе (ОС) Windows, который имеет дескриптор безопасности (англ. security descriptor в ОС Windows, https://msdn.microsoft.com/ru-ru/library/windows/desktop/aa379563(v=vs.85).aspx), содержащий по меньшей мере идентификатор безопасности (англ. security identifier в ОС Windows, SID, https://msdn.microsoft.com/ru-ru/library/windows/desktop/aa379571(v=vs.85).aspx) владельца объекта (например, учетной записи пользователя, создавшего файл, при условии, что объект операционной системы - файл), список избирательного контроля доступа (англ. DACL, discretionary access control list в ОС Windows, https://msdn.microsoft.com/ru-ru/library/windows/desktop/aa374872(v=vs.85).aspx, также используется формулировка «список избирательного управления доступом» или «избирательная таблица управления доступом»). То, как DACL применяется в ОС Windows описано в документации от Microsoft: https://msdn.microsoft.com/ru-ru/library/windows/desktop/aa446683(v=vs.85).aspx, с принципы устройства и особенности применения DACL в ОС Windows также описаны в следующей литературе:

- «Windows 10 Inside Out», 2016. ISBN-13 978-1-5093-0485-1;

- «ACL for Windows, Version 7», 2002, ISBN-13 978-1894497176;

- «Programming Windows Security», 2000, ISBN-13 978-0201604429;

- «Внутреннее устройство Microsoft Windows. 6-е изд.», 2013, ББК 32.973.2-018.2;

- «Системное программирование в Windows», 2006, ISBN 5-94157-792-3, ББК 32.973.26-018.1;

- «Windows Server 2008 All-In-One Desk Reference For Dummies», 2008, ISBN 978-0-470-18044-0.

Доступ к объекту операционной системы - по меньшей мере вызов одной из системных функций для загрузки объекта операционной системы или его части в оперативную память, например Loadlibrary, OpenFile, RegCreateKey, CreateProcess.

Определение учетной записи пользователя, от имени которого осуществляется доступ - выделение по крайней мере идентификатора безопасности (англ. security identifier в ОС Windows, SID, https://msdn.microsoft.com/ru-ru/library/windows/desktop/aa379571(v=vs.85).aspx). Идентификатор безопасности хранится в токене доступа (англ. access token в ОС Windows), токен доступа формируется операционной системой (например, Windows) при авторизации пользователя на вычислительном устройстве. В еще одном из вариантов реализации изобретения под определением учетной записи пользователя, от имени которого осуществляется доступ - определение (выделение) токена доступа.

Правило доступа к объекту операционной системы - правило доступа, которое описывает режим доступа к объекту операционной системы со стороны по меньшей мере одного пользователя (с использованием учетной записи по меньшей мере одного пользователя) или группы пользователей (т.е. возможны ситуации, где правило доступа описывает доступ со стороны нескольких пользователей и/или нескольких групп пользователей), а также обладает одним из двух свойств: «запрет по умолчанию» (англ. default deny), «доступ по умолчанию» (англ. default access); при этом режим доступа может быть «доступ разрешен» или «доступ запрещен». Если правилом предписан режим доступа «доступ разрешен» в отношении некоторого объекта операционной системы, то в соответствии с этим правилом доступ к этому объекту должен быть разрешен (не запрещен), например, при помощи модуля контроля приложений. Если правилом предписан режим доступа «доступ запрещен» в отношении некоторого объекта операционной системы, то в соответствии с этим правилом доступ к этому объекту должен быть запрещен, например при помощи модуля контроля приложений. В частном случае реализации правилами доступа к объекту являются правила, используемые модулем контроля приложений (англ. application control). Пример модуля контроля приложений - Kaspersky Endpoint Security (KES). Стоит отметить, что модуль контроля приложений - известное из уровня техники понятие (например, https://www.admin-smolensk.ru/information_security/pers/Vipnet1.pdf, http://www.cisco.com/c/en/us/td/docs/interfaces_modules/services_modules/ace/vA5_1_0/configuration/administration/guide/admgd.pdf). Стоит отметить, что модуль контроля приложений может обладать параметром работы (который может быть установлен для модуля контроля приложений, например, администратором сети, при этом, если параметр работы не установлен, считается, что он принимает значение «доступ по умолчанию»), принимающим значения «доступ по умолчанию» (англ. «default access») или «запрет по умолчанию» (англ. default deny). Значение параметра работы «доступ по умолчанию» подразумевает, что доступ к объекту операционной системы будет предоставлен, если доступ явным образом не запрещен (например, в соответствии с правилом доступа). Значение параметра работы «запрет по умолчанию» подразумевает, что доступ к объекту операционной системы будет запрещен (блокирован), если доступ явным образом не разрешен (например, в соответствии с правилом доступа).

Под средствами системы контроля доступа на основе ACL в настоящем изобретении понимаются реальные устройства, системы, компоненты, группы компонентов, реализованные с использованием аппаратных средств, таких как интегральные микросхемы (англ. application-specific integrated circuit, ASIC) или программируемые вентильные матрицы (англ. field-programmable gate array, FPGA) или, например, в виде комбинации программных и аппаратных средств, таких как микропроцессорная система и набор программных инструкций, а также на нейроморфных чипах (англ. neurosynaptic chips) Функциональность указанных средств системы может быть реализована исключительно аппаратными средствами, а также в виде комбинации, где часть функциональности средств системы реализована программными средствами, а часть аппаратными. В некоторых вариантах реализации часть средств, или все средства, могут быть исполнены на процессоре компьютера общего назначения (например, который изображен на Фиг. 3), также именуемого вычислительным устройством. При этом компоненты (каждое из средств) системы могут быть реализованы в рамках как одного вычислительного устройства, так и разнесены между несколькими, связанными между собой вычислительными устройствами.

На Фиг. 1 приведена структурная схема системы контроля доступа на основе ACL. Система контроля доступа на основе ACL (англ. access control list, ACL, далее под понятием ACL будет подразумеваться один из его типов в ОС семейства Windows, а именно DACL - список избирательного контроля доступа, описывающий, какой пользователь обладает каким правом в отношении доступа к некоторому объекту ОС, также иногда используется формулировка «список избирательного управления доступом» или «избирательная таблица управления доступом») содержит средство контроля 110, и связанное с ним средство трансляции 120. В одном из вариантов реализации изобретения средство контроля 110, а также средство трансляции 120 расположены на одном и том же вычислительном устройстве. В одном из вариантов реализации изобретения на упомянутом вычислительном устройстве дополнительно присутствует база данных правил доступа 130, а также модуль контроля приложений 140. В еще одном частном случае реализации средство трансляции 120 вынесено за пределы упомянутого вычислительного устройства, например на удаленный сервер. В такой ситуации средство трансляции 120 связано с вышеописанными компонентами и модулями (а именно, изображенными на Фиг. 1, в том числе и базами данных) при помощи сети передачи данных.

Средство контроля 110 предназначено для перехвата доступа к объекту операционной системы; при этом в результате перехвата определяют учетную запись пользователя, используемую для доступа; для применения набора ACL для объекта операционной системы, доступ к которому был перехвачен, к учетной записи пользователя, а также для блокирования доступа к объекту операционной системы, если было сформировано решения о блокировании доступа к объекту; при этом применение набора ACL формирует решение блокировать ли доступ к объекту или нет; при этом средство контроля функционирует в режиме ядра (англ. kernel mode).

Средство контроля 110 перехватывает доступ к объекту операционной системы при помощи компонента, реализованного в виде драйвера, который внедрен в стек вызовов системных функций, при помощи которых осуществляется доступ к объекту операционной системы 106. Для наглядности описания в качестве примера объекта операционной системы 106 будет рассмотрен файл, а именно исполняемый файл программы, ссылки на него в описании будут также обозначены номером 106 на Фиг. 1.

Стоит отметить, что в рамках вычислительного устройства пользователь 105 взаимодействует только с устройствами ввода/вывода и не осуществляет напрямую других действий, например доступа к объектам операционной системы 106. Далее в рамках описания настоящего изобретения под пользователем 105 будем понимать учетную запись, используемую им на вычислительном устройстве. В частности, под доступом, осуществляемым от лица пользователя 105 понимают доступ, осуществляемый с использованием учетной записи пользователя 105, например, при помощи токена доступа (англ. access token), создаваемого операционной системой при успешной аутентификации пользователя 105.

При обнаружении доступа от лица пользователя 105 (следует иметь в виду, что доступ осуществляется посредством приложения, например запущенного от лица пользователя 105) к файлу 106 средство контроля 110 определяет учетную запись пользователя 105, используемую для доступа. В частном случае результатом определения упомянутой учетной записи является определение (получение, выделение) токена доступа пользователя 105, сгенерированного операционной системой при авторизации пользователя 105, токен доступа можно получить вызовом системной функции OpenProcessToken. В еще одном частном случае реализации средство 110 в рамках определения упомянутого пользователя определяет идентификатор безопасности, которых хранится в токене доступа, идентификатор безопасности можно получить вызовом системной функции GetTokenlnformation или LookupAccountName. Полученный токен доступа средство 110 использует (в качестве аргумента вызова одной из функций, приведенных далее) для применения набора списков контроля доступа для объекта операционной системы 106, к которому был перехвачен доступ, осуществленный от лица пользователя 105. В еще одном частном случае реализации результатом определения упомянутой учетной записи является определение идентификатор безопасности (SID). Набор списков контроля доступа может состоять из одного и более списков контроля доступа.

Средство контроля 110 применяет набор ACL для объекта операционной системы 106 к учетной записи, используемой пользователем 105 для осуществления доступа к объекту операционной системы 106. Средство 110 применяет набор ACL при помощи последовательного вызова одной из следующих системных функций к каждому ACL из набора ACL (количество вызовов равно количеству ACL в наборе): SeAccessCheck, AccessCheck, AccessCheckByType, AccessCheckByTypeResultList, при этом при каждом вызове одной из функций ACL указывается как составная часть (одно из полей структуры данных - DACL) описателя безопасности (англ. security descriptor) - аргумента функции. Учетная запись пользователя 105, используемая для доступа, также учитывается при применении набора ACL: результат определения учетной записи пользователя 105 средством контроля 110 указывается в качестве параметра вышеуказанных функций (в одном из вариантов реализации название параметра - ClientToken). Если хотя бы один из вызовов функций назначает переменной (выходному параметру вызова соответствующей функции) AccessStatus значение указателя, по адресу которого находится значение FALSE (а именно по адресу находится область памяти, содержащая значение, обозначенное в ОС Windows как FALSE), то средство контроля 110 формирует решение о блокировании доступа к объекту 106, в противном случае средство контроля 110 не принимает решения о блокировании доступа к объекту 106. Иными словами, если хотя бы один ACL запрещает доступ к объекту 106, доступ будет заблокирован, в противном случае доступ не будет заблокирован. Таким образом решение о блокировании доступа к объекту 106 принимается средством контроля 110 на основании применения набора ACL для объекта 106, к которому осуществляется доступ от лица пользователя 105 к учетной записи пользователя 106 (а именно, результатам определения учетной записи). В одном из вариантов реализации изобретения блокирование доступа - завершение вызова (а именно выполнения) соответствующей функции, при помощи которой осуществляется доступ к объекту 106.

Набор ACL, который применяется средством контроля 110, передается от средства трансляции 120. В частном случае реализации средство трансляции 120 предоставляет средству контроля 110 набор ACL для объекта операционной системы 106, доступ к которому перехвачен средством 110, в ответ на идентификатор объекта 106, который поступает от средства контроля 110. Идентификатором объекта операционной системы может быть по крайней мере:

- идентификатор файла в файловой системе, например путь к файлу на устройстве хранения данных, если объект 106 - файл;

- идентификатор процесса (ProcessID);

- любая другая информация, однозначно идентифицирующая объект в операционной системе.

В частном случае реализации при принятии решения о блокировании доступа к объекту операционной системы 106 (а, соответственно, и при самом блокировании) средство контроля 110 передает модулю контроля приложений 140 уведомление для исключения упомянутого объекта операционной системы 106 из проверки, которая проводится модулем контроля приложений 140. Получив такое уведомление, модуль контроля приложений 140 исключает указанный объект 106 из проверки, проводимой модулем контроля приложений 140. В частном варианте реализации изобретения проверка, осуществляемая модулем контроля приложений 140, - проверка возможности доступа с использованием учетной записи пользователя 105 к объекту операционной системы 106. По результатам проверки может быть приняты решения: блокировать доступ или разрешить доступ. Стоит отметить, что в данном случае использование системы контроля доступа на основе ACL позволяет сократить время, которое потратит модуль контроля приложений 140 на проверку группы объектов операционной системы (например, файлов), так как в отношении некоторых из этих объектов не будет проводиться проверка модулем контроля приложений 140 после получения соответствующего уведомления от средства контроля 110.

В еще одном случае реализации изобретения при запуске вычислительного устройства, на котором располагается средство контроля 110, драйвер, который входит в состав средства 110, и при помощи которого средство 110 осуществляет перехват доступа к объекту 106, загружается в оперативную память (в том числе и выполняется в оперативной памяти) первым. При этом средство трансляции 120 может быть загружено в оперативную память (а, соответственно, и выполняться в оперативной памяти) позднее, так как при запуске вычислительного устройства, как правило, множество приложений и сервисов запускаются одновременно, и между загрузкой в оперативную память вычислительного устройства драйвера из средства 110 и средством трансляции 120 может существовать временной промежуток. В таком случае драйвер, входящий в состав средства 110, перехватывает доступ к объектам операционной системы и сохраняет всю необходимую для дальнейшей работы средства 120 информацию (например, токен доступа или идентификатор объекта 106).

В одном из вариантов реализации изобретения упомянутый драйвер, входящий в состав средства 110, приостанавливает доступ к объекту операционной системы 106 до принятия решения средством контроля 110 блокировать доступ к объекту 106 или нет. В еще одном варианте реализации изобретения указанный доступ к объекту операционной системы 106 не приостанавливается до принятия решения средством контроля 110 блокировать доступ к объекту 106 или нет. В частном случае реализации под приостановкой доступа понимают удерживание драйвером, входящим в состав средства контроля 110, управления в адресном пространстве указанного драйвера (а именно, в части адресного пространства процесса, осуществляющего доступ, и в котором находится образ загруженного в оперативную память драйвера) - инструкции, находящиеся в адресном пространстве упомянутого процесса, но за пределами загруженного в памяти драйвера, не исполняются, пока не будет завершена вышеупомянутая приостановка доступа. После принятия решения блокировать доступ к объекту 106 или нет средством контроля 110 приостановка доступа завершается - доступ либо блокируется, либо разрешается.

Средство трансляции 120 связано со средством контроля и предназначено для формирования набора из по меньшей мере одного ACL для объекта операционной системы на основании по меньшей мере одного правила доступа к упомянутому объекту (трансляция правил доступа в наборы ACL); при этом средство трансляции функционирует в режиме пользователя (англ. user mode, иногда «пользовательский режим»).

Правила доступа, используемые средством 120 для трансляции в набор ACL, хранятся в базе данных правил доступа 130. В одном из вариантов реализации изобретения такими правилами являются правила, используемые модулем контроля приложений 140.

Как было сказано выше, правило доступа к объекту операционной системы - правило доступа, которое описывает режим доступа к объекту операционной системы со стороны по меньшей мере одного пользователя (или группы пользователей), а также обладают одним из двух свойств: «запрет по умолчанию» (англ. default deny), «доступ по умолчанию» (англ. default access); при этом режим доступа может быть «доступ разрешен» или «доступ запрещен». Стоит отметить, что часто правила доступа к объекту описывают доступ не к отдельно взятому объекту операционной системы 106, а к целой группе объектов 106, попадающих в некоторую категорию (категорию объектов операционной системы), объединяющую некоторое множество объектов операционной системы, примером таких категорий могут быть «браузер», «программное обеспечение, разработанное Microsoft)), «программное обеспечение, созданное в 2013 году». Стоит отметить, что категорий может быть неограниченное количество и они могут формироваться администратором сети или любым другим специалистом, ответственным за безопасность сети и вычислительного устройства, по их усмотрению. Под формированием категории понимают создание правила отображения объекта операционной системы 106 в некоторую категорию на основании метаданных объекта операционной системы 106. Метаданные объекта операционной системы 106 - любая информация, описывающая объект 106, к которой можно получить доступ при помощи предоставляемых операционной системой средств, например системных функций. В общем случае метаданные могут отличаться для разного рода объектов, например файлов и ключей реестра. Примером метаданных объекта 106, при условии, что объект 106 - файл, могут являться: дата создания, владелец файла, владелец ЭЦП (электронной цифровой подписи), которой подписан файл, хеш-сумма файла, публичный ключ владельца вышеупомянутой ЭЦП, а также любая другая информация из ЭЦП файла. Объект операционной системы 106 может входить сразу в несколько категорий. Правило отображения объекта операционной системы 106 в некоторую категорию - правило, которое ставит множеству метаданных объекта 106 в соответствие некоторую категорию объекта операционной системы. Примерами правил отображения метаданных объекта 106 в категорию могут быть следующие правила:

- если объект операционной системы подписан цифровой подписью, и владелец цифровой подписи - Microsoft, то объект попадает в категорию «программное обеспечение, разработанное Miscrosoft»;

- если объект операционной системы - файл и имеет имя «plugin-container.exe» или «firefox.exe», то объект попадает в категорию «браузер Mozilla Firefox».

Правила отображения объекта 106 в категории применяются для определения категорий объекта 106 средством трансляции 120 и хранятся в упомянутом средстве 120. В еще одном варианте реализации изобретения правила трансляции хранятся в базе данных 130. Часть метаданных объекта 106, которые используются средством трансляции 120 для определения категорий объекта 106 доступны (посредством вызовов соответствующих системных функций) только из режима пользователя, например информация о цифровой подписи файла. Этот факт и определяет необходимость функционирования средства трансляции 120, которое определяет категории объекта 106, а соответственно и правила доступа, применимые к объекту 106, в режиме пользователя. После определения всех категорий, в которые входит объект 106, средство трансляции 120 формирует набор ACL для этого объекта 106 на основании всех правил доступа для объекта 106 (а именно, правил доступа, которые описывают доступ к объектам операционной системы из категорий, в которые входит объект 106).

Схематично правило доступа можно представить в следующем виде:

Ri=({(U, А)}, Р),

где Ri - правило доступа к объекту операционной системы из i-ой категории (иными словами, некоторой категории объектов операционной системы, в которую попадает объект операционной системы в соответствии с правилами отображения метаданных объекта операционной системы в категории), Р - свойство (либо default deny, либо default access), {(U, A)} - множество пар (Uk, Ak), где Uk - некоторый (например, k-ый) пользователь или группа пользователей вычислительного устройства (в качестве этого параметра правила выступает идентификатор безопасности - SID, в еще одном варианте реализации используется токен доступа), Аk - режим доступа (запрет или разрешение доступа: «доступ запрещен» или «доступ разрешен» соответственно) от имени пользователя или группы пользователей Uk. Таким образом правило доступа к объекту операционной системы из i-ой категории хранит набор режимов доступа со стороны каждого указанного в рамках правила пользователя или группы пользователей, а также свойство этого правила доступа.

Приведем пример использования правил доступа модулем контроля приложений 140. Пусть объект 106 входит в несколько категорий, назовем их «категория 1» и «категория 2» соответственно. Для объектов операционной системы из этих категорий существуют правила доступа R1 и R2 соответственно. Пусть

,

R2 = ((user2, доступ запрещен), default access)}.

Где user1, user2 - обозначения учетных записей (1 и 2 соответственно), а group1 - группа пользователей. При этом пользователи user1 и user2 входят в группу пользователей group1. Если к объекту операционной системы 106 осуществляется доступ с использованием учетной записи user1, то в соответствии с правилом R1 этот доступ будет запрещен («user1, доступ запрещен») модулем контроля приложений 140 несмотря на то, что в соответствии с правилом R2 доступ должен быть разрешен (из-за свойства default access), но модуль контроля приложений 140 анализирует все правила доступа к объекту 106 (а именно правила доступа ко всем категориям, в которые попадает об