Pull to refresh
Здравствуйте! Мы подразделение «Лаборатории Касперского», которое разрабатывает безопасную операционную систему KasperskyOS. Наша цель — создать ОС, у которой есть кибериммунитет, поэтому ей не страшно доверить управление умными автомобилями, сложными техническими процессами и важными информационными системами. Хотим рассказать, как идет развитие проекта, какие технологии лежат в его основе и что получается на выходе. Ну и немного о нашей внутренней структуре: кто и чем занимается, как выстраивается работа на удаленке, а также как попасть к нам в команду.
Узнать →
Total votes 30: ↑23 and ↓7+28
Comments54

Comments 54

все эти «прорывные решения не имеющий аналогов», возможно только за счет гос финансирования и/или гос принуждения к использованию

Или за счёт 700+ млн долларов выручки.

Предварительная работа перед просьбами выделить денег из бюджета, вот на что это больше всего похоже…
Буква М в данном случае заглавная
UFO just landed and posted this here

По большому счёту это прибитые гвоздями политики — либо используешь ту модель, что заложена авторами, либо идёшь на… поиски другой ОС, где заложена новая модель.


В коси с KSS политики можно комбинировать и даже доставлять свои, если задача требует чего-то уникального. Не надо выбирать между ocap и te. Можно поставить обе и обмазать сверху ещё темпоральной логикой.

UFO just landed and posted this here

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


Почти все "секурные" ОС выбрали одну модель и строго ей придерживаются. Что там в линуксе сейчас творится когда надо пару LSM и ещё BPF сверху даже думать не хочется...


Ocap это object capabilities.

UFO just landed and posted this here
Насчет открытия исходников — в статье мы уже говорили, что рассматриваем такую возможность. С замечанием о основной ценности в бумажке о наличии в реестре отечественного ПО не соглашусь (об этом же реестре речь?). Основные деньги Лаборатория зарабатывает не в России и переориентировать бизнес на работу только на рынке РФ планов не строит.
UFO just landed and posted this here
Корректность работы гипервизора как ядра разделения тоже по хорошему доказывать нужно. Например, для Hyper-V это немцы делали, в процессе родился интересный тул VCC. В целом гипервизор не особо что дает по сравнению с микроядром в плане изоляции и пихать его бездумно в IoT смысла нет. А вот если, например, есть желание андроид запускать в отдельной партиции, вот тогда да.

Несколько реализовано, а другие не реализованы. Захочется что-то оригинальное сделать и сиди возись с ядром. А оригинальное хочется очень быстро. Потому что не всё выражается через роли и права.


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


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

Основное что требуется — изоляция и полный контроль всех взаимодействий. Конечно, можно было бы пойти по пути доработки существующего микроядра, сделать его пригодным для работы Kaspersky Security System. Если бы мы начинали писать ОС сейчас, то, возможно, взяли бы за базу тот же seL4. Проделанная работа по верификации вызывает уважение. Но KasperskyOS начал разрабатываться задолго до публикации исходного кода seL4. Тогда вариантов было намного меньше. Сейчас мы уже много вложили в собственную разработку и смысла переходить на что-то другое не видим.
UFO just landed and posted this here
Не очень понятно о каких публикациях идет речь. Я думаю стоит посмотреть наш митап, возможно часть вопросов отпадет.
Основное что требуется — изоляция и полный контроль всех взаимодействий. Конечно, можно было бы пойти по пути доработки существующего микроядра. Если бы мы начинали писать ОС сейчас, то, возможно, взяли бы за базу тот же seL4. Проделанная работа по верификации вызывает уважение. Но KasperskyOS начал разрабатываться задолго до публикации исходного кода seL4. Тогда вариантов было намного меньше. Сейчас мы уже много вложили в собственную разработку и смысла переходить на что-то другое не видим.
Ну да, продукт будет не опенсорс, чтобы замыслы майора не были идентифицированы.

