Найти в Дзене

KasperskyOS - что это и зачем

Как я уже писал в предыдущем посте, теперь мое рабочее место в "Лаборатории Касперского" и я занимаюсь KasperskyOS Community Edition. В этой статье я постараюсь рассказать, что это за продукт, почему он появился и что умеет на сегодняшний день. Небольшая вставка У на вышел бесплатный учебный курс по разработке для KasperskyOS Community Edition на платформе Stepik.org. Если хотите попробовать - вот ссылка. Что такое KasperskyOS Если попробовать дать краткое определение, то #KasperskyOS - это микроядерная частично POSIX-совместимая операционная система. На сегодня - это не операционная система общего назначения, по типу Windows, Debian или Android, а встраиваемая операционная система. Ближайшими аналогами можно назвать VxWorks, Yocto, QNX, seL4 и подобные продукты. В самой операционной системе сейчас нет командного интерпретатора или GUI shell, для изменения ее функционирования необходимо пересобрать запускаемый образ или предусмотреть соответствующие условия запуска/останова процессов.
Оглавление

Как я уже писал в предыдущем посте, теперь мое рабочее место в "Лаборатории Касперского" и я занимаюсь KasperskyOS Community Edition. В этой статье я постараюсь рассказать, что это за продукт, почему он появился и что умеет на сегодняшний день.

Небольшая вставка

У на вышел бесплатный учебный курс по разработке для KasperskyOS Community Edition на платформе Stepik.org. Если хотите попробовать - вот ссылка.

Что такое KasperskyOS

Если попробовать дать краткое определение, то #KasperskyOS - это микроядерная частично POSIX-совместимая операционная система. На сегодня - это не операционная система общего назначения, по типу Windows, Debian или Android, а встраиваемая операционная система. Ближайшими аналогами можно назвать VxWorks, Yocto, QNX, seL4 и подобные продукты.

В самой операционной системе сейчас нет командного интерпретатора или GUI shell, для изменения ее функционирования необходимо пересобрать запускаемый образ или предусмотреть соответствующие условия запуска/останова процессов. С другой стороны, это не означает, что в #kasperskyos невозможно сделать интерфейс - есть вполне полноценный веб-сервер (civetweb готов, nginx и php в работе), на платформах с DIO можно подключить внешний экран, в планах имеется реализация поддержки HDMI с выводом графики.

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

Отдельно необходимо упомянуть о существовании KasperskyOS Community Edition. Это SDK, который можно скачать и собрать свой образ ОС для запуска. Сейчас эти образы можно запускать на Raspberry Pi 4B или на виртуальной машине QEMU. Именно об этом SDK и пойдет речь в моих дальнейших публикациях.

Проект #Kasperskyos был задуман в "Лаборатории" в 2002 году, и первые публичные превью начали появляться примерно в 2015-2017 г. Это достаточно длительный срок, потребовавшийся компании, в том числе, и для разработки научной базы реализации.

SDK KasperskyOS Community Edition в установленном состоянии
SDK KasperskyOS Community Edition в установленном состоянии

Зачем появилась KOSь

Основное предназначение #kasperskyos - это создание систем, в которых стоимость взлома будет превышать стоимость потенциального ущерба. Для этого предусмотрено несколько особенностей архитектуры.

Первая - это микроядро. Из него вынесено всё, что только возможно (максима Лидтке). Как следствие - минимальная поверхность атаки. Объем - около 80 тыс. строк кода (для сравнения в ядре Linux - около 35 млн.строк.)

Вторая - все остальные процессы (драйверы, приложения, компоненты) отделены друг от друга и запускаются как непривилегированный код. Между процессами возможен только один вид коммуникации, IPC.

Третья - Любая такая попытка коммуникации проверяется специальным модулем Kaspersky Security System (KSS) на соответствие заранее описанным политикам безопасности. Если действие явно не разрешено политиками на момент построения системы - оно запрещено.

С учетом достаточно высокой гибкости языка описания политик - это позволяет строить решения, которые будут выполнять заранее заданные цели безопасности независимо собственно от объема написанного кода.

"Легенды и мифы Древней Греции"

Поскольку этот проект не нов, в сети уже есть ряд публикаций, посвященных #kasperskyos . Естественно, проект уже успел обрасти рядом "городских легенд". На некоторые из них я попробую ответить.

Очередная BolgenOS

К сожалению для большинства троллей, нет. Этот проект не основан ни на одном из известных дистрибутивов. Это можно легко проверить, скачав дистрибутив KasperskyOS Community Edition и посмотрев конструкцию SDK. И нескучных обоев просто нет, так как нет GUI.

Попил бюджета

Опять-таки, нет. Во-первых, нет необходимости. Международная компания с оборотом $700M+ в год может позволить себе R&D-расходы без необходимости последующего внешнего отчета об их расходовании. Во-вторых, если вы посмотрите на список публичных проектов на базе #kasperskyos , то госструктур-заказчиков там минимум.

ОС товарища майора. Разработано по заданию ФСБ. Сливает все личные данные.

Это также проверяемо. Ядро крайне компактно и не содержит сетевых драйверов. Сетевые драйвера - пользовательский процесс. Разрешенные взаимодействия процессов (втч с сетью) описываются вами, причем явно. Всё, что явно не разрешено - то запрещено. При желании можно вообще выкинуть сетевые драйвера из образа ОС.

Как считать ядро ОС и модуль безопасности доверенными, если их код не открыт?

Да, на данный момент код KasperskyOS не является открытым, но верификация ПО может выполняться и на основе бинарного кода. Но, для выполнения ряда международных требований планируется организация доступа к полному исходному коду KasperskyOS в рамках программы Kaspersky Global Transparency. Также, готовится программа Bug Bounty, о которой будет объявлено отдельно.

Запуск KasperskyOS в эмуляторе QEMU
Запуск KasperskyOS в эмуляторе QEMU

Хочу попробовать установить

На сегодняшний день есть один основной способ попробовать KasperskyOS - это скачать SDK с официального сайта. Для запуска вам потребуется "живая" или виртуальная (я лично пользуюсь VirtualBox) машина с 64-битной Ubuntu 20.04 LTS.

Первой поддерживаемой целевой платформой сейчас является Raspberry Pi 4B. В рамках SDK поставляется скрипт, который собирает необходимый образ для microSD, с которого потом загружается "малинка". Сейчас еще реализованы не все возможности этой платформы, но работу с файлами, сетью и GPIO уже вполне можно пробовать.

Вторая платформа - это виртуальная машина с ARM для QEMU. Симулятор загружается автоматически после запуска кросс-компилятора. Естественно, в этом варианте у вас не будут работать GPIO.

Для удобства оставляю здесь еще две ссылки. Здесь находится текущая версия документации SDK. А вот здесь - видео с наших мероприятий KasperskyOS Night. Ряд вещей, показанных на этих видео вы можете проделать сами.

Чуть позже я выложу сюда пошаговое видео этого процесса. Также в стадии подготовки находится бесплатный учебный курс на платформе stepik.org.

Что можно еще

Сделана пара видео по SDK.

Первая часть - про подготовку рабочего места.

Вторая часть - про запуск Hello, world.

Вы можете повлиять на разработку этого SDK. Да-да, именно вы. Во многом команда разработки ориентируется на ваши запросы. Для решения этой задачи у нас есть небольшой портал, через него можно проголосовать за желаемые фичи или предложить свои. Или можно все сделать по простому - написать почту на os@kaspersky.ru.