16:00 – 19:00
Открытая обучающая конференция по разработке под KasperskyOS

О конференции

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

Идея создания исходно безопасной ОС родилась в «Лаборатории Касперского» 11 ноября 2002 года. За 20 лет KasperskyOS прошла путь от визионерской идеи к растущей экосистеме решений.

Для  реализации новой парадигмы кибериммунитета нужны новые специалисты, поэтому в этом году конференция сфокусирована на обучении разработке под KasperskyOS.

Главные темы конференции:

  • Кибериммунный подход: как изучить и применять
  • Разработка графической подсистемы и формальная верификация кода в KasperskyOS
  • Доступность популярных open source проектов и библиотек
  • Развитие KasperskyOS Community Edition
  • Обучающие курсы и практики

Присоединяйтесь к онлайн-трансляции, изучайте KasperskyOS и задавайте вопросы.

Давайте строить кибериммунное будущее вместе!

Программа

16:00 – 16:05
Открытие конференции
Вячеслав Борилин, ведущий
Менеджер по развитию технического сообщества, «Лаборатория Касперского»
Сергей Голованов, ведущий
Главный эксперт по информационной безопасности, «Лаборатория Касперского»
16:05 – 16:20
Вступительное слово
Евгений Касперский
Генеральный директор, «Лаборатория Касперского»
16:20 – 17:00
Глобальная жизнь кибериммунитета: почему кибериммунный подход уже захватил мир, и где можно обнаружить его следы
Сергей Рогачев
Руководитель отдела разработки безопасной платформы, «Лаборатория Касперского»
17:00 – 17:30
Нужно ли разработчику быть специалистом по ИБ?
Вячеслав Борилин
Менеджер по развитию технического сообщества, «Лаборатория Касперского»
17:30 – 18:05
Кибериммунные ката: насколько сложно их изучить и применять, если вы еще не пользуетесь KasperskyOS?
Сергей Соболев
Старший архитектор по информационной безопасности, «Лаборатория Касперского»
18:05 – 18:45
KasperskyOS в 3D: Development, Debugging, Drivers на примере графической подсистемы ОС
Игорь Подвойский
Руководитель группы разработки компонент безопасной платформы, «Лаборатория Касперского»
Владислав Фофанов
Разработчик компонент безопасной платформы, «Лаборатория Касперского»
16:00 – 16:05
Открытие конференции
Вячеслав Борилин, ведущий
Менеджер по развитию технического сообщества, «Лаборатория Касперского»
Сергей Голованов, ведущий
Главный эксперт по информационной безопасности, «Лаборатория Касперского»
16:05 – 16:30
«Святой Грааль» формальной верификации: достижения и планы
Васил Дядов
Руководитель группы разработки формальных методов, «Лаборатория Касперского»
16:30 – 16:55
Опыт разработки под KasperskyOS: портирование NodeJS
Вадим Ломовцев
Технический руководитель, «Auriga»
16:55 – 17:20
KasperskyOS и Open Source: какие популярные проекты и библиотеки доступны под KasperskyOS
Александр Мотавин
Руководитель группы разработки, «Лаборатория Касперского»
17:20 – 17:40
Планы и развитие KasperskyOS Community Edition: функциональность, документация, поддерживаемое оборудование
Александр Лифанов
Менеджер по продукту, «Лаборатория Касперского»
17:40 – 18:05
Сообщество разработчиков под KasperskyOS: результаты 2022
Владимир Малыгин
Менеджер по продукту, «Лаборатория Касперского»
18:05 – 18:30
Я бы в кодеры пошел: где изучать разработку под KasperskyOS, опыт прохождения курса
Александр Лифанов
Менеджер по продукту, «Лаборатория Касперского»
18:30 – 18:45
Подведение итогов конференции

Спикеры

