Модель безопасности Base позволяет реализовать простейшую логику.
PSL-файл с описанием модели безопасности Base находится в KasperskyOS SDK по пути:
toolchain/include/nk/base.psl
Объект модели безопасности Base
В файле base.psl
содержится декларация, которая создает объект модели безопасности Base с именем base
. Соответственно, включение файла base.psl
в описание политики безопасности решения обеспечивает создание объекта модели безопасности Base по умолчанию. Методы этого объекта можно вызывать без указания имени объекта.
Объект модели безопасности Base не имеет параметров.
Объект модели безопасности Base может быть покрыт аудитом безопасности. Условия выполнения аудита, специфичные для модели безопасности Base, отсутствуют.
Необходимость создавать дополнительные объекты модели безопасности Base возникает в следующих случаях:
Методы модели безопасности Base
Модель безопасности Base содержит следующие правила:
grant ()
Имеет параметр типа ()
. Возвращает результат "разрешено".
Пример:
/* Клиенту класса foo разрешено
* обращаться к серверу класса bar. */
request src=foo dst=bar { grant () }
assert (
<Boolean
>)
Возвращает результат "разрешено", если через параметр передать значение true
. Иначе возвращает результат "запрещено".
Пример:
/* Любому клиенту в решении будет разрешено обращаться к серверу класса
* foo, вызывая метод Send службы net.Net, если через параметр port
* метода Send будет передаваться значение больше 80. Иначе любому
* клиенту в решении будет запрещено обращаться к серверу класса
* foo, вызывая метод Send службы net.Net. */
request dst=foo endpoint=net.Net method=Send { assert (message.port > 80) }
deny (
<Boolean
>) | ()
Возвращает результат "запрещено", если через параметр передать значение true
или ()
. Иначе возвращает результат "разрешено".
Пример:
/* Серверу класса foo запрещено
* отвечать клиенту класса bar. */
response src=foo dst=bar { deny () }
set_level (
<UInt8
>)
Устанавливает уровень аудита безопасности равным значению, переданному через параметр. Возвращает результат "разрешено". (Подробнее об уровне аудита безопасности см. "Описание профилей аудита безопасности".)
Пример:
/* Процесс класса foo получит решение "разрешено" от модуля
* безопасности Kaspersky Security Module, если вызовет метод интерфейса безопасности
* SetAuditLevel, чтобы изменить уровень аудита безопасности. */
security src=foo method=SetAuditLevel { set_level (message.audit_level) }