20 Ноября, 2013

Статья.МЕТОДЫ И МОДЕЛИ ИДЕНТИФИКАЦИИ И АУТЕНТИФИКАЦИИ ПОЛЬЗОВАТЕЛЯ ПРИ ДОСТУПЕ К ФАЙЛОВЫМ ОБЪЕКТАМ.

Андрей Щеглов
МЕТОДЫ И МОДЕЛИ ИДЕНТИФИКАЦИИ И АУТЕНТИФИКАЦИИ ПОЛЬЗОВАТЕЛЯ
ПРИ ДОСТУПЕ К ФАЙЛОВЫМ ОБЪЕКТАМ
К.А. Щеглов, А.Ю. Щеглов, д.т.н., проф.
Введение.
Основу защиты от несанкционированного доступа обрабатываемой на компьютере информации составляет реализация разграничительной политики доступа пользователей к файловым объектам, применяемой для решения различных задач защиты, начиная от защиты обрабатываемой информации и заканчивая защитой системных ресурсов, в частности, исполняемых файлов, файлов настройки ОС и приложений, и т.д. [1]. При этом разграничительная политика может быть реализована, как к статичным, так и к создаваемым файловым объектам [2]. Эффективность разграничительной политики определяется не только предоставляемым ею набором функциональных возможностей, но и реализуемыми методами защиты от ее обхода. Одна из наиболее распространенных возможностей обхода состоит в получении пользователем прав доступа другого пользователя, как правило, более привилегированного, с последующим несанкционированным доступом уже с его правами к файловым объектам. Подобные атаки называют атаками на повышение привилегий. Рассмотрим в данной работе причины возникновения подобных атак и предлагаемые методы защиты от них.
1. Задача идентификации и аутентификации пользователей при доступе к файловым объектам. Когда разговор заходит об «идентификации и аутентификации» пользователя, то сразу «на ум» приходит задача идентификации и аутентификации пользователя при входе в систему, когда пользователь после загрузки ОС в соответствующем окне вводит свой идентификатор и пароль (секретное слово). Однако здесь мы будем рассматривать совершенно иную задачу идентификации и аутентификации пользователя, при его доступе к файловым объектам. Рассмотрим, в чем она состоит, при этом, в первую очередь, напомним используемые нами здесь основные понятия
Идентификация — это процесс распознавания элемента системы, обычно с помощью заранее определенного идентификатора или другой уникальной информации; каждый субъект или объект системы должен быть однозначно идентифицируем.
Аутентификация — это проверка подлинности идентификации пользователя, процесса, устройства или другого компонента системы (обычно осуществляется перед разрешением доступа).
В широко распространенных ОС семейства Windows для идентификации субъектов, выполняющих в системе различные действия, используются идентификаторы защиты (security identifiers, SID). SID имеются у пользователей, локальных и доменных групп, локальных компьютеров, доменов и членов доменов. Все работающие в системе процессы и потоки выполняются в контексте защиты того пользователя, от имени которого они так или иначе были запущены, а для идентификации контекста защиты процесса или потока используется объект, называемый маркером доступа (access token). В процессе регистрации в системе создается начальный маркер, представляющий пользователя, который входит в систему, и сопоставляет его с процессом оболочки, применяемой для регистрации пользователя.
Маркер может быть основным (идентифицирует контекст защиты процесса) или олицетворяющим (применяется для временного заимствования потоком другого контекста защиты — обычно другого пользователя). Олицетворение (impersonation) — средство, часто используемое в модели защиты Windows, предоставляющее возможность отдельному потоку выполняться в контексте защиты отличном от контекста защиты процесса, т.е. действовать от лица другого пользователя. Олицетворение, в частности, используется в модели программирования «клиент-сервер». При заимствовании прав сервер временно принимает профиль защиты клиента, который обращается к ресурсу. Тогда сервер может работать с ресурсом от имени клиента, а система защиты проводить проверку его прав доступа. Приведенная схема обслуживания клиентского запроса проиллюстрирована на рис.1.

Рис. 1. Обслуживание клиентского запроса на доступ к ресурсу с использованием олицетворения

