Главное событие для всех, кто интересуется кибериммунной разработкой — подходом к созданию IT-систем с «врожденной» защитой от большинства типов киберугроз. С 2020 года мы встречаемся в онлайн-формате с разработчиками, Q&A-инженерами, аналитиками, ИБ-энтузиастами, чтобы совместно усилить компетенции IT-сообщества в построении решений, защищенных на уровне архитектуры.
Идея кибериммунитета зародилась 11 ноября 2002 года. За 20 лет вокруг нее сформировалась растущая экосистема решений, а также развитый технологический стек, методология и паттерны проектирования, которые могут быть полезны разработчикам различного профиля. В этом году мы уделяем особое внимание используемым языкам программирования и готовым отраслевым решениям.
Ждем всех, кто заинтересован в безопасной разработке и построении кибериммунного будущего!
• KasperskyOS Night 2022
• KasperskyOS Night 2021 Winter Edition
• KasperskyOS Night 2021 Summer Edition
• KasperskyOS Night 2020 Winter Edition
KasperskyOS — микроядерная операционная система, созданная с нуля в «Лаборатории Касперского». Ядро KasperskyOS является собственной разработкой компании и не основывается на каком-либо существующем проекте (Linux или каком-то еще).
Благодаря принципам, заложенным в ее архитектуру, на основе KasperskyOS можно создавать решения, обладающие кибериммунитетом — встроенной защищенностью от подавляющего большинства видов кибератак. Это важно для цифровых инфраструктур в отраслях, где необходим высокий уровень гарантий безопасности — например, в промышленности, энергетике, государственных учреждениях, транспортной инфраструктуре.
Среди устройств, которые уже работают на KasperskyOS, — тонкий клиент, ключевая часть решения Kaspersky Secure Remote Workspace, и шлюзы для интернета вещей, которые помогают создавать защищенные IoT-сети и проводить цифровую трансформацию промышленности. А в 2020 году решение Kaspersky Automotive Adaptive Platform было интегрировано в автомобильный ЭБУ.
Никаких специальных требований к железу по сравнению, например, с Linux нет. MMU обязателен, также мы предпочитаем платформы с IOMMU, так как эта технология позволяет распространить изоляцию и на DMA операции.
Сегодня мы с технологическими партнерами выпускаем решения на определенном железе (на базе x86_64, ARMv6/7/8). Если появится необходимость в других аппаратных платформах, мы будем портировать решения на них.
Поддержка нового оборудования – непростая задача. Мы справляемся своими силами: пишем драйверы и BSP, иногда портируем их из других ОС с открытым исходным кодом. Но иногда такая работа может выполняться и нашими партнерами.
KasperskyOS Community Edition – это комплект для разработки программного обеспечения (далее также SDK), предназначенный для сборки собственного образа KasperskyOS для определенного набора аппаратных платформ. В комплект поставки входят ядро KasperskyOS, инструментарий разработки решений, ряд библиотек, примеры их использования, а также документация.
KasperskyOS Community Edition доступен бесплатно и позволяет ознакомиться с принципами построения решения на базе KasperskyOS, особенностями реализации политик безопасности, написания и отладки собственных пилотных проектов. Лицензия также позволяет модификацию компонентов, поставляемых в виде исходных кодов. В настоящее время KasperskyOS Community Edition позволяет разрабатывать ПО для встраиваемых систем, управляемых по сети ethernet (как через веб-интерфейс, так и по другим протоколам).
Да, сейчас вы можете пройти курс на образовательной платформе Stepik. Курс посвящен общим понятиям кибербезопасности и кибериммунной разработки, а также дает практические навыки разработки под KasperskyOS.
Кибериммунитет — это, прежде всего, подход, целью которого является создание системы, безопасной в силу дизайна (Secure by Design). Подобные системы разительно отличаются от обычных систем в защищенном исполнении тем, что они обладают минимальной поверхностью атаки не за счет использования наложенных средств защиты, а за счет правильно спроектированной архитектуры. Кибериммунные системы более устойчивы к взлому (компрометации), а в случае успешной атаки значительно усложняют ее распространение.
В кибериммунном подходе мы, в первую очередь, фокусируемся на сохранении целостности системы. Ведь если компоненты, осуществляющие разграничение доступа, будут взломаны, безопасность всей системы окажется под угрозой. А кода без багов, как мы знаем, пока не существует в природе.
Для каждого конкретного продукта на базе KasperskyOS мы формулируем цели и предположения безопасности: какие функции безопасности системы должны выполняться всегда, что бы ни произошло, при соблюдении ряда предположений.
Архитектор решения определяет ilities, которые необходимо поддержать на уровне решения, например, конфиденциальность (confidentiality), доступность (availability) и другие. Для каждого подобного свойства должен быть системный компонент, который его обеспечивает, — уже реализованный в KasperskyOS (security pattern) или требующий реализации.
На основе целей безопасности и понимания необходимых ilities, проектируется архитектура решения: производится декомпозиция системы на изолированные аппаратными средствами компоненты, устанавливается набор типизированных связей между ними. На этом этапе упор делается на целостности: какой сорт данных может передаваться между теми или иными компонентами, насколько эти данные целостны, как может повлиять их злонамеренное изменение на возможность эксплуатации того или иного компонента, какие компоненты оказывают прямое влияние на функции безопасности системы.
В результате мы получаем архитектуру, которая значительно затрудняет распространение атаки в системе и минимизирует вероятность взлома доверенных компонентов (тех, от которых зависит безопасность, реализация ilities).
Архитектура системы отражается в политике безопасности для монитора безопасности, исполняющегося в ядре. Он следит, чтобы инварианты архитектуры не нарушались: сообщения шли только по четко заданным каналам связи, структура сообщений не нарушалась, а в полях сообщений лежали верные с точки зрения архитектора системы данные.
Таким образом, кибериммунитет подразумевает определенную культуру и подход к разработке и построению архитектуры, а также технологическую базу — операционную систему KasperskyOS.
Методология универсальна, ее ключевым идеям и технологиям уже не один десяток лет. Поэтому нужно будет поддерживать разработанный по этой методологии продукт (например, из-за устаревания аппаратного обеспечения), а не менять саму методологию.
Все упомянутые вами направления выглядят релевантно. На сегодняшнем горизонте один из сложных технических вызовов — это создать обладающую кибериммунитетом систему с богатой функциональностью. Например, специализированное мобильное устройство. Сложность в том, что для этого нужно сделать систему более динамической, например иметь возможность подключать и отключать оборудование «на лету». Значимость информационных технологий для жизни человечества такова, что потребность в доверенной основе для любого применения (в быту, в индустриальной среде, на транспорте и далее везде) очевидна. Так что мы уверены, что со временем кибериммунитет будет проникать во все большее количество сфер и индустрий.
Стоит разделять кибериммунную систему и систему, построенную на платформе KasperskyOS. KasperskyOS — инструмент для создания кибериммунных решений, при этом создание решения на базе KasperskyOS само по себе не является гарантией того, что это решение кибериммунно.
С точки зрения пользовательского опыта решение, построенное на базе KasperskyOS, принципиально никак не отличается от решения, построенного на базе другой ОС, – тот же графический интерфейс. Например, UI тонкого клиента на KasperskyOS имеет привычный для всех вид.
KasperskyOS потеряет свойства кибериммунности, если микроядро будет каким-то образом взломано и будет проэксплуатирована имеющаяся в нем уязвимость. Также это может касаться особо доверенных компонентов. Но мы все-таки стараемся минимизировать эту вероятность.
Кроме того, взлом отдельного компонента (например, драйвера сети) приведет к его неработоспособности. Мы работаем в таком направлении, чтобы не только не дать атаке распространиться по системе, но и чтобы исправить поврежденный компонент (например, перезапустить).
У нас есть хороший антивирусный движок, и его можно использовать, например, для анализа процессов, которые система отметила как поврежденные.
Если микроядро будет каким-то образом скомпрометировано, безопасность системы будет нарушена. То же относится к особо доверенным компонентам. Но мы минимизируем вероятность их компрометации с помощью всех механизмов, которые закладываем в KasperskyOS, и с помощью кибериммунного подхода.
Технически для того чтобы иметь такую богатую функциональность, как у Windows, ОС должна стать динамической. Например, в ней должна быть возможность подключать и отключать оборудование «на лету», устанавливать приложения, запускать и останавливать сервисы. Мы сейчас работаем в этом направлении.
Если коротко, то большая часть проблем, связанных с быстродействием, которые существовали у микроядерных ОС первого поколения, в микроядерных ОС второго поколения решена. Это удалось сделать благодаря переходу от асинхронных IPC к синхронным. KasperskyOS относится ко второму поколению, поэтому ее быстродействие находится на хорошем уровне.
Собственный код KasperskyOS постоянно проходит различное тестирование, включая фаззинг. Для ряда наиболее критичных компонентов выполняется формальная верификация и проверка моделей безопасности. Код подвергается статическому и динамическому анализу. Регулярно проводятся пентесты. Запланировано проведение Bug Bounty.
Во-первых, MacOS не является закрытой системой, это сертифицированный UNIX, наследие NextStep. Для нее можно разрабатывать свои приложения.
Во-вторых, внутри KasperskyOS есть частичная поддержка POSIX, соответственно на нее вполне можно портировать сторонние приложения (за некоторым исключением).
На сегодня с этими пакетами можно работать при помощи тонкого клиента на базе KasperskyOS (программы исполняются на сервере). В перспективе мы надеемся на сотрудничество с авторами исходных программных продуктов с целью портирования их на KasperskyOS.
Сегодня мы ведем исследования разработки по адаптации KasperskyOS для работы на профессиональных мобильных устройствах. Это могут быть корпоративные коммуникаторы (например, для ритейла или логистики) или специализированные устройств (в том числе для промышленности и топливно-энергетического сектора). Речь о создании смартфона для массового B2С-сегмента пока не идет.
Наша ОС предназначена для использования в интернете вещей и управлении технологическими процессами в отраслях с высокими требованиями к кибербезопасности. Это, например, промышленность, энергетика, государственные учреждения, транспортная инфраструктура. Если говорить про Community Edition, то сейчас она прежде всего направлена на рынок встраиваемых систем (embedded), работающих без GUI (или с использованием локального GUI).
Разработка самого функционального кода практически не отличается от разработки под Linux. Дополнительных усилий требует программирование модуля безопасности. В нашем YouTube-канале есть рассказ про параллельную разработку под Linux и под KasperskyOS.
Такая проблема действительно есть. Если рассматривать каждый процесс как отдельный субъект, сложность возможных схем взаимодействия между ними оказывается колоссальной. Но со времен древних греков существует такой инструмент, как абстракция. От политик, фокусирующихся на конкретных сообщениях и конкретных субъектах, необходимо переходить к субъектно-объектным взаимодействиям и группировке объектов и субъектов по некоторым признакам. Сейчас мы сами сталкиваемся с необходимостью такого смещения фокуса, ведь отслеживание связей всех со всеми отлично работало в простых встраиваемых решениях, совсем другое дело — системы с возможностью установки сторонних приложений, графическим интерфейсом и прочими особенностями систем общего назначения.
Можно, в курсе по разработке под KasperskyOS на Stepik подробно рассказано и показано, как это сделать
На сегодняшний день такая возможность может быть реализована самостоятельно разработчиками прикладных решений. На уровне SDK она отсутствует. Тем не менее механизм распространения обновлений системных и прикладных компонентов KasperskyOS через доверенный репозиторий находится в разработке.
Объем изменений невелик и в основном находится на стыке прикладного и системного уровня.
Загрузочный образ примера hello-world для RPi4b занимает 2,4 МБ. Фактически это ядро плюс один printf.
Из известных нам библиотек, связанных с ML, точно под KasperskyOS портирован OpenCV (в версии для CPU). В ближайших планах «Лаборатории Касперского» работы по ML-пакетам для GPU отсутствуют. Если у вас есть какой-то рабочий проект, обратитесь для совместного обсуждения на электронную почту os@kaspersky.com.
Наше ядро поддерживает SMP. Например, сейчас тонкий клиент работает на четырех ядрах. Но в коде нет ограничения на количество ядер.
Сейчас один из наших R&D-проектов посвящен именно такой реализации realtime-системы, когда одно ядро выполняет полезную работу, а второе занято обеспечением безопасности. Проект в самом разгаре, о результатах говорить пока рано, stay tuned.
В текущей версии ядра коммерческой KasperskyOS (не Community Edition) есть возможность закрепить процесс за процессорным ядром с определенным номером (affinity), если это будет задано разработчиком. Если это явно не задано, sсheduler выберет наиболее свободное ядро.
Golang и Rust сейчас являются кандидатами к включению в роадмап. Все зависит от вашей поддержки.
Rust внутри «Лаборатории Касперского используется, но статистика (сколько человек и в каких объемах) не ведется.
Сама программа готова, мы занимаемся поиском площадки с целью запустить bug bounty по ядру KasperskyOS в 2023 году.
В 2022 году мы начали активную работу с вузами. В МАИ уже обучили более 100 студентов работе с KasperskyOS и элементам кибериммунной разработки. В проведенном там ноябрьском хакатоне приняли участие команды из 9 вузов.
В 2023 году мы планируем расширять сотрудничество с вузами. С двумя вузами мы уже договорились о включении занятий по кибериммунному подходу в учебные программы. Мы открыты для взаимодействия. По данному вопросу пишите на cyberimmunity-edu@kaspersky.com.
Сейчас мы готовим методические материалы для курсов различной продолжительности, глубины и широты охвата. В планах на 2023 год — организовать обучение кибериммунному подходу не менее чем 1500 студентов.
Нет, отдельных версий для вузов нет. При взаимодействии с учебными заведениями мы используем KasperskyOS Community Edition.
Тестовые бенчмарки (включая kmscube) запускали максимально в 1920х1080. Большее разрешение не тестировали, на данном этапе в этом нет необходимости.
KasperskyOS — это проприетарная операционная система, и планов по превращению ее в проект в рамках open source лицензирования нет.
Если брать Community Edition — ядро и ряд критичных компонентов поставляются в скомпилированном виде, менее важные поставляются в исходных кодах. Состав образа ОС (помимо обязательной части: ядра, модуля безопасности) определяется пользователем при помощи CMake-описаний.
Мы движемся в этом направлении. В отсутствие популярных отечественных площадок для размещения source code сейчас мы ориентируемся на GitHub.
На сегодняшний день такого роадмапа нет. Список пакетов open source к портированию сейчас определяется исходя из запросов наших партнеров и собственных потребностей команды. Если у вас есть какие-то собственные идеи, вы можете предложить их на нашем форуме https://kas.pr/kosforum
В рамках реализации поддержки платформы, естественно, пишутся или портируются необходимые драйвера на компоненты. Соответственно, на аналогичных платах компоненты подхватятся автоматом. Если у вас есть какой-то конкретный проект, связанный с этой платой, обратитесь по адресу os@kaspersky.com для совместного анализа недостающих компонентов.
Эта плата пригодна для реализации достаточно широкого спектра задач, связанных со вводом/выводом цифровых сигналов и обменом данными по сети, реализации каких-то функций управления с веб-интерфейсом. Все зависит от вашей фантазии!
Про проект Repka Pi мы в курсе, однако на начало декабря 2022 г. эта плата публично не доступна. Безусловно, мы готовы сотрудничать с отечественными поставщиками устройств и плат на обоюдно выгодных условиях.
Поддержка устройств USB HID на портах USB 3.0 появилась в KasperskyOS CE 1.1, релиз которой состоялся в октябре 2022 года.
Обратиться к устройству через аппаратные ресурсы из прикладной программы можно уже сейчас (например, https://support.kaspersky.ru/help/KCE/1.1/ru-RU/libkos_ports.htm), однако для написания полноценного драйвера необходимы манипуляции с ядром. В 2023 году мы планируем выпуск специального фреймворка для упрощения разработки драйверов и соответствующего учебного курса.