Содержание
- Модель безопасности StaticMap
- Объект модели безопасности StaticMap
- Правило init модели безопасности StaticMap
- Правило fini модели безопасности StaticMap
- Правило set модели безопасности StaticMap
- Правило commit модели безопасности StaticMap
- Правило rollback модели безопасности StaticMap
- Выражение get модели безопасности StaticMap
- Выражение get_uncommitted модели безопасности StaticMap
Модель безопасности StaticMap
Модель безопасности StaticMap позволяет ассоциировать с ресурсами двумерные таблицы типа "ключ–значение", читать и изменять значения ключей. Например, можно ассоциировать процесс, в контексте которого выполняется драйвер, с регионом памяти MMIO, который разрешено использовать этому драйверу. Для этого потребуется два ключа, значения которых задают базовый адрес и размер региона памяти MMIO. Эту ассоциацию можно использовать, чтобы проверить, может ли драйвер обращаться к региону памяти MMIO, к которому он пытается получить доступ.
Ключи в таблице имеют одинаковый тип и являются уникальными и неизменяемыми. Значения ключей в таблице имеют одинаковый тип.
Одновременно существует два экземпляра таблицы: базовый и рабочий. Оба экземпляра инициализируются одинаковыми данными. Изменения заносятся сначала в рабочий экземпляр, а затем могут быть добавлены в базовый экземпляр или, наоборот, заменены прежними значениями из базового экземпляра. Значения ключей могут быть прочитаны как из базового, так и из рабочего экземпляра таблицы.
PSL-файл с описанием модели безопасности StaticMap находится в KasperskyOS SDK по пути:
toolchain/include/nk/staticmap.psl
Объект модели безопасности StaticMap
Чтобы использовать модель безопасности StaticMap, нужно создать объект (объекты) этой модели.
Объект модели безопасности StaticMap содержит пул двумерных таблиц типа "ключ–значение", которые имеют одинаковый размер. Ресурс может быть ассоциирован только с одной таблицей из пула таблиц каждого объекта модели безопасности StaticMap.
Объект модели безопасности StaticMap имеет следующие параметры:
type Value
– тип значений ключей в таблицах (поддерживаются целочисленные типы);config
– конфигурация пула таблиц:keys
– таблица, содержащая ключи и их значения по умолчанию (ключи имеют типKey = Text | List<UInt8>
);pool_size
– число таблиц в пуле.
Все параметры объекта модели безопасности StaticMap являются обязательными.
Пример:
Объект модели безопасности StaticMap может быть покрыт аудитом безопасности. Условия выполнения аудита, специфичные для модели безопасности StaticMap, отсутствуют.
Необходимость создавать несколько объектов модели безопасности StaticMap возникает в следующих случаях:
- Если нужно по-разному настроить аудит безопасности для разных объектов модели безопасности StaticMap (например, для разных объектов можно применять разные профили аудита или разные конфигурации аудита одного профиля).
- Если нужно различать вызовы методов, предоставляемых разными объектами модели безопасности StaticMap (поскольку в данные аудита включается как имя метода модели безопасности, так и имя объекта, предоставляющего этот метод, можно понять, что был вызван метод конкретного объекта).
- Если нужно использовать таблицы с разными наборами ключей и/или разными типами значений ключей.
Правило init модели безопасности StaticMap
Ассоциирует свободную таблицу из пула таблиц с ресурсом sid
. Ключи инициализируются значениями по умолчанию.
Возвращает результат "разрешено", если создало ассоциацию таблицы с ресурсом sid
.
Возвращает результат "запрещено" в следующих случаях:
- В пуле нет свободных таблиц.
- Ресурс
sid
уже ассоциирован с таблицей из пула таблиц используемого объекта модели безопасности StaticMap. - Значение
sid
вне допустимого диапазона.
Пример:
Правило fini модели безопасности StaticMap
Удаляет ассоциацию таблицы с ресурсом sid
(таблица становится свободной).
Возвращает результат "разрешено", если удалило ассоциацию таблицы с ресурсом sid
.
Возвращает результат "запрещено" в следующих случаях:
- Ресурс
sid
не ассоциирован с таблицей из пула таблиц используемого объекта модели безопасности StaticMap. - Значение
sid
вне допустимого диапазона.
Правило set модели безопасности StaticMap
Задает значение value
ключу key
в рабочем экземпляре таблицы, ассоциированной с ресурсом sid
.
Возвращает результат "разрешено", если задало значение value
ключу key
в рабочем экземпляре таблицы, ассоциированной с ресурсом sid
. (Текущее значение ключа будет перезаписано, даже если оно равно новому.)
Возвращает результат "запрещено" в следующих случаях:
- Ключ
key
не содержится в таблице, ассоциированной с ресурсомsid
. - Ресурс
sid
не ассоциирован с таблицей из пула таблиц используемого объекта модели безопасности StaticMap. - Значение
sid
вне допустимого диапазона.
Пример:
Правило commit модели безопасности StaticMap
Копирует значения ключей из рабочего в базовый экземпляр таблицы, ассоциированной с ресурсом sid
.
Возвращает результат "разрешено", если скопировало значения ключей из рабочего в базовый экземпляр таблицы, ассоциированной с ресурсом sid
.
Возвращает результат "запрещено" в следующих случаях:
- Ресурс
sid
не ассоциирован с таблицей из пула таблиц используемого объекта модели безопасности StaticMap. - Значение
sid
вне допустимого диапазона.
Правило rollback модели безопасности StaticMap
Копирует значения ключей из базового в рабочий экземпляр таблицы, ассоциированной с ресурсом sid
.
Возвращает результат "разрешено", если скопировало значения ключей из базового в рабочий экземпляр таблицы, ассоциированной с ресурсом sid
.
Возвращает результат "запрещено" в следующих случаях:
- Ресурс
sid
не ассоциирован с таблицей из пула таблиц используемого объекта модели безопасности StaticMap. - Значение
sid
вне допустимого диапазона.
Выражение get модели безопасности StaticMap
Возвращает значение ключа key
из базового экземпляра таблицы, ассоциированной с ресурсом sid
.
Возвращает значение типа Value
.
Выполняется некорректно в следующих случаях:
- Ключ
key
не содержится в таблице, ассоциированной с ресурсомsid
. - Ресурс
sid
не ассоциирован с таблицей из пула таблиц используемого объекта модели безопасности StaticMap. - Значение
sid
вне допустимого диапазона.
Когда выражение выполняется некорректно, модуль безопасности Kaspersky Security Module возвращает решение "запрещено".
Пример:
Выражение get_uncommitted модели безопасности StaticMap
Возвращает значение ключа key
из рабочего экземпляра таблицы, ассоциированной с ресурсом sid
.
Возвращает значение типа Value
.
Выполняется некорректно в следующих случаях:
- Ключ
key
не содержится в таблице, ассоциированной с ресурсомsid
. - Ресурс
sid
не ассоциирован с таблицей из пула таблиц используемого объекта модели безопасности StaticMap. - Значение
sid
вне допустимого диапазона.
Когда выражение выполняется некорректно, модуль безопасности Kaspersky Security Module возвращает решение "запрещено".
В начало