Обычно серверу доступен более широкий круг ресурсов, чем клиенту, и при олицетворении сервер может терять часть исходных прав доступа. И, напротив, при олицетворении сервер может получить дополнительные права. Таким образом, сервисы олицетворения потенциально опасны и могут быть использованы для расширения привилегий (расширения возможностей текущей учетной записи пользователя до возможностей более привилегированной учетной записи, например, суперпользователя, такой как учетная запись администратора или запись SYSTEM), достаточного для осуществления несанкционированного доступа к конфиденциальным данным в обход реализованной разграничительной политики доступа.
Подобная возможность присутствует и в механизме идентификации Unix-подобных систем. В Unix существуют два типа идентификаторов пользователя: реальный и эффективный. Реальным идентификатором пользователя данного процесса является идентификатор пользователя, запустившего процесс. Эффективный идентификатор служит для определения прав доступа процесса к ресурсам системы (в первую очередь к ресурсам файловой системы). Обычно реальный и эффективный идентификаторы совпадают, т.е. процесс имеет в системе те же права, что и пользователь, запустивший его. Однако существует возможность задать процессу более широкие права, чем права пользователя, путем установки бита SUID, когда эффективному идентификатору присваивается значение идентификатора владельца выполняемого файла (например, пользователя root). Таким образом, процесс выполняется от лица пользователя – владельца исполняемого файла, причем заимствование прав происходит прозрачно (не требуется дополнительная аутентификация) для пользователя, запустившего процесс.
Как видим, и здесь с использованием сервисов олицетворения, вполне легальных сервисов, предоставляемых современными ОС, возможно получение прав другого пользователя, с последующим обращением с его правами к файловым объектам в обход разграничительной политики доступа к ресурсам.
Задача идентификации и аутентификации пользователей при доступе к файловым объектам состоит в обнаружении факта, а при обнаружении - в контроле корректности (на соответствие заданным правилам) смены реального (далее будем говорить, первичного, что правильнее по сути) имени пользователя на эффективное имя при запросах доступа к файловым объектам. Рассмотрим альтернативные варианты решения этой задачи защиты.
2. Дискреционный метод и модель контроля смены имени пользователей при доступе к файловым объектам.
Таким образом, при реализации контроля доступа к файловым объектам мы имеем две сущности, характеризующие пользователя (субъекта доступа). «Первичное» и «Эффективное» имя пользователя. Первичное имя пользователя, это имя (учетная запись), от лица которого (с правами которого) запускается процесс. Запуск процесса должен контролироваться средством защиты (его компонентом – диспетчером доступа, перехватывающего и анализирующего все запросы к файловым объектам), а первичное имя для каждого запускаемого процесса – запоминаться диспетчером. Эффективное имя пользователя - это имя пользователя (учетная запись), от лица которого процесс (точнее, генерируемый им поток) непосредственно и обращается к файловому объекту. Это имя диспетчер доступа и определяет из запроса доступа к файловым объектам. Как видим, диспетчер доступа при любом запросе доступа к файловому объектам имеет для анализа обе сущности (первичное и эффективное имя пользователя), как следствие, он может, во-первых, проводить идентификацию и аутентификацию пользователя при доступе к файловым объектам (сравнить первичное и эффективное имя, при совпадении – аутентификация будет проведена, корректность запроса подтверждена), во-вторых, реализовать разграничительную политику доступа в части контроля смены имени пользователя при доступе к файловым объектам.

Будем считать, что множество С = {С1,…, Сl}- линейно упорядоченное множество пользователей (учетных записей), зарегистрированных в системе.
Метод дискреционного контроля доступа предполагает реализацию разграничительной политики на основе матрицы контроля смены имен пользователей при доступе к файловым объектам, I, позволяющей максимально точно задать соответствующие правила:


В любой момент времени система описывается своим текущим состоянием Q = (C,С,I); М[C,С] – ячейка матрицы, содержит право смены имен пользователей: «1» - смена имени разрешена, «0» - запрещена. Условимся строками матрицы обозначать первичные, а столбцами – эффективные имена пользователей. Будем обозначать Cj(I)Ci разрешение изменения первичного имени пользователя Cj при доступе к файловому объекту на эффективное имя Ci, i=1,…,l; j=1,…,l, i≠j. Запрет доступа будем обозначать следующим образом: Cj(0)Ci. Будем говорить, что доступ к файловому объекту осуществляется без смены имени пользователя в случае Ci (I)Ci, i=1,…,l.
Будем называть матрицу контроля смены имен пользователей при доступе к файловым объектам, I канонической, если для нее справедливо: Ci(I)Ci, i=1,…,l, Cj(0)Ci i=1,…,l; j=1,…,l, j≠j. Это матрица, на главной диагонали которой расположены соответствующие разрешения «1», остальные ячейки матрицы содержат «0». При реализации в системе канонической матрицы, смены имен пользователей при доступе к файловым объектам не предусмотрено, диспетчером доступа решается исключительно задача идентификации и аутентификации.
Ранее мы отмечали, что ключевой задачей защиты, при контроле смены имен пользователей, является защита от повышения привилегий пользователя при доступе к файловым объектам. Будем считать, что пользователи из множества С = {С1,…, Сl}, зарегистрированные в системе, упорядочены следующим образом; чем меньше порядковый номер пользователя, тем выше его привилегии по доступу к файловым объектам.
Лемма 1. Разрешение изменения первичного имени пользователя на эффективное имя при доступе к файловому объекту: Cj(I)Ci, i≠j, i=1,…,l; j=1,…,l, корректно, при выполнении следующего условия: Cj<Ci.
Доказательство. При выполнении условия: Cj<Ci разрешается изменение первичного имени пользователя при доступе к файловому объекту Cj(I)Ci только на имя менее привилегированного пользователя. Лемма доказана.
Корректное правило изменения первичного имени пользователя при доступе к файловому объекту описывается матрицей Ik:


Обратим внимание на то, что запрашивает смену идентификатора пользователя при обращении к файловым объектам процесс, т.е. именно процесс в данном случае следует рассматривать в качестве субъекта доступа к сервисам олицетворения. В противном случае, одни и те же правила контроля изменения первичного имени пользователя при доступе к файловому объекту будут распространяться на все процессы, что априори не позволит реализовать эффективную разграничительную политику. Не будем забывать, что процессы принципиально различаются по своим функциям – это и процессы приложений, и системные процессы. Разграничивая доступ к сервисам олицетворения при доступе к файловым объектам для системных процессов, можно получить достаточно интересные новые свойства защиты. Например, запретив олицетворение при доступе к файловым объектам процессу winlogon.exe (отвечает за локальный вход в систему) из пользователя System в пользователя User1, тем самым запретим вход в систему пользователю User1. Аналогично можно запретить печать для отдельных пользователей, запретив подобное олицетворение для процесса печати. Например, обращение к разделенному файловому ресурсу на целевой машине осуществляется процессом System при олицетворении пользователя System с соответствующей учетной записью пользователя, т.е. локальный и удаленный вход под одним пользователем может быть разделен, разделены права доступа. И таких примеров множество.
Таким образом, в общем случае дискреционный контроль доступа предполагает реализацию разграничительной политики на основе матрицы контроля смены имен пользователей при доступе к файловым объектам, I, для процессов (права смены имен пользователей задаются соответствующей матрицей I для каждого контролируемого процесса). Пример интерфейса задания субъекта доступа (для которого устанавливаются дискреционные правила контроля доступа) приведен на рис.2, отображение созданных субъектов доступа в интерфейсе средства защиты на рис.3.

Рис.2. Интерфейс создание субъекта доступа

Рис.3. Отображение субъекта доступа в средстве защиты

