Из всех существующих моделей разграничения доступа наибольшее распространение получили две основные модели:
- избирательное (дискреционное) разграничение доступа;
- полномочное (мандатное) разграничение доступа.
Применение данных моделей в информационно-вычислительных системах и средствах вычислительной техники регламентируется руко- водящими документами ФСТЭК РФ, при этом в информационно-вычислительных системах и средствах вычислительной техники должна быть реа- лизована как минимум дискреционная модель разграничения доступа, а в случае обработки информации, имеющей конфиденциальный характер, обязательно должна быть реализована мандатная модель разграничения доступа.
При дискреционном разграничении доступа определенные операции над конкретным ресурсом запрещаются или разрешаются субъектам или группам субъектов. Практически все существующие операционные системы реализуют именно такую модель доступа по умолчанию.
Мандатное разграничение доступа заключается в том, что все объекты доступа имеют определенные уровни секретности, а все субъекты делятся на группы, образующие иерархию в соответствии с уровнем допуска к информации. Для реализации мандатной модели разграничения доступа, как пра- вило, необходимы дополнительные программные средства, встраиваемые в операционную систему. При этом следует отметить, что мандатная модель разграничения доступа при реализации ее в операционных системах не заменяет дискреционную модель разграничения доступа, а дополняет ее, внося дополнительный уровень проверки прав доступа субъектов, при их запросах на какие-либо действия с объектами.
Реализация мандатного доступа в различных операционных системах (Linux, Windows), как правило, осуществляется путем встраивания в операционную систему дополнительных программных компонентов, осуществляющих перехват API-функций операционной системы, которые предназначены для осуществления каких-либо действий с объектами доступа (файлами, участками памяти, сетевыми соединениями, интерфейсами ввода/вы- вода внешних устройств и т.п.) (рис. 1, 2).
Способ перехвата указанных системных функций зависит от типа операционной системы, для которой предназначена система (или средство) разграничения доступа. Для операционных систем семейства Windows перехват функций может быть осуществлен либо внесением изменений в таблицу дескрипторов системных вызовов SDT [1, 2], либо с использованием драйвера-фильтра файловой системы [2]. Для операционных систем семейства Linux перехват указанных функций осуществляется с применением механизма LSM [3–5].
Особенности реализации мандатной модели разграничения доступа в информационно-вычислительных системах различного назначения приводят к существенному снижению производительности защищаемой системы, поскольку права доступа к объекту должны проверяться не только при открытии объекта, но и при проведении любой операции с объектом (чтение, запись, перемещение).
Исходя из этого при построении или при выборе средств разграничения доступа для различных информационно-вычислительных систем необходимо иметь возможность оценивать уровень влияния этих средств на производительность защищаемой системы для выбора наиболее приемлемого варианта реализации мандатной модели разграничения доступа в информационно-вычислительных системах.
Известные методики оценивания влияния средств защиты на качество функционирования и на производительность информационно-вычислительных систем либо не позволяют производить оценку степени влияния средств разграничения доступа [6–9], либо не имеют возможности произвести оценку степени влияния средств разграничения доступа на производительность информационно-вычислительной системы в целом [10]. Помимо этого, в большинстве методик при свертке частных показателей, характеризующих степень влияния средств защиты на производительность защищаемой системы, используется экспертный метод оценки весовых коэффициентов значимости того или иного частного показателя, что снижает объек- тивность оценки и усложняет проведение самой процедуры оценки.
Таким образом, возникает необходимость в разработке методики оценки степени влияния средств разграничения доступа на производительность защищаемой системы. Методика должна отвечать следующим требованиям:
- иметь возможность оценивать влияние средств разграничения доступа на производительность информационно-вычислительной системы в целом с учетом особенностей ее функционирования и решения возложенных на нее задач;
- весовые коэффициенты, необходимые для свертки частных показателей степени снижения производительности в интегральный, должны определяться без использования методов экспертных оценок;
- в качестве частных показателей, характеризующих степень влияния средств разграничения доступа на производительность защищаемой системы, должны использоваться коэффициенты замедления скорости выполнения системных функций операционной системы, реализующие все контролируемые средством разграничения доступа операции с объектами доступа.
Методика оценки степени влияния средств разграничения доступа на производительность защищаемой информационно-вычислительной системы должна включать в себя следующие этапы (рис. 3):
- определение перечня системных функций операционной системы, подлежащих контролю;
- определение весовых коэффициентов значимости (для выполнения возложенных на защищаемую систему задач) системных функций;
- определение коэффициентов замедления выполнения системных функций операционной системы, подлежащих оценке;
- определение общего (интегрального) показателя снижения производительности защищаемой системы вследствие влияния средств разграничения доступа.
Определение перечня системных функций операционной системы, подлежащих контролю. На данном этапе выявляются контролируемые средствами разграничения доступа системные функции. Как правило, в большинстве случаев средствами разграничения доступа контролируются системные функции, которые выполняют следующее:
- все файловые операции (открытие файла, чтение из файла, запись в файл, удаление файла, перемещение файла, изменение атрибутов файла, а также аналогичные операции с каталогами);
- операции с памятью (выделение участков памяти, чтение из памяти процесса, запись в память процесса, изменение атрибутов участков памяти, высвобождение участков памяти);
- операции сетевого обмена;
- операции обмена с внешними устройствами.
Определение весовых коэффициентов значимости системных функций. Как было отмечено, при определении весовых коэффициентов значимости системных функций необходимо избегать использования экспертных методов оценивания. В связи с этим предлагается оценивать значимость системной функции исходя из частоты ее вызова при функционировании информационно-вычислительной системы. Для этого необходимо отслеживать и подсчитывать все вызовы системных функций при штатном функционировании информационно-вычислительной системы за определенный промежуток времени. Для отслеживания вызовов системных функций возможно использование су- ществующих программных средств (в частности, Process Monitor (рис. 4), API-Monitor для операционных систем семейства Windows или утилита ptrace (strace) из состава систем Linux).
Тогда весовой коэффициент значимости i-й системной функции будет определяться как , где xi – количество вызовов i-й системной функции за контролируемый промежуток времени (; N – число системных функций, подлежащих оценке); X – общее количество всех системных вызовов за контролируемый промежуток времени, определяемое как .
Определение коэффициентов замедления выполнения системных функций операцион- ной системы, подлежащих оценке. Данный ко- эффициент рассчитывается как отношение среднего времени выполнения оцениваемой системной функции без контроля средствами разграничения доступа к среднему времени выполнения оценива- емой системной функции под контролем средств разграничения доступа: , где – среднее время выполнения i-й системной функции без контроля ее средствами разграничения доступа; – среднее время выполнения i-й системной функции под контролем ее средствами разграничения доступа.
Для оценки среднего времени выполнения системной функции возможны два способа:
- фиксировать время выполнения каждого вызова системной функции и определять среднее время выполнения следующим образом:
, (1)
где n – число вызовов системной функции; tk – время выполнения функции в ходе k-го вызова;
- произвести нужное количество вызовов системной функции, зафиксировать общее время выполнения всех вызовов функции, после чего среднее время определить следующим образом: , где n – число вызовов системной функции; T – общее время выполнения всех вызовов системной функции.
Определение интегрального показателя снижения производительности защищаемой системы вследствие влияния средств разграничения доступа. Данный показатель определяется как аддитивная свертка коэффициентов замедления работы каждой системной функции с учетом весового коэффициента значимости этой функции: .
Программная реализация. Для оценки времени выполнения была разработана программа оценки времени выполнения API-функций (рис. 5).
Для фиксации временных промежутков выполнения API-функций используется подсчет тактов процессора с помощью API-функций Windows QueryPerformanceCounter и QueryPerformanceFrequency [11]. Первая API-функция возвращает количество импульсов счетчика высокого разрешения, вторая возвращает текущую частоту работы счетчика высокого разрешения (число импульсов за одну секунду). Разделив значение, полученное с помощью функции QueryPerformanceCounter, на значение, полученное с помощью функции QueryPerformanceFrequency, получим время работы вычислительной системы от момента начала работы до момента вызова функции QueryPerformanceCounter. Таким образом, разница замеренных значений времени перед вызовом необходимой API-функции и времени после завершения ее выполнения покажет искомое время выполнения этой API-функции.
Общий алгоритм работы программы приведен на рисунке 6.
В программе организуется цикл необходимого числа повторений вызова оцениваемой API-функции с замером временных промежутков вы- полнения каждой итерации и последующим вычислением среднего времени выполнения оцениваемой функции по формуле (1). Также в программе реализованы оценка доверительного интервала среднего значения времени выполнения API-функции и графическое представление результатов измерений временных промежутков. Программа разработана в среде Delphi 7. Исходный текст доступен по адресу https://github.com/drobotun/API_ Performance.
Применение предлагаемой методики. В качестве примера оцениваемых функций были выбраны API-функции Windows, предназначенные для работы с файлами (CreateFile, CopyFile, DeleteFile, MoveFile, ReadFile и WriteFile). Средством разграничения доступа выступал программный комплекс защиты информации Secret Net с настроенными политиками мандатного доступа к объектам файловой системы.
Этап 1. Для выбранных API-функций при выполнении задач общего назначения (редактирование текстовых документов и электронных таблиц, работа с архивами документов и т.п.) в течение 7 минут был осуществлен подсчет количества вызовов этих функций (использовалась программная утилита Process Monitor). Результаты данного эксперимента приведены в таблице 1.
Таблица 1
Результаты оценки весовых коэффициентов значимости системных функций
Table 1
The results of evaluating weight coefficients of importance of six Windows system functions when a data processing system runs general tasks
Наименование API-функции
|
Количество вызовов API-функции
|
Весовой коэффициент значимости
|
CreateFile
|
452
|
0,204
|
CopyFile
|
84
|
0,038
|
DeleteFile
|
24
|
0,011
|
MoveFile
|
19
|
0,009
|
ReadFile
|
895
|
0,405
|
WriteFile
|
734
|
0,332
|
Этап 2. Для выбранных API-функций были произведены оценки времени выполнения функций без контроля их средствами разграничения доступа и под контролем средств разграничения доступа – по 30 вызовов каждой функции с фиксацией времени выполнения каждого вызова. Результаты измерений среднего времени выполнения системных функций, а также рассчитанные коэф- фициенты замедлений работы системных функций приведены в таблице 2.
Этап 3. С учетом данных, полученных на этапах 1 и 2, общий коэффициент замедления работы системы при введении в ее состав средств разграничения доступа из состава комплекса средств информационной безопасности Secret Net будет со- ставлять 1,502 ´ 0,204 + 1,231 ´ ´ 0,038 + 2,219 ´ 0,011 + 2,211 ´ 0,009 + 1,768 ´ ´ 0,405 + 1,792 ´ 0,332 = 1,707.
Таблица 2
Результаты измерений времени работы API-функций и оценки коэффициента замедления работы функций
Table 2
The results of measuring API-functions execution time and evaluating the deceleration rate of functions work
Наименование API-функции
|
Время работы функции без контроля ti (сек.)
|
Время работы функции под контролем t*i (сек.)
|
Коэффициент замедления работы функции ki
|
CreateFile
|
0,000816
|
0,001225
|
1,502
|
CopyFile
|
0,002614
|
0,003219
|
1,231
|
DeleteFile
|
0,000429
|
0,000952
|
2,219
|
MoveFile
|
0,000440
|
0,000973
|
2,211
|
ReadFile
|
0,000082
|
0,000145
|
1,768
|
WriteFile
|
0,000207
|
0,000371
|
1,792
|
Таким образом, предлагаемая методика и ее программная реализация позволяют оценить влияние системы разграничения доступа к объектам доступа на производительность информационно-вычислительной системы и при этом при оценке весовых коэффициентов значимости частных показателей использовать расчетный метод без применения экспертных оценок.
Литература
1. Руссинович М., Соломон Д. Внутреннее устройство Wicrosoft Windows. СПб: Питер, 2013. 800 с.
2. Зайцев О.В. Rootkits, Spyware/Adware, Keyloggers & Backdoors: обнаружение и защита. СПб: БХВ-Петербург, 2006. 304 с.
3. Corbet J., Rubini A., Kroah-Hartman G. Linux Device Drivers. O`ReillyMedia, Inc., 2005, 636 p.
4. Матвейчиков И.В. Особенности встраивания в ключевые механизмы ядра Linux с использованием LSM. URL: https://habrahabr.ru/post196372/ (дата обращения: 3.09.2017).
5. Матвейчиков И.В. Обзор методов динамического встраивания в ядро операционной системы (на примере Linux) // Безопасность информационных технологий. 2014. № 4. С. 75–82.
6. Картавенко М. Тест антивирусов на быстродействие. 2012. URL: http://www.anti-malware.ru/antivirus_test_perfor mance_2012 (дата обращения: 3.09.2017).
7. Картавенко М. Тест корпоративных антивирусов на быстродействие. 2012. URL: http://www.anti-malware.ru/ corporate_antivirus_test_performance_2012 (дата обращения: 3.09.2017).
8. Шабанов И. Сравнение скорости работы ведущих антивирусов. 2005. URL: http://www.anti-malware.ru/comparisons/ compare_speed_antivirus (дата обращения: 3.09.2017).
9. Дроботун Е.Б., Козлов Д.В. Оценка степени влияния антивирусных средств на качество функционирования информационно-вычислительных систем // Программные продукты и системы. 2016. № 4. С. 129–134.
10. Шумилин А.В. Подход к оцениванию влияния средств разграничения доступа к данным на производительность реляционных СУБД // Программная инженерия. 2013. № 4. С. 29–33.
11. Саймон Р. Microsoft Windows API. Справочник системного программиста. Киев: ТИД «ДС», 2004. 1216 с.