KasperskyOS Community Edition 1.2

Примеры привязок методов моделей безопасности к событиям безопасности

Перед тем как рассматривать примеры, нужно ознакомиться со сведениями о модели безопасности Base.

Обработка инициации запусков процессов

/* Ядру KasperskyOS и любому процессу * в решении разрешено запускать любой * процесс. */ execute { grant () } /* Ядру разрешено запускать процесс * класса Einit. */ execute src=kl.core.Core, dst=Einit { grant () } /* Процессу класса Einit разрешено * запускать любой процесс в решении. */ execute src=Einit { grant () }

Обработка запуска ядра KasperskyOS

/* Ядру KasperskyOS разрешено запускаться. * (Эта привязка нужна, чтобы сообщить модулю * безопасности SID ядра. Ядро запускается независимо * от того, разрешено ли это политикой безопасности решения * или нет. Если политика безопасности решения запрещает * запуск ядра, после запуска ядро прекратит свое * исполнение.) */ execute src=kl.core.Core, dst=kl.core.Core { grant () }

Обработка отправки IPC-запросов

/* Любому клиенту в решении разрешено обращаться к * любому серверу и ядру KasperskyOS. */ request { grant () } /* Клиенту класса Client разрешено обращаться * к любому серверу в решении и ядру. */ request src=Client { grant () } /* Любому клиенту в решении разрешено обращаться * к серверу класса Server. */ request dst=Server { grant () } /* Клиенту класса Client запрещено * обращаться к серверу класса Server. */ request src=Client dst=Server { deny () } /* Клиенту класса Client разрешено * обращаться к серверу класса Server, * вызывая метод Ping службы net.Net. */ request src=Client dst=Server endpoint=net.Net method=Ping { grant () } /* Любому клиенту в решении разрешено обращаться * к серверу класса Server, вызывая метод Send * службы с интерфейсом MessExch. */ request dst=Server interface=MessExch method=Send { grant () }

Обработка отправки IPC-ответов

/* Серверу класса Server разрешено отвечать на * обращения клиента класса Client, который * вызывает метод Ping службы net.Net. */ response src=Server, dst=Client, endpoint=net.Net, method=Ping { grant () } /* Серверу, который содержит компонент kl.drivers.KIDF, * предоставляющий службы с интерфейсом monitor, разрешено * отвечать на обращения клиента класса DriverManager, * который использует эти службы. */ response dst=DriverManager component=kl.drivers.KIDF interface=monitor { grant () }

Обработка отправки IPC-ответов, содержащих сведения об ошибках

/* Серверу класса Server запрещено сообщать клиенту * класса Client об ошибках, которые возникают, * когда клиент обращается к серверу, вызывая метод * Ping службы net.Net. */ error src=Server, dst=Client, endpoint=net.Net, method=Ping { deny () }

Обработка обращений процессов к модулю безопасности Kaspersky Security Module

/* Процесс класса Sdcard получит решение * "разрешено" от модуля безопасности Kaspersky Security Module, * вызывая метод Register интерфейса безопасности. * (Используется интерфейс безопасности, заданный * в EDL-описании.) */ security src=Sdcard, method=Register { grant () } /* Процесс класса Sdcard получит решение "запрещено" * от модуля безопасности, вызывая метод Comp.Register * интерфейса безопасности. (Используется интерфейс * безопасности, заданный в CDL-описании.) */ security src=Sdcard, method=Comp.Register { deny () }

Использование match-секций

/* Клиенту класса Client разрешено обращаться к * серверу класса Server, вызывая методы Send * и Receive службы net. */ request src=Client, dst=Server, endpoint=net { match method=Send { grant () } match method=Receive { grant () } } /* Клиенту класса Client разрешено обращаться к * серверу класса Server, вызывая методы Send * и Receive службы sn.Net и методы Write и * Read службы sn.Storage. */ request src=Client, dst=Server { match endpoint=sn.Net { match method=Send { grant () } match method=Receive { grant () } } match endpoint=sn.Storage { match method=Write { grant () } match method=Read { grant () } } }

Установка профилей аудита

/* Установка глобального профиля аудита default * и начального уровня аудита 0 */ audit default = global 0 request src=Client, dst=Server { /* Установка профиля аудита parent на уровне * привязки методов моделей безопасности к * событиям безопасности */ audit parent match endpoint=net.Net, method=Send { /* Установка профиля аудита child на * на уровне match-секции */ audit child grant () } /* В этой match-секции применяется профиль * аудита parent. */ match endpoint=net.Net, method=Receive { grant () } } /* В этой привязке метода модели безопасности * к событию безопасности применяется профиль * аудита global. */ response src=Client, dst=Server { grant () }
В начало
[Topic ssp_descr_psl_syntax_binding_examples]