Пользователь (как первичное, так и эффективное имя) может задаваться конкретной учетной записью, либо маской «Все». Имя процесса, соответственно либо полнопутевым именем его исполняемого файла, либо маской (возможно использование переменных среды окружения). Например, маской C:Program File* покрываются все исполняемые файлы из данного каталога. Рассмотрим первую запись на рис.3. Видим, что для интернет-браузера (IE) определена работа только под конкретным пользователем, без права изменения его имени при доступе к файловым объектам. При осуществления атаки на IE, с целью повышения привилегий (приводящей к смене первичного имени), доступ IE к объектам файловой системы будет диспетчером заблокирован.
3. Мандатный метод и модель контроля смены имени пользователей при доступе к файловым объектам.
Под мандатным контролем доступа понимается способ обработки запросов диспетчером доступа, основанный на формальном сравнении диспетчером в соответствии с заданным правилом меток безопасности (мандатов), назначаемых субъектам и объектам доступа (либо только субъектам, если реализуется контроль доступа к создаваемым файлам [2]). Метки безопасности, как правило, являются элементами линейно упорядоченного множества M = {M1,…, Ml} и служат для формализованного представления каких-либо свойств субъектов и объектов.
Разграничение доступа диспетчером реализуется на основе задаваемого правила, определяющего отношение линейного порядка на множестве M, где для любой пары элементов из множества M, задается один из типов отношения:{>,<,=} (на практике реализуется выбор подмножества M, изоморфного конечному подмножеству натуральных чисел – такой выбор делает естественным арифметическое сравнение меток безопасности). Правило сравнения меток также назначается из каких-либо свойств субъектов и объектов, применительно к решаемой задаче защиты информации.
Наиболее широкое использование мандатного метода нашло применение в практике секретного делопроизводства при компьютерной обработке информации. Основу реализации обработки категорированной информации составляет классификация информации по уровням конфиденциальности. Метки безопасности объектов отражают категорию конфиденциальности информации, которая может быть сохранена в соответствующих объектах. Метки безопасности субъектов отображают полномочия (по аналогии с формой допуска) субъектов, в части допуска к информации различных уровней конфиденциальности.
Будем считать, что чем выше полномочия субъекта и уровень конфиденциальности объекта, тем меньше их порядковый номер в линейно полномочно упорядоченных множествах субъектов и объектов - С = {С1,…, Сl} и О = {О1,…, Оl}, и тем меньшее значение метки безопасности Mi, i = 1, …, l им присваивается, т.е.: M1 < M2 < M3<…<Ml.
Таким образом, в качестве учетной информации субъектов и объектов доступа, кроме их идентификаторов – имен, в диспетчере доступа каждому субъекту и объекту задаются метки безопасности из множества M.
Используем следующие обозначения:
· Mс – метка безопасности субъекта (группы субъектов) доступа;
· Mo – метка безопасности объекта (группы объектов) доступа.
Мандатный контроль доступа применяется с целью защиты от нарушения конфиденциальности информации, что обеспечивается реализацией следующих правил, направленных на защиту от понижения категории обрабатываемой информации:
1. Субъект С имеет доступ к объекту О в режиме “Чтения” в случае, если выполняется условие: Mc <, = Mo.
2. Субъект С имеет доступ к объекту О в режиме “Записи” в случае, если выполняется условие: Mc = Mo.
Ранее, говоря о дискреционном контроле, мы вводили условие, что пользователи из множества С = {С1,…, Сl}, зарегистрированные в системе, упорядочены следующим образом; чем меньше порядковый номер пользователя, тем выше его привилегии по доступу к файловым объектам. При реализации же мандатного контроля доступа рассматривалось следующее условие: чем выше полномочия субъекта и уровень конфиденциальности объекта, тем меньше их порядковый номер в линейно полномочно упорядоченных множествах субъектов и объектов - С = {С1,…, Сl} и О = {О1,…, Оl}), и тем меньшее значение метки безопасности Mi, i = 1, …, l им присваивается, т.е.: M1 < M2 < M3<…<Ml. Естественно, что в данном случае следует защищать систему от атак на повышение привилегий – от возможности получения несанкционированного доступа к информации более высокого уровня конфиденциальности пользователем с меньшим уровнем допуска (за счет смены имени пользователя). Однако, напомним, что мандатным контролем доступа реализуется защита от понижения категории обрабатываемой информации, как следствие, в качестве повышения привилегий (от таких атак также следует защищать систему) следует рассматривать и возможность записи в объект меньшего уровня конфиденциальности пользователем с высшим уровнем допуска, опять же за счет смены имени пользователя.
Данные задачи защиты решаются при реализации следующих непротиворечивых правил мандатного контроля доступа с учетом возможности изменения первичного имени пользователя при доступе к файловому объекту:
1. Субъект С не имеет доступ к объектам файловой системы при условии, что исходному имени субъекта С присвоена метка Мi, а при доступе к файловому объекту осуществлена смена его исходного имени на эффективное, которому присвоена метка Mj, i≠j, i = 1, …, l, j = 1, …, l, причем: Мi > Mj.
2. Субъект С имеет следующее право доступа к объектам файловой системы при условии, что исходному имени субъекта С присвоена метка Мi, при доступе к файловому объекту осуществлена смена исходного имени на эффективное, которому присвоена метка Mj, i≠j, i = 1, …, l, j = 1, …, l, при этом Мi < Mj (где под Mc понимается эффективное имя Mj):
- Субъект С имеет доступ к объекту О в режиме “Чтения” в случае, если выполняется условие: Mc <, = Mo.
- Субъект С не имеет доступ к объекту О в режиме “Записи”.
3. Субъект С имеет следующее право доступа к объектам файловой системы при условии, что изменения имени пользователя не произошло, либо произошло, но выполняется условие: Мi = Mj (где под Mc понимается эффективное имя Mj:
- Субъект С имеет доступ к объекту О в режиме “Чтения” в случае, если выполняется условие: Mc <, = Mo.
- Субъект С имеет доступ к объекту О в режиме “Записи” в случае, если выполняется условие: Mc = Mo.
Лемма 2. Мандатный контроль доступа с учетом возможности изменения первичного имени пользователя при доступе к файловому объекту корректен, если реализованы сформулированные непротиворечивые правила мандатного контроля доступа.
Доказательство. Первое правило предотвращает какой-либо доступ к объектам файловой системы в случае, если несанкционированно повышен (за счет смены имени пользователя) уровень допуска пользователя (уменьшено значение метки безопасности при доступе к файловому объекту), второе же правило предотвращает возможность записи информации пользователем, в случае, если несанкционированно понижен его уровень допуска (читать информацию соответствующей категории он при этом может, что не противоречит ключевому правилу мандатного контроля доступа). Ни утечки права записи, ни утечки права чтения не происходит. Лемма доказана.
Теперь, как работает диспетчер доступа. Размечаются субъекты и объекты (либо только субъекты [2]) доступа, им присваиваются метки безопасности. Диспетчером доступа контролируется запуск процесса – диспетчером запоминаются метки безопасности запустивших процессы пользователей Мi. Из запроса доступа диспетчер определяет имя процесса, обращающегося к файловому объекту и эффективное имя пользователя. Эффективное имя пользователя сопоставляется с его меткой Mj. Диспетчер сравнивает значения Мi и Mj, в результате чего выбирает одно из трех корректных непротиворечивых правил (где под Mc понимается эффективное имя Mj). В результате же сравнения значений Mc и Mo (где Mo определяемое диспетчером из запроса доступа значения метки безопасности объекта), диспетчер, либо разрешает запрошенный доступ, либо отказывает в нем пользователю.
Заключение.
В заключение отметим, что, как бы ни была развита по набору функциональных возможностей разграничительная политика доступа к файловым объектам, на которой основана защита информации от несанкционированного доступа в современных системах, в общем случае предполагающая контроль доступа, как к информационным, так и к системным ресурсам (например, одна из задач контроля доступа к системным ресурсам рассмотрена нами в [3]), об ее эффективности можно говорить лишь в предположении, что диспетчером доступа решаются задачи защиты от ее обхода злоумышленниками. Один из наиболее широко используемых на практике способов обхода разграничительной политики доступа состоит в повышении привилегий пользователей. Поэтому, на наш взгляд, задачи идентификации и аутентификации пользователя при запросах доступа к файловым объектам, а так же контроля корректности (на соответствие заданным правилам) смены первичного имени пользователя на эффективное имя при запросах доступа к файловым объектам, должны в обязательном порядке решаться в современных средствах защиты. К слову сказать, это является и требованием действующего нормативного документа в области защиты информации [4]: «Комплекс средств защиты (КСЗ) должен требовать от пользователей идентифицировать себя при запросах на доступ. КСЗ должен подвергать проверке подлинность идентификации - осуществлять аутентификацию. КСЗ должен располагать необходимыми данными для идентификации и аутентификации. КСЗ должен препятствовать доступу к защищаемым ресурсам неидентифицированных пользователей и пользователей, подлинность идентификации которых при аутентификации не подтвердилась».
Литература.
1. А.Ю. Щеглов. Защита компьютерной информации от несанкционированного доступа. – СПб: Наука и техника, 2004. - 384с.
2. К.А. Щеглов, А.Ю. Щеглов. Принцип и методы контроля доступа к создаваемым файловым объектам // Вестник компьютерных и информационных технологий (принята к опубликованию в №5 2012 года).
3. К.А. Щеглов, А.Ю. Щеглов. Защита от вредоносных программ методом контроля доступа к создаваемым файловым объектам // Вестник компьютерных и информационных технологий (принята к опубликованию в №7 2012 года).
4. Гостехкомиссия России. Руководящий документ. Средства вычислительной техники. Защита от несанкционированного доступа к информации. Показатели защищенности от НСД к информации. - Москва, 1992.
или введите имя

CAPTCHA