Евгений Касперский
Генеральный директор, «Лаборатория Касперского»
Сергей Рогачев
Руководитель отдела разработки безопасной платформы, «Лаборатория Касперского»
Вячеслав Борилин
Менеджер по развитию технического сообщества, «Лаборатория Касперского»
Сергей Соболев
Старший архитектор по информационной безопасности, «Лаборатория Касперского»
Игорь Подвойский
Руководитель группы разработки компонент безопасной платформы, «Лаборатория Касперского»
Владислав Фофанов
Разработчик компонент безопасной платформы, «Лаборатория Касперского»
Васил Дядов
Руководитель группы разработки формальных методов, «Лаборатория Касперского»
Вадим Ломовцев
Технический руководитель, «Auriga»
Александр Мотавин
Руководитель группы разработки, «Лаборатория Касперского»
Александр Лифанов
Менеджер по продукту, «Лаборатория Касперского»
Владимир Малыгин
Менеджер по продукту, «Лаборатория Касперского»

Предварительная регистрация
на KasperskyOS Night 2023

Трансляция конференции будет доступна только зарегистрированным участникам. Присоединяйтесь

Как это было

Фотогалерея KasperskyOS Night 2021 Winter Edition

Стать частью команды KasperskyOS

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

Вопросы и ответы

Что такое KasperskyOS? Это какой-то Linux?

KasperskyOS — микроядерная операционная система, созданная с нуля в «Лаборатории Касперского». Ядро KasperskyOS является собственной разработкой компании и не основывается на каком-либо существующем проекте (Linux или каком-то еще).

Зачем нужна KasperskyOS?

Благодаря принципам, заложенным в ее архитектуру, на основе KasperskyOS можно создавать решения, обладающие кибериммунитетом — встроенной защищенностью от подавляющего большинства видов кибератак. Это важно для цифровых инфраструктур в отраслях, где необходим высокий уровень гарантий безопасности — например, в промышленности, энергетике, государственных учреждениях, транспортной инфраструктуре.
Среди устройств, которые уже работают на KasperskyOS, — тонкий клиент, ключевая часть решения Kaspersky Secure Remote Workspace, и шлюзы для интернета вещей, которые помогают создавать защищенные IoT-сети и проводить цифровую трансформацию промышленности. А в 2020 году решение Kaspersky Automotive Adaptive Platform было интегрировано в автомобильный ЭБУ.

Есть ли специальные требования к железу у KasperskyOS?

Никаких специальных требований к железу по сравнению, например, с Linux нет. MMU обязателен, также мы предпочитаем платформы с IOMMU, так как эта технология позволяет распространить изоляцию и на DMA операции.
Сегодня мы с технологическими партнерами выпускаем решения на определенном железе (на базе x86_64, ARMv6/7/8). Если появится необходимость в других аппаратных платформах, мы будем портировать решения на них.
Поддержка нового оборудования – непростая задача. Мы справляемся своими силами: пишем драйверы и BSP, иногда портируем их из других ОС с открытым исходным кодом. Но иногда такая работа может выполняться и нашими партнерами.

Что такое KasperskyOS Community Edition?

KasperskyOS Community Edition – это комплект для разработки программного обеспечения (далее также SDK), предназначенный для сборки собственного образа KasperskyOS для определенного набора аппаратных платформ. В комплект поставки входят ядро KasperskyOS, инструментарий разработки решений, ряд библиотек, примеры их использования, а также документация.
KasperskyOS Community Edition доступен бесплатно и позволяет ознакомиться с принципами построения решения на базе KasperskyOS, особенностями реализации политик безопасности, написания и отладки собственных пилотных проектов. Лицензия также позволяет модификацию компонентов, поставляемых в виде исходных кодов. В настоящее время KasperskyOS Community Edition позволяет разрабатывать ПО для встраиваемых систем, управляемых по сети ethernet (как через веб-интерфейс, так и по другим протоколам).

Ведется ли обучение программированию под KasperskyOS?

Да, сейчас вы можете пройти курс на образовательной платформе Stepik. Курс посвящен общим понятиям кибербезопасности и кибериммунной разработки, а также дает практические навыки разработки под KasperskyOS.

Не нашли ответ на свой вопрос?

Перейти в FAQ
KasperskyOS
Так в чем же отличие от Fuchsia?

Fuchsia позиционируется как ОС общего назначения. Там, где в ней сталкивается, например, безопасность и производительность побеждает производительность. В отличие от KasperskyOS, Fuchsia имеет большую поверхность атаки – в ней много системных вызовов. Кроме того, Fuchsia не имеет встроенного монитора обращений в стиле FLASK (даже в Linux он есть, см. SELinux, AppArmor и т.п.). Но у KasperskyOS и Fuchsiaесть и общие черты: обе системы микроядерные, обе используют OCAP (современная дискреционная модель распространения прав на ресурсы между субъектами), обе похоже реализуют подход к разделению хранилищ, обе по умолчанию не оперируют понятием «UNIX-пользователь»

Что вы можете сказать о поддержке сторонних приложений? Не будет ли KasperskyOS закрытой системой по типу MacOS?

Во-первых, MacOS не является закрытой системой, это сертифицированный UNIX, наследие NextStep. Для нее можно разрабатывать свои приложения.
Во-вторых, внутри KasperskyOS есть частичная поддержка POSIX, соответственно на нее вполне можно портировать сторонние приложения (за некоторым исключением).

Не кажется ли вам, что установка KasperskyOS поверх Debian вызывает вопрос, является ли вообще KasperskyOS операционной системой?

KasperskyOS Community Edition не устанавливается поверх Debian. Поверх Debian устанавливается только SDK для сборки образа, с которого потом будет загружаться целевая машина.

Может ли KasperskyOS стать полноценной десктопной ОС в качестве альтернативы Windows?

Технически для того чтобы иметь такую богатую функциональность, как у Windows, ОС должна стать динамической. Например, в ней должна быть возможность подключать и отключать оборудование «на лету», устанавливать приложения, запускать и останавливать сервисы. Мы сейчас работаем в этом направлении.

Поделитесь планами, когда предположительно появится смартфон на базе KasperskyOS?

Сегодня мы ведем исследования разработки по адаптации KasperskyOS для работы на профессиональных мобильных устройствах. Это могут быть корпоративные коммуникаторы (например, для ритейла или логистики) или специализированные устройств (в том числе для промышленности и топливно-энергетического сектора). Речь о создании смартфона для массового B2С-сегмента пока не идет.

Кибериммунная KasperskyOS — это хорошо. Будет ли возможность в ближайшей перспективе работать с такими продуктами, как 1С, MS Office и с прочим софтом?

На сегодня с этими пакетами можно работать при помощи тонкого клиента на базе KasperskyOS (программы исполняются на сервере). В перспективе мы надеемся на сотрудничество с авторами исходных программных продуктов с целью портирования их на KasperskyOS.

Насколько быстрее/медленнее KasperskyOS работает по сравнению с другими ОС?

Если коротко, то большая часть проблем, связанных с быстродействием, которые существовали у микроядерных ОС первого поколения, в микроядерных ОС второго поколения решена. Это удалось сделать благодаря переходу от асинхронных IPC к синхронным. KasperskyOS относится ко второму поколению, поэтому ее быстродействие находится на хорошем уровне.

Есть ли класс задач (технических, а не связанных с рынком и маркетингом), под которые вы бы определенно порекомендовали использовать KasperskyOS?

Наша ОС предназначена для использования в интернете вещей и управлении технологическими процессами в отраслях с высокими требованиями к кибербезопасности. Это, например, промышленность, энергетика, государственные учреждения, транспортная инфраструктура. Если говорить про Community Edition, то сейчас она прежде всего направлена на рынок встраиваемых систем (embedded), работающих без GUI (или с использованием локального GUI).

Работает ли KasperskyOS c электронной подписью и как она соотносится со СКЗИ?

На сегодняшний день KasperskyOS сама по себе с электронными подписями не работает и к СКЗИ не относится. В рамках решения KSRW USB-ключи с электронной подписью, вставленные в разъемы тонкого клиента, пробрасываются на сервер и обрабатываются там.

Есть ли у вас опыт использования KasperskyOS в продуктах в составе комплекса АСУ ТП?

Опыта внедрения в продукты в составе АСУ ТП на сегодняшний день нет. Шлюзы интернета вещей (например, KISG 1000) используются для трансфера промышленных данных в ИТ-среду. Эта функциональность в целом отличается от функциональности АСУ ТП, но может дополнять и расширять ее.

Кибериммунитет и безопасность
Одна из киллер-фич KasperskyOS — модуль безопасности. Но модуль безопасности реализован программно и вносит ощутимый overhead. Если ведущие производители процессоров разработают аппаратный модуль безопасности и будут встраивать его в процессоры, не убьет ли это KasperskyOS? Кажется, что можно контролировать взаимодействие процессов аппаратно (например по process id, вызов syscall’ов) по аппаратным инструкциям syscall и т.д. Что вы думаете по этому поводу?

Пока мы не знаем ни одного аппаратного решения, которое реализовывало бы минимум из SELinux. Если бы оно появилось, было бы интересно посмотреть. Плюс стыковка его с ОС должна выполняться с использованием драйвера, который должен быть доверенным и т.п. В случае появления такого, будем учиться его использовать.

Можно ли рассматривать требования ИБ как требования к реактивной программной системе, где окружение воздействует на эту программную систему? Тогда, создавая виртуальное (программное) окружение, можно тестировать такие требования, а также применять формальные методы верификации для реактивных систем.

В зависимости от используемой инфраструктуры (учебной или продуктовой) требования можно формализовать и верифицировать, но для этого нужно использовать разные программные инструменты. С другой стороны, формальная верификация никогда не была простой задачей, поэтому затраты должны оправдывать ожидаемый полезный эффект.

По поводу supply chain attack и использования open source: если не проверять зависимости безопасниками, то можно напороться на закладку, но если проводить доскональную проверку, то версии, которые разработчики смогут использовать, будут отставать от мейнлайна. У вас есть какое-то решение, как найти баланс между всем этим?

Серебряной пули нет — доверенные компоненты необходимо тщательно проверять, там отставание возможно, но и внешних зависимостей должно быть качественно меньше (в идеале вообще без них). А для недоверенной кодовой базы компрометация — нормальное явление. За счет декомпозиции и политик безопасности такие проблемы by design не должны приводить к катастрофическим последствиям, поэтому можно использовать самые свежие версии библиотек, если они проходят функциональные тесты.

Реализация мандатной политики KasperskyOS отличается от Astra Linux SE. Сколько в KasperskyOS уровней защиты?

AstraLinux построена на основе Debian Linux с использованием проприетарного механизма мандатного разграничения доступа и предназначена для использования совместимых приложений. Модель безопасности (в частности, количество уровней доступа) в ней фиксирована и не может быть изменена.

Ядро KasperskyOS не переиспользует код других операционных систем. Модель безопасности (не обязательно мандатная) задается разработчиком при сборке системы и может быть настроена под нужды конкретного проекта.

При каких условиях KasperskyOS может потерять кибериммунитет? И что нужно, чтобы он продолжил развиваться?

KasperskyOS потеряет свойства кибериммунности, если микроядро будет каким-то образом взломано и будет проэксплуатирована имеющаяся в нем уязвимость. Также это может касаться особо доверенных компонентов. Но мы все-таки стараемся минимизировать эту вероятность.
Кроме того, взлом отдельного компонента (например, драйвера сети) приведет к его неработоспособности. Мы работаем в таком направлении, чтобы не только не дать атаке распространиться по системе, но и чтобы исправить поврежденный компонент (например, перезапустить). 
У нас есть хороший антивирусный движок, и его можно использовать, например, для анализа процессов, которые система отметила как поврежденные.

Как долго может быть актуален продукт кибериммунитета перед тем, как найдется способ его обходить? Может быть, статистически существует среднее время жизни подобных продуктов? Конечно, с учетом развития продукта.

Методология универсальна, ее ключевым идеям и технологиям уже не один десяток лет. Поэтому нужно будет поддерживать разработанный по этой методологии продукт (например, из-за устаревания аппаратного обеспечения), а не менять саму методологию.

Подразумевает ли операционная система, обладающая кибериммунитетом, что ее могут использовать некомпетентные пользователи? Нужны ли будут пользователям дополнительные знания для использования ОС, или ее можно будет, грубо говоря, просто установить и пользоваться так, как, например, Windows?

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

Как проверяется полнота политик безопасности?

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

Есть ли защита от сбоя в работе ОС, вызванного каким-то системным элементом, а не просто приложением? Например, чтобы один драйвер, в котором была проэксплуатирована уязвимость, не мог нарушить работу другого драйвера?

Архитектура KasperskyOS предполагает, что драйверы исполняются на пользовательском уровне, а не на уровне ядра. На уровне ядра работают только доверенные компоненты, верифицированные «Лабораторией Касперского». Физическое разграничение процессов пользовательского уровня от доступа друг к другу реализовано с использованием MMU.

Расскажите, как организовано хранение ключей/секретов для асимметричного/симметричного шифрования в KISG 1000? Как защищено хранилище ключей от физического доступа к оборудованию?

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

Финальный аккорд в построении кибериммунитета —что это? Обладающее кибериммунитетом производство, АСУ ТП, умный город, инфраструктура?

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

Как KasperskyOS будет контролировать работу сторонних приложений? В частности, работу трекеров, собирающих данные пользователя?

Работа любых сущностей контролируется на основе политик безопасности. Но важно правильно декомпозировать систему, чтобы трекер не оказался частью доверенного компонента, и у монитора безопасности была возможность контролировать это взаимодействие.

Можно ли скомпрометировать ядро KasperskyOS, и что произойдет, если это случится?

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

Разработка
Насколько удобно писать прикладное ПО для KasperskyOS?

Разработка самого функционального кода практически не отличается от разработки под Linux. Дополнительных усилий требует программирование модуля безопасности. В нашем YouTube-канале есть рассказ про параллельную разработку под Linux и под KasperskyOS.

Как вы решаете проблему микроядерных ОС, состоящую в том, что с ростом количества компонентов сложность их взаимодействия как единого целого вырастает в разы?

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

Можно ли под Windows запустить виртуалку, внутри которой и cкомпилировать KasperskyOS?

Можно, в курсе по разработке под KasperskyOS на Stepik подробно рассказано и показано, как это сделать

Вы придумали DevSecOps? Существует не только методика и технология совместной работы ИБ и программистов, но и требования ее применения!

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

Предполагается ли возможность обновлений приложений или пользовательских драйверов через интернет, допустим из кастомерского репозитория (чтобы приложения/драйверы обновлялись сразу, как только обновления выпущены в прод)?

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

Насколько много изменений приходится делать в open source ПО, чтобы интегрировать его в KasperskyOS, и насколько они фундаментальны?

Объем изменений невелик и в основном находится на стыке прикладного и системного уровня.

Можете сказать примерно, насколько легковесную конфигурацию KasperskyOS можно собрать?

Загрузочный образ примера hello-world для RPi4b занимает 2,4 МБ. Фактически это ядро плюс один printf.

Требуется ли доработка бэкендов компиляторов при портировании языков программирования и их компиляторов на KasperskyOS?

Если кратко — да, требуется.

При портировании драйвера вы можете обнаружить уязвимость в нем и исправить в портированной версии. Предполагается ли в таком случае отправить фикс обратно в open source?

Да, конечно.

А как в KasperskyOS можно использовать нейронные сети, работающие на GPU? Поддерживается ли Torch или TensorFlow? Может быть, в KasperskyOS есть какой-нибудь российский фреймворк для ИИ?

Из известных нам библиотек, связанных с ML, точно под KasperskyOS портирован OpenCV (в версии для CPU). В ближайших планах «Лаборатории Касперского» работы по ML-пакетам для GPU отсутствуют. Если у вас есть какой-то рабочий проект, обратитесь для совместного обсуждения на электронную почту os@kaspersky.com.

Кибериммунитет на основе микроядерной архитектуры предполагает и многопроцессорное аппаратное обеспечение. Насколько многопроцессорное?

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

Есть ли в KasperskyOS поддержка системы AMP (asymmetric multiprocessing)? То есть могу ли я запустить на одном физическом ядре KasperskyOS, а на другом – полностью подчиненную embedded Linux?

Сейчас один из наших R&D-проектов посвящен именно такой реализации realtime-системы, когда одно ядро выполняет полезную работу, а второе занято обеспечением безопасности. Проект в самом разгаре, о результатах говорить пока рано, stay tuned.

А почему affinity на ядрах не поддерживается? Планируется ли это добавить?

Поддержка affinity отсутствует в бесплатной Community Edition v.1.1. В ряде других продуктов на базе KasperskyOS она есть, технических препятствий нет.

Как ОС регламентирует работу приложений, требующих работу на разных физических ядрах процессора?

В текущей версии ядра коммерческой KasperskyOS (не Community Edition) есть возможность закрепить процесс за процессорным ядром с определенным номером (affinity), если это будет задано разработчиком. Если это явно не задано, sсheduler выберет наиболее свободное ядро.

Какие ограничения на аддоны С++ для NodeJS?

В силу особенностей SDK для подключения аддонов на данный момент возможна только статическая линковка.

Было бы очень интересно узнать, для чего используется Haskell.

На данный момент этот язык используется для написания компилятора политик безопасности и генераторов кода.

Что можете сказать про Golang на KasperskyOS? Есть в вашем роадмап этот язык бэкенд-разработки?

Golang и Rust сейчас являются кандидатами к включению в роадмап. Все зависит от вашей поддержки.

Если не секрет, многие ли программисты «Лаборатории» в 2020-2022 начали осваивать Rust?

Rust внутри «Лаборатории Касперского используется, но статистика (сколько человек и в каких объемах) не ведется.

Есть ли у вас планы по созданию bug bounty программ для KasperskyOS?

Сама программа готова, мы занимаемся поиском площадки с целью запустить bug bounty по ядру KasperskyOS в 2023 году.

Обучение
Планируется ли обучение кибериммунитету в вузах, создание совместных лабораторий?

В 2022 году мы начали активную работу с вузами. В МАИ уже обучили более 100 студентов работе с KasperskyOS и элементам кибериммунной разработки. В проведенном там ноябрьском хакатоне приняли участие команды из 9 вузов.

В 2023 году мы планируем расширять сотрудничество с вузами. С двумя вузами мы уже договорились о включении занятий по кибериммунному подходу в учебные программы. Мы открыты для взаимодействия. По данному вопросу пишите на cyberimmunity-edu@kaspersky.com.

Сейчас мы готовим методические материалы для курсов различной продолжительности, глубины и широты охвата. В планах на 2023 год — организовать обучение кибериммунному подходу не менее чем 1500 студентов.

Есть ли учебные версии KasperskyOS для вуза?

Нет, отдельных версий для вузов нет. При взаимодействии с учебными заведениями мы используем KasperskyOS Community Edition.

Графическая подсистема
Будет ли поддержка сторонних графических оболочек?

У нас получалось запустить KDE 5 Plasma пару лет назад, но проект остановился на этапе исследования. На текущий момент поддержка сторонних DE не планируется.

Возможность чтения физических адресов памяти — разве это не способ обхода
кибериммунитета?

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

С каким максимальным разрешением сейчас работает графика?

Тестовые бенчмарки (включая kmscube) запускали максимально в 1920х1080. Большее разрешение не тестировали, на данном этапе в этом нет необходимости.

На каком железе вы запустили Quake 3?

На процессоре Intel, но в целом для virtio-gpu это неважно. Можно запустить хоть на арме, хоть на любой другой архитектуре. На самом деле мы также запускали Q3 нативно на нашем i915 драйвере (intel UHD 600 GPU) и на i.MX6 (vivante GPU). Производительность там еще больше, но virtio-gpu — это, в первую очередь, про отладку и тестирование.

А Quake Champions запустить можно?

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

Формальная верификация
Какие языки используются для формальной спецификации требований?

В первую очередь TLA+, Event-B, Alloy.

Формулы для model checking задаются на LTL?

Если вопрос про проверяемые свойства для спецификаций на TLA+, то да, можно сказать, на LTL (с учетом нюансов TLA+, таких как stuttering и др.). Другая часть свойств (инварианты) — просто логические предикаты над состояниями, без темпоральных модальностей.

Насколько большое число состояний возникает в model checking?

Для TLC, при проверке очередей, пространства состояний были десятки-сотни миллионов, диаметр был под несколько сотен (примерно до 500). Довольно часто мы упирались в память на машине (128 ГБ). В некоторых случаях решали через проекции (view), иногда помогал Apalache. Сейчас мы собираем небольшой кластер для model-checking (в первую очередь TLC). GPU (swarm model-checking) пока не использовали.

Вы используете много разных формализмов. Какой из них вы используете для формализации требований на естественном языке, и почему именно его?

На данный момент мы формализуем не так много требований, как хотелось бы. Там, где формализуем, используем чаще всего TLA+. Почему? Наиболее удобно во многих случаях для спецификации и верификации поведенческих свойств. На втором месте Alloy. Alloy и TLA+ оказались очень удобной связкой на практике. Alloy — структурные свойства и структурная корректность, TLA+ — динамические свойства и корректность поведения.

Инварианты циклов и пред- и постусловия функций в дедуктивной верификации задаются вручную?

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

Каким образом вы понимаете, что корректно выполнили формализацию требований на естественном языке?

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

Является ли компилятор системы безопасности доверенным, верифицированным?

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

Какие средства динамического анализа используются в KasperskyOS, и есть ли собственные разработки в этой сфере?

Вопрос не совсем из области формальных методов, но близко. Если имеются в виду санитайзеры и подобное — то да, используются те, что есть в Сlang/GCC. Кроме тех, что неприменимы для ядра в силу различных причин, например TSAN. Если речь про автоматический поиск разных инвариантов времени выполнения и подобное — то пока нет, такое мы не используем.

Open source
KasperskyOS — это проект open source? И каков уровень его «песочности»? Ведь *nix используют в первую очередь потому, что он прозрачен и его можно пересобрать под себя, под любые нужды пользователя.

KasperskyOS — это проприетарная операционная система, и планов по превращению ее в проект в рамках open source лицензирования нет.

Если брать Community Edition — ядро и ряд критичных компонентов поставляются в скомпилированном виде, менее важные поставляются в исходных кодах. Состав образа ОС (помимо обязательной части: ядра, модуля безопасности) определяется пользователем при помощи CMake-описаний.

Вы планируете размещать где-то source code SDK? Чтобы была возможность все скомпилить from source?

Мы движемся в этом направлении. В отсутствие популярных отечественных площадок для размещения source code сейчас мы ориентируемся на GitHub.

Можно ли где-то найти роадмап проектов open source, которые вы хотите поддержать?

На сегодняшний день такого роадмапа нет. Список пакетов open source к портированию сейчас определяется исходя из запросов наших партнеров и собственных потребностей команды. Если у вас есть какие-то собственные идеи, вы можете предложить их на нашем форуме https://kas.pr/kosforum

Железо
Вы будете поддерживать именно конкретные одноплатники (Orange Pi 4), или компоненты их плат (RK3399, USB dwc, Ethernet Realtek PHY и проч.)? Ведь Radxa Rock Pi 4 сделан на том же SoC. Возможна ли поддержка нескольких похожих устройств?

В рамках реализации поддержки платформы, естественно, пишутся или портируются необходимые драйвера на компоненты. Соответственно, на аналогичных платах компоненты подхватятся автоматом. Если у вас есть какой-то конкретный проект, связанный с этой платой, обратитесь по адресу os@kaspersky.com для совместного анализа недостающих компонентов.

В каких продакшн проектах/задачах/системах может быть использована малинка с установленной KasperskyOS?

Эта плата пригодна для реализации достаточно широкого спектра задач, связанных со вводом/выводом цифровых сигналов и обменом данными по сети, реализации каких-то функций управления с веб-интерфейсом. Все зависит от вашей фантазии!

Ведется ли коммуникация с отечественными разработчиками плат ARM? Repka, к примеру? Сможем ли мы в будущем увидеть отечественное устройство, полностью заточенное под KasperskyOS?

Про проект Repka Pi мы в курсе, однако на начало декабря 2022 г. эта плата публично не доступна. Безусловно, мы готовы сотрудничать с отечественными поставщиками устройств и плат на обоюдно выгодных условиях.

Каковы перспективы разблокировки USB-портов в KasperskyOS Community Edition?

Поддержка устройств USB HID на портах USB 3.0 появилась в KasperskyOS CE 1.1, релиз которой состоялся в октябре 2022 года.

С какими устройствами уже умеет работать KasperskyOS CE? Могут ли сторонние разработчики добавлять драйверы для новых устройств?

Обратиться к устройству через аппаратные ресурсы из прикладной программы можно уже сейчас (например, https://support.kaspersky.ru/help/KCE/1.1/ru-RU/libkos_ports.htm), однако для написания полноценного драйвера необходимы манипуляции с ядром. В 2023 году мы планируем выпуск специального фреймворка для упрощения разработки драйверов и соответствующего учебного курса.

Не нашли ответ на свой вопрос?
Задать вопрос