Спасибо за подробный материал на публичной площадке вместо слухов и презентаций.


  1. Как понимаю, на базе микроядра будет несколько вариантов ОС. Если брать вариант общего назначения (не real-time, не для МК), насколько там продвинутый менеджер памяти, подсистема I/O, сетевой стек?
  2. В решениях, под которые заточена эта ОС, драйверам естественно работать с оборудованием напрямую, чтобы достичь real-time (например, automotive) или просто большой скорости (например, сетевой шлюз). Как "кибериммунитет" и message-passing модель уживаются с возможностью DMA?
  3. Очевидно, компилятор системы безопасности сам должен быть доверенным. Решено ли это технически?
  4. Почему политики безопасности компилируются именно в C, а не в какой-нибудь EBPF (условно), который специально сделан простым для удобства верификации?
  5. Какие инструменты применяете для Event-B? Как обеспечиваете или проверяете соответствие модели и кода?
  1. 26 единиц продвинутости (=


  2. С помощью IOMMU и такой-то матери. КОС умеет в некоторые примитивы для разграничения доступа в разные моменты времени и передачи прав.


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


  4. Потому что когда код понесут на сертификацию товарищи майоры будут либо 1) читать его глазами, либо 2) попросят сертификаты на все шаги трансляции. Так что сишка как первоначальное приближение. А дальше ползти в сторону большого количества промежуточных шагов с относительной простой верификацией а ля компсерт.


  5. В 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% тестовое покрытие, которое проверит соответствие кода модели.
В чём заключаются ключевые отличия от Qubes OS?
Будет ли код доступен публично для аудита?

Кубы это линукс. Почему не линукс написано в посте.


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

Помимо того, что это большой и толстый гипервизор Xen, в Qubes OS отсутствуют средства контроля взаимодействий. В целом у них подход существенно менее строгий и системный, не просто так у них слоган reasonably secure operating system.
Код KasperskyOS планируется сделать доступным для аудита в рамках Global Transparency Initiative.
Я почти полностью уверен, что эта система не будет свободной, ведь мы знаем, что Kaspersky Lab — это лучший друг товарища майора.
Добрый день, есть несколько вопросов:
1) Кто и как пишет драйверы для Kapsersky OS?
2) Вы упомянули про портирование популярных пакетов, а как дела с их поддержкой? Ведь пакеты развиваются…
3) Сфера применения OС? Это только встраиваемые системы или это будет ОС общего назначения?
4) По какой модели будет распространятся и поддерживаться ОС для конечных потребителей?
  1. Пишет команда SDK или адаптирует уже существующие, если они более-менее готовы работать в юзерспейсе.
  2. По большому счёту портирование заключается в регистрации их в сборочной системе и выбор версии, которая будет работать со всеми остальными компонентами. Развивающиеся пакеты надо периодически отсматриваить и пробовать пересобирать. Да, это тяжёлая работа мэйнтейнеров дистрибиутивов, но что поделать.
  3. Нет, не только встраиваемые. Но полноценный десктоп чтобы конкурировать с большими десктопными ОС с нуля делать не в приоритетах. Да как-то и незачем особо. Можно разложить "чужой" софт под гипервизоры или запустить тонкий клиент. Kaspersky Steam OS врятли будет пользоваться спросом сегодня.
1. В основном пишем мы сами. Но бывает что пишут и партнеры. Документации по всем классам устройств не всегда хватает, мы над этим работаем.
2. Здесь wiz ответил. В будущем систему работы с 3rd party пакетами хотелось бы сделать более открытой, т.ч. бы партнерам было проще добавлять новые пакеты и результаты работы были бы доступны всем (если, конечно, партнер не против их опубликовать).
3. Мобильный телефон — это уже очень близко к ОС общего назначения. Но на десктопы и серверный сегмент мы сейчас не целимся.
4. По разному бывает. Есть большой SDK для разработки решений на базе KasperskyOS. Если партнер хочет позиционировать свой продукт как «иммунное» решение, то мы так же помогаем с определением целей безопасности и архитектуры решения, написанием политик, можем делать пен-тестирование. Т.е. это помощь с контролем качества, так что бы не получилось, что используя бренд Лаборатории и активность компании по продвижению кибер-иммунитета партнеры не выпускали совсем дырявые поделки. Есть отраслевые SDK с проработанной архитектурой решения, моделью приложений, написанными политиками безопасности. Хороший пример такого SDK — платформа AUTOSAR Adaptive Platform. Готовится похожие решения для IoT, мобильной платформы. Конкретные условия стоит обсуждать с бизнес-подразделением.

