Перед тем как рассматривать примеры, нужно ознакомиться со сведениями о модели безопасности 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 ()
}
В начало