Микроядро KasperskyOS

Основа кибериммунной операционной системы будущего
Микроядро

Ядро операционной системы — ее ключевой архитектурный компонент, отвечающий за связь между программным (например, пользовательскими приложениями) и аппаратным обеспечением (памятью, процессорным временем и прочими ресурсами).

Уже много лет ведутся споры вокруг подходов к разработке ядер ОС. Разные их типы обладают своими преимуществами и недостатками, своими оптимальными сферами применениями и решаемыми задачами. Поэтому при выборе ядерной архитектуры операционной системы необходимо опираться на то, для чего планируется ее использовать и какие требования к информационной безопасности к ней предъявляются.

Абсолютное большинство операционных систем имеют монолитные (все функции ОС выполняются в едином пространстве), микро- (ядро выполняет лишь минимальный набор функций, а большая часть сервисов выделены в отдельные сущности) или гибридные ядра, сочетающие в себе элементы первых и вторых.

Возможности монолитных ядер

В основе многих самых популярных в мире ОС (среди них Windows 9x, FreeBSD, Linux, Android и др.) лежат монолитные ядра. Разработчикам и пользователям, как правило, сравнительно просто взаимодействовать с операционными системами, построенными на такой архитектуре. Ее применение позволяет достичь многообразия интерфейсов взаимодействия с сервисами и отсутствия ограничений по совместимым устройствам и приложениям.

Оборотная сторона универсальности – сложности с обеспечением надежности и безопасности. Считается доказанным, что число ошибок в коде, в том числе ведущих к возникновению уязвимостей, растет с увеличением размера программных модулей, из которых строится ядро. На состояние защищенности также оказывает влияние многообразие и общее количество их интерфейсов: чем оно больше, тем шире поверхность атаки.

Большая поверхность атаки обусловлена и тем, в одном адресном пространстве монолитного ядра работает сразу множество разнородных сервисов (реализация протоколов, файловые системы, драйверы устройств и т.д.). Сбой любого из этих сервисов ведет к «синему экрану смерти» — отказу всей системы.

Гибридные ядра и их ограничения

ОС с гибридными ядрами тоже часто выбирают для пользовательских IT-систем. Такая архитектура сочетает в себе элементы монолитной и микроядерной. Это означает, что большая часть функций системы выполняется в монолитном ядре, но при этом, как в микроядерных ОС, некоторые из этих функций исполняются как отдельные программы в своих собственных адресных пространствах и взаимодействуют друг с другом путем передачи сообщений, а значительная часть системных служб и драйверов работает в виде процессов пользовательского режима.

К ОС с гибридными ядрами относятся, например, iOS, MacOS X, Windows NT, DragonFly BSD. Гибридная архитектура позволяет операционной системе использовать преимущества микроядерной, сохраняя по возможности хорошо отлаженный код монолитного ядра. Но в таких системах остается нерешенной проблема информационной безопасности, связанная с увеличенной поверхностью атаки (присущей ОС с монолитным ядром). Из-за этого кодовая база ядра не может считаться доверенной, а значит, нельзя гарантировать отсутствие в ней уязвимостей. К тому же, несмотря на применение элементов микроядерной архитектуры, для гибридной ОС невозможно добиться высокого уровня защищенности из-за отсутствия полной изоляции пользовательских процессов от системных.

Микроядро — основа надежной ОС

Общее свойство микроядер — компактность. По отношению к ПО это означает, что его функции и архитектура могут быть охвачены памятью человека и не требуют обращения к техническим руководствам для общего понимания.

Несмотря на популярность систем с монолитными и гибридными ядрами, именно микроядерные архитектуры лучше всего подходят для создания операционных систем с повышенными требованиями к надежности и безопасности.

Микроядра предоставляют минимальный набор элементарных функций управления процессами, а также абстракций для работы с оборудованием. Большая часть оставшейся работы с аппаратно-программными ресурсами осуществляется с помощью специальных процессов, не работающих в адресном пространстве ядра. Это позволяет существенно сократить поверхность атаки. К тому же, чем меньше кодовая база ядра ОС, тем легче ее контролировать и проверять на наличие ошибок (как вручную, так и автоматизированными средствами). При этом обеспечивать оптимальный объем кода каждого программного модуля недостаточно: нужно также сохранять невысокую сложность интерфейсов между модулями.

Помимо выполнения функций традиционных микроядер, микроядро KasperskyOS также реализует межпроцессные взаимодействия (IPC) в условиях разделения среды операционной системы на домены (процессы). Поток данных между ними контролируется с помощью подсистемы безопасности Kaspersky Security System.

KasperskyOS сочетает в себе все преимущества современной микроядерной операционной системы, создавая при этом оптимизированную среду для вычисления вердиктов безопасности всех операций системы с помощью Kaspersky Security System:
  1. Компактность
    В составе микроядра KasperskyOS всего несколько десятков тысяч строк кода, организованных в модули оптимального размера. Этого достаточно для обеспечения корректной работы механизмов ядра и контроля отсутствия уязвимостей и недокументированных функций
  2. Унифицированный механизм IPC
    Через микроядро KasperskyOS проходят все межпроцессные взаимодействия, для которых возможен лишь один формат — обмен сообщениями. Это обеспечивает синхронизированную и прозрачную передачу данных
  3. Несколько уровней надежности
    Следя за корректностью «общения» компонентов KasperskyOS друг с другом, микроядро работает в паре с Kaspersky Security System, чтобы блокировать потенциально опасные действия до их выполнения
  4. Разделение доменов
    Наше микроядро гарантирует разделение доменов безопасности и изоляцию механизмов безопасности от функциональных компонентов — события в одних не смогут влиять на другие
  5. Отказ по умолчанию
    Невозможность несанкционированного или несоответствующего политикам безопасности межпроцессного взаимодействия. Запрещено все, что не разрешено (Default Deny)

Наше микроядро не собирает и не передает данные (это легко проверить, просмотрев его исходный код). Все прочие компоненты — драйверы, системные сервисы, приложения и т.д. — вынесены за пределы ядра и изолированы, а их поведение жёстко ограничено политиками безопасности. Политики безопасности задаются на языке высокого уровня в специально предназначенном для этого компоненте, независимо от функциональной логики решения. Даже если один из компонентов системы попытается сохранить какие-либо данные и куда-то их отправить, он не сможет этого сделать, если такая возможность не прописана в определенной для данного решения политике безопасности. Такой подход позволяет легко проводить проверку безопасности.

Материалы о микроядерной архитектуре

KasperskyOS

Кибериммунная операционная система будущего

Из чего строится безопасность

О технологиях в составе KasperskyOS