Изоляция — это краеугольный камень безопасной информационной системы. Однако для практического применения компоненты системы должны взаимодействовать между собой. А для того, чтобы подстраивать решения под конкретные задачи, будь то работа IoT-шлюза или ядерного реактора, необходима возможность описывать различные политики безопасности.
Эти и другие задачи безопасности успешно решаются в KasperskyOS с помощью подсистемы Kaspersky Security System. Через этот модуль проходят все межпроцессные коммуникации (IPC, Inter Process Communications). Он проверяет, соответствует ли каждое взаимодействие заданным политикам безопасности, и в случае несоответствия — запрещает.
Даже при взломе одного из компонентов Kaspersky Security System сведет к нулю или минимизирует возможный ущерб. Благодаря этому система становится кибериммунной.
Архитектура Kaspersky Security System основывается на таких классических концепциях информационной безопасности, как архитектура MILS (Multiple Independent Levels of Security) и FLASK (FLux Advanced Security Kernel).
Схема взаимодействия компонентов в KasperskyOS
Любое взаимодействие, которое не разрешено явно политикой безопасности, будет запрещено. Этот принцип, Default Deny, лежит в основе всех безопасных решений на базе KasperskyOS.
Разработчик решения может комбинировать множество разных моделей, чтобы построить политику, которая наиболее точно соответствует поставленным целям безопасности. Язык PSL позволяет описывать политику безопасности в терминах самого решения.
Разработчику не придется писать код, реализующий политику безопасности, — он генерируется специальным компилятором на основе PSL-описания. Коду, сгенерированному на основе хорошо изученных моделей, можно доверять.
Реализация политик безопасности отделена от кода приложений. Благодаря этому их можно менять независимо друг от друга, что значительно облегчает труд разработчиков приложений и архитекторов решений.
Подсистема Kaspersky Security System – это монитор обращений, которому ядро передает каждое IPC-сообщение, чтобы проверить, соответствует ли оно заданной политике безопасности. Более того, сущности могут напрямую обращаться к Kaspersky Security System, используя специальный интерфейс. Это открывает дополнительные возможности для архитекторов безопасных решений.
Чтобы упростить конструирование политик, мы разработали специальный язык описания политик — Policy Specification Language (PSL). Синтаксис PSL позволяет комбинировать в одной политике разнообразные модели безопасности, включая конечные и временные автоматы, TE (Type Enforcement), модели ролевого доступа (RBAC) и многие другие. Также можно разрабатывать собственные классы политик. При этом язык PSL достаточно выразительный — описание строится в терминах самой задачи.
Policy Specification Language избавляет разработчика от необходимости писать реализацию политики безопасности или самостоятельно конфигурировать Kaspersky Security System. Достаточно лишь запустить специальный компилятор, чтобы получить из PSL-описания код Kaspersky Security System, оптимизированный под выбранную задачу.