Comments 54
По большому счёту это прибитые гвоздями политики — либо используешь ту модель, что заложена авторами, либо идёшь на… поиски другой ОС, где заложена новая модель.
В коси с KSS политики можно комбинировать и даже доставлять свои, если задача требует чего-то уникального. Не надо выбирать между ocap и te. Можно поставить обе и обмазать сверху ещё темпоральной логикой.
Проблема в том, что разные по своей сущности модели плохо совмещаются. Если есть одна модель с тремя настройками, то это одно количество состояний. А если три модели с тремя настройками, то это сразу совсем другой порядок сложности.
Почти все "секурные" ОС выбрали одну модель и строго ей придерживаются. Что там в линуксе сейчас творится когда надо пару LSM и ещё BPF сверху даже думать не хочется...
Ocap это object capabilities.
Несколько реализовано, а другие не реализованы. Захочется что-то оригинальное сделать и сиди возись с ядром. А оригинальное хочется очень быстро. Потому что не всё выражается через роли и права.
KSS тут предлагает базовый "клей" чтобы разные модели держали свои руки на виду и не спотыкались друг об друга. В конфигурации монитора явно расписаны взаимодействия, после чего провайдерам политик предлагается сгенерить код, которому им будут с ложечки скармливать сообщения на проверку.
В результате для добавления новой модели надо задекларировать типы конфига и методов и сделать провайдер, который получит набор слотов для заполнения кусочками кода. При этом полученный монитор может описывать что угодно — от состояния игры до цифрового двойника химзавода.
Спасибо за подробный материал на публичной площадке вместо слухов и презентаций.
- Как понимаю, на базе микроядра будет несколько вариантов ОС. Если брать вариант общего назначения (не real-time, не для МК), насколько там продвинутый менеджер памяти, подсистема I/O, сетевой стек?
- В решениях, под которые заточена эта ОС, драйверам естественно работать с оборудованием напрямую, чтобы достичь real-time (например, automotive) или просто большой скорости (например, сетевой шлюз). Как "кибериммунитет" и message-passing модель уживаются с возможностью DMA?
- Очевидно, компилятор системы безопасности сам должен быть доверенным. Решено ли это технически?
- Почему политики безопасности компилируются именно в C, а не в какой-нибудь EBPF (условно), который специально сделан простым для удобства верификации?
- Какие инструменты применяете для Event-B? Как обеспечиваете или проверяете соответствие модели и кода?
26 единиц продвинутости (=
С помощью IOMMU и такой-то матери. КОС умеет в некоторые примитивы для разграничения доступа в разные моменты времени и передачи прав.
"Доверенное" это то, чему мы доверяем потому что не можем проверить. Если вопрос был про верификацию, то пока не решено. С другой стороны на сишный выхлоп можно натравить промышленные статические анализаторы и чекеры всех мастей, так что нельзя сказать, что результат запускается совсем вслепую.
Потому что когда код понесут на сертификацию товарищи майоры будут либо 1) читать его глазами, либо 2) попросят сертификаты на все шаги трансляции. Так что сишка как первоначальное приближение. А дальше ползти в сторону большого количества промежуточных шагов с относительной простой верификацией а ля компсерт.
В event-b/rodin только пруфы, что сама модель не фуфло. Типа как сначала делают черновик на TLA+, договариваются с компилятором и только потом несут спеки кодерам. В последнее вермя пришло несколько человек чтобы эту связь протянуть от объектного кода до хотелок заказчика.
1. У нас поддерживается два сетевых стека, один, полнофункциональный, основан на NetBSD, второй — lwIP. Из файловых систем — ext2, fat, jffs2, ведется работа над портом btrfs.
2. Модель «Rendezvous», которая используется у нас для IPC, вполне пригодна для realtime применений. Если требуется, можно выдать процессу права на доступ к конкретному региону физической памяти (и только к нему), поддерживается IOMMU. Если все сделать правильно, то такое решение будет и «кибериммунно» и производительно. Мы сейчас не целимся в решения, где нужна максимально возможная производительность, рано еще, но это не значит, что с производительностью у нас все плохо по определению.
3. См. ответ wiz. Мы работаем над доказательствами корректности сгенерированного Kaspersky Security System кода. Но компилятор С у нас вполне обычный — поддерживаем gcc и clang.
4. Мы не только код на С умеем генерировать из политики безопасности. Есть еще генерация моделей, например. Плюс сертификация.
5. У нас пока нет формального доказательства эквивалентности кода и модели. Но, например, имея модель можно сгенерировать 100% тестовое покрытие, которое проверит соответствие кода модели.
Будет ли код доступен публично для аудита?
Кубы это линукс. Почему не линукс написано в посте.
Хотя если присесть, то можно воткнуть туда KSS как монитор обращений. Но зачем, если гипервизор это просто одно из маленьких приложений в коси?
Код KasperskyOS планируется сделать доступным для аудита в рамках Global Transparency Initiative.
1) Кто и как пишет драйверы для Kapsersky OS?
2) Вы упомянули про портирование популярных пакетов, а как дела с их поддержкой? Ведь пакеты развиваются…
3) Сфера применения OС? Это только встраиваемые системы или это будет ОС общего назначения?
4) По какой модели будет распространятся и поддерживаться ОС для конечных потребителей?
- Пишет команда SDK или адаптирует уже существующие, если они более-менее готовы работать в юзерспейсе.
- По большому счёту портирование заключается в регистрации их в сборочной системе и выбор версии, которая будет работать со всеми остальными компонентами. Развивающиеся пакеты надо периодически отсматриваить и пробовать пересобирать. Да, это тяжёлая работа мэйнтейнеров дистрибиутивов, но что поделать.
- Нет, не только встраиваемые. Но полноценный десктоп чтобы конкурировать с большими десктопными ОС с нуля делать не в приоритетах. Да как-то и незачем особо. Можно разложить "чужой" софт под гипервизоры или запустить тонкий клиент. Kaspersky Steam OS врятли будет пользоваться спросом сегодня.
2. Здесь wiz ответил. В будущем систему работы с 3rd party пакетами хотелось бы сделать более открытой, т.ч. бы партнерам было проще добавлять новые пакеты и результаты работы были бы доступны всем (если, конечно, партнер не против их опубликовать).
3. Мобильный телефон — это уже очень близко к ОС общего назначения. Но на десктопы и серверный сегмент мы сейчас не целимся.
4. По разному бывает. Есть большой SDK для разработки решений на базе KasperskyOS. Если партнер хочет позиционировать свой продукт как «иммунное» решение, то мы так же помогаем с определением целей безопасности и архитектуры решения, написанием политик, можем делать пен-тестирование. Т.е. это помощь с контролем качества, так что бы не получилось, что используя бренд Лаборатории и активность компании по продвижению кибер-иммунитета партнеры не выпускали совсем дырявые поделки. Есть отраслевые SDK с проработанной архитектурой решения, моделью приложений, написанными политиками безопасности. Хороший пример такого SDK — платформа AUTOSAR Adaptive Platform. Готовится похожие решения для IoT, мобильной платформы. Конкретные условия стоит обсуждать с бизнес-подразделением.
В задаче про конечный автомат бюрократии не хватает корпуса тестовых данных.
Если предлагается все дрова выселить в один домен безопасности, то это тоже можно сделать. Но не понятно зачем делать всю инфраструктуру уязвимой сразу ко всем возможным аппаратным атакам.
Что я упустил?
Это же микроядро. По большому счёту нет разницы у тебя запущен процесс с приложением или процесс с драйвером. Просто кому-то замапили доступ к железу, а кому-то нет и они вынуждены ходить через тех кому замапили — через приложения-драйвера.
А вообще странно — всегда думал, что нет безопасных систем, а есть лишь защищенные.
У меня пара вопросов:
- Можно ли получить образ виртуалки (для x86) или ssh-доступ (с целью оценить готовность платформы и трудоемкость портирования собственных проектов/библиотек)?
- Планируется ли поддержка E2K, или может быть уже?
os.kaspersky.ru/development/download
Сразу предупреждаю, он достаточно сырой и основан на не самой свежей версии. Мы про него специально не писали в статье, во-первых он достоин отдельной публикации, во-вторых хотим выпустить новую редакцию.
Нет, поддержка E2K пока не планируется. Архитектура интересная, но компилятор AFAIK закрытый и поддержать её будет не просто.
Поздно узнал про эту тему, скажите а выполнять задания по системному программированию актуально еще?
Сейчас начал делать, вроде относительно не сложно, вернее скажу так три задания не сложно сделать, но есть где нужно посидеть подумать и вопрос имеет-ли смысл продолжать?
Смысл для меня такой, да интересно-бы с вами побеседовать потом, если интересно то работаю также в сфере разработки кастомной ОС.
Ну и как понимаю все необязательно делать, тогда еще вопрос, а сколько нужно решить заданий для прохождения теста?
В целом я планирую все решить для тренировки, но может занять время.)))
Благодарю за интересные задачи.)
Актуально. Ни операционка, ни монитор ещё не написаны До Конца, а значит новые люди нужны.
Если хочется побыстрее приступить к работе над КОС, и есть уже написанный код, решающий более интересные задачи, чем тестовые, то можно приложить ссылку на него.
Решений нужно столько, сколько считаете необходимым для демонстрации своих навыков.
Никогда на моем компе не будет ни Яндекса ни Касперского. Нет доверия компаниям из страны без независимой судебной системы.
Операционная система с кибериммунитетом: кто, зачем и как создает KasperskyOS