В задаче про конечный автомат бюрократии не хватает корпуса тестовых данных.

Там есть правила вывода. Дабы не вдаваться в спойлеры, я просто скажу, что генерировать хороший корпус вполне часть задачи.
Странное решение писать драйверы аппаратуры в ОС. Почему не сделать систему управления аппаратурой как отдельную ОС (нижний слой). На него водрузить ГипервизорОС, а уже в гипервизор грузить разные ОС в разные адресные пространства с хорошей изоляцией и политиками. Некоторые вопросы защиты решились бы за счет выбранного архитектурного решения. Главное, максимально изолировать VM's, дабы проблемы в одной VM не стали проблемой всего компа. А далее, внедрять Ваши придумки..., главное, с переключением контекстов не переусердствовать. Таким образом, Вы могли-бы получить киберось как для телефона, так и для коммутатора, IoT и компов с различными процессорами. А так, как Вам не нужно сдавать Вашу Ось в дурацкую «опен», можно было максимально использовать в своей Оси — аппаратуру. А сам гипервизорОС стал-бы аппаратнонезависимым, что хорошо бы сказалось на бюджете развития Проекта.
Не понял чем предложение отличается от того, что есть? КОС, под ней барахло в гипервизоре плюс куски дров и приложений в юзерспейсе.

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

Что я упустил?
Возможно, я плохо объяснил..., 1 уровень ОС — аппаратуры (не домен), ОС1 защищает, управляет и виртуализирует всю аппаратуру, отделяя реальное железо от других слоев. 2 уровень — гипервизор, или КОС, он не знает ничего про реальное железо, работая на логическом уровне. 3 уровень — другие ОС, потребности которых транслируются через ГиперКос в ОС1, контролируя и защищая всё, что нужно на разных этапах.
Но ведь 1й уровень это KOS есть? Запустили ядро, забутстрапили драйвера и отдали им необходимые ресурсы. Дальше приложения из-под гипервизора или нативные ходят к драйверам за ресурсами.

Это же микроядро. По большому счёту нет разницы у тебя запущен процесс с приложением или процесс с драйвером. Просто кому-то замапили доступ к железу, а кому-то нет и они вынуждены ходить через тех кому замапили — через приложения-драйвера.
Термин защита от перспективных угроз никак у военных маркетологов позаимствовали.
А вообще странно — всегда думал, что нет безопасных систем, а есть лишь защищенные.

У меня пара вопросов:


  1. Можно ли получить образ виртуалки (для x86) или ssh-доступ (с целью оценить готовность платформы и трудоемкость портирования собственных проектов/библиотек)?
  2. Планируется ли поддержка E2K, или может быть уже?
У нас есть Education Kit. Скачать можно тут:
os.kaspersky.ru/development/download

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

Нет, поддержка E2K пока не планируется. Архитектура интересная, но компилятор AFAIK закрытый и поддержать её будет не просто.
Я немного припозднился, но всё же задам вопрос: почему в задании обойдены владельцы CPU от AMD?
Можете сделать аналог для CPU от AMD.
UFO just landed and posted this here
UFO just landed and posted this here
Компания не публикует эту информацию. Попробуйте glassdoor или аналогичные сайты.
UFO just landed and posted this here
Не очень понятно как эту цифру оттранслировать в зп системщика. Густо это сколько будет?
UFO just landed and posted this here
Да, неплохо. Но это потребует уже не только гипервизорные инструкции пробросить в ОС. В смысле за такие деньги специалист не может быть одностаночником ИМХО.
Привет всем!

Поздно узнал про эту тему, скажите а выполнять задания по системному программированию актуально еще?

Сейчас начал делать, вроде относительно не сложно, вернее скажу так три задания не сложно сделать, но есть где нужно посидеть подумать и вопрос имеет-ли смысл продолжать?

Смысл для меня такой, да интересно-бы с вами побеседовать потом, если интересно то работаю также в сфере разработки кастомной ОС.

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

В целом я планирую все решить для тренировки, но может занять время.)))

Благодарю за интересные задачи.)

Актуально. Ни операционка, ни монитор ещё не написаны До Конца, а значит новые люди нужны.


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


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

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

Sign up to leave a comment.