Добрый день, Хабр! Меня зовут Андрей Духвалов и я руковожу департаментом перспективных технологий aka Future Tech в «Лаборатории Касперского». Сегодня, 11 ноября 2022 года, исполняется ровно 20 лет идее, которая в итоге усилиями большой команды разработчиков превратилась в нашу операционную систему. На примере KasperskyOS интересно посмотреть, как достаточно абстрактная концепция воплощается в реальность в доверенном маршрутизируемом коммутаторе, кибериммунных шлюзах и еще в куче проектов. И это несмотря на все препятствия, главным из которых был общий скепсис «Зачем нам еще одна операционка?». Причем скептиков хватало не только среди сторонних наблюдателей — внутри компании тоже далеко не все верили в успех! И важнее всего было убедить именно последних.



Эволюция идеи


Изначальная идея была проста до банальности: что если попробовать изменить правила игры? Информационная безопасность всегда оперировала ответами на угрозы. Появляется угроза — разрабатываем контрмеры. Это всегда игра от обороны, заведомо невыгодная позиция. Нельзя ли поменять условия, разработать некий слой безопасности, в котором правила диктовали бы мы: изначально разрешали бы приложениям делать только то, для чего они предназначены, и ничего сверх того?

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

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

Тут надо сказать, что у нас не было желания изобретать велосипед. Мы далеко не первые задумались о создании доверенной среды: существует множество уже продуманных и обкатанных подходов к ее созданию. Однако мы взяли на себя смелость объединить несколько известных подходов и добавить немного своего, уникального. Наша команда тщательно изучила существующие наработки и проанализировала те из них, которые наиболее подходили для реализации наших задач. Например, один из известных архитектурных принципов Multiple Independent Levels of Security (MILS): в нем, в частности, заложено разделение среды на домены безопасности.

Так постепенно выкристаллизовалась современная архитектура системы: разделить среду на некие изолированные области, в каждой из которых исполняется определенный компонент системы, связать их между собой детализированными интерфейсами и жестко контролировать эти интерфейсы. Упрощенно говоря — все процессы запускаются в своеобразных песочницах или, если вам угодно, в контейнерах, а мы контролируем связи между ними.
Интересно, что в какой-то момент ключевой компонент системы получил собственную жизнь: мы увидели, что инструмент, который должен был контролировать те самые взаимодействия между доменами безопасности, можно применять не только в нашей ОС. А по большому счету не только в ОС в принципе! В результате в марте 2015 года мы выпустили платформу Kaspersky Security System (KSS) в качестве встраиваемого OEM-компонента для разработчиков комплексных решений.

Ведь сетевую инфраструктуру тоже можно рассматривать как набор доменов безопасности, взаимодействия между которыми необходимо контролировать. Или, например, можно присмотреться к процессору: в каждом из них может быть 30–40 IP-ядер (IP-блоков), каждое из которых предоставляет какой-то сервис для других компонентов внутри процессора. И эти блоки тоже взаимодействуют друг с другом, с операционной системой и приложениями, а это значит, что для создания доверенной среды их взаимодействия тоже необходимо контролировать. И для этих задач может использоваться все тот же наш KSS! Впрочем, тут я немного забегаю вперед — пока это лишь исследования, а не коммерческий продукт. Но подход приобретает все более четкие очертания!

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

Залог успеха разработки — предвидение проблем будущего


Пожалуй, самое сложное было доказать жизнеспособность нашей идеи. Повторюсь, в нее верили далеко не все даже внутри «Лаборатории». Наверное, эта проблема актуальна для всех новых разработок: есть некая идея, в которую верит небольшая группа единомышленников. Чтобы добиться реальных результатов, нужно предпринять максимум усилий, чтобы идея стала понятна для широкого круга людей. С этим было сложно, потому что 20 лет назад мало кто видел, насколько это все будет нужно сегодня.

Концепция вроде бы была на виду — предоставить доверенную среду для исполнения приложений, чтобы конечный пользователь мог доверять системе в целом. Но ценность такой среды была достаточно призрачной. Это сейчас доверие требуется в широком диапазоне решений и разработок. А тогда для того, чтобы начать работать над системой и доказать перспективность этой работы, надо было обладать чутьем. Для разработки любого прорывного продукта требуется время, а это значит, что он может родиться только в тот момент, когда его значимость очевидна далеко не всем. В противном случае — вы опоздали. Тут уже не над идеей надо размышлять, а конкурировать с другими продуктами.

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

Эволюция команды



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

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

Так постепенно нашли сначала одного человека, имевшего практический опыт разработки ОС. Это был Павел Дякин, впоследствии возглавивший отдел разработки безопасной платформы. Вместе с ним мы разработали новые подходы, методологию. Потом сформировали группу. И так шаг за шагом. Требовались специалисты по абсолютно разным языкам. Для написания микроядра нужны спецы по си и ассемблеру, для приложений — по C++ или, например, Perl и PHP. Мы используем и Haskell. В процессе работы родились и собственные языки — например, язык описания политик и язык описания компонентов. В рамках этого проекта мы взяли и первого в «Лаборатории» «чистого» математика — Стаса Моисеева.

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

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

Дальнейшее развитие


Сейчас над проектом работает множество разных групп, и у каждой есть свое видение развития. И это прямо праздник какой-то! Разработанная базовая идея позволяет найти KasperskyOS кучу применений, развивать одновременно несколько направлений.

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

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

Но сейчас наш приоритет в том, чтобы донести до разработчиков, до сообщества программистов понимание того, что если им необходимо реализовывать функции безопасности, то на базе KasperskyOS это можно делать дешевле и надежнее, чем на других операционных системах. Платформа подходит для создания бизнес-приложений и информационных систем самой разной направленности: разработок для видеоконференций, систем документооборота, индустриальных систем для обеспечения безопасности технологических линий и других. И мы готовы взаимодействовать с партнерами, которые могли бы достигать своих собственных целей благодаря нашим технологиям: помогать, обучать, реализовывать какие-то компоненты своими силами или совместно.

Комментарии (32)


  1. BeLord
    11.11.2022 11:36

    Кейсы нужны, понятные и простые.

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

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

    Что это дает админу - купил коробку, подключил к монитору, работай. Документация в соответствующие инстанции из коробки.

    Что это дает бизнесу - оптимизацию времени и выполнение требований по ИБ из коробки для систем такого-то класса защищенности.

    Что это дает вам - ассортимент коробочной продукции, ставь на поток и продавай.


  1. MrCleaner
    11.11.2022 13:09
    +4

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


    1. mikhanoid
      12.11.2022 17:17

      Hurd весьма громоздкое устаревшое микроядро. Я не знаю, как это у Касперского решено, но есть классические решения в Нейтрино (микроядро QNX) и в L4. Основная идея в том, чтобы сделать быстрые легковесные канады для IPC через домены общей памяти.


      1. checkpoint
        14.11.2022 00:59

        Да, seL4 весьма интересная реализация микроядерности. Если не ошибаюсь, Фантом Дмитрия Завалишина метит в эту сторону.


    1. 4spirit Автор
      13.11.2022 23:26

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


  1. manyakRus
    11.11.2022 13:39
    -10

    Ничего не понял. Понял только что оно не подходит ни для ПК, ни для сервера, ни для Смартфона. Подходит только для мелких устройств типа "интернет-вещей". В общем никому не нужно :-)


    1. 4spirit Автор
      13.11.2022 23:28

      мелких устройств типа "интернет-вещей" уже сейчас в сотни раз больше, чем смартфонов, серверов и ПК вместе взятых. Не согласен, что никому не нужно


  1. titbit
    11.11.2022 14:03
    +5

    Система заточенная на безопасность с закрытыми исходниками? Хм...


    1. Didimus
      11.11.2022 15:48
      +7

      Тут просто не о безопасности пользователя речь.


    1. 4spirit Автор
      13.11.2022 23:30

      открываем постепенно. планы большие. Кстати, открытые исходники совсем не означают безопасное ПО


      1. checkpoint
        14.11.2022 00:55

        Совершенно верно, открытый исходный код это необходимое, но не достаточное условие безопасности ОС.


  1. zueve
    11.11.2022 14:03
    +1

    Я, простите, не понял в чем тут ноу-хау. Контроль доступа? Но, я так понимаю, все, даже настольные ОС, к этому идут. Но и все понимают, что это не панацея и никак не меняет правила игры, а только усложняет проведение атак, разве нет?


    1. BeLord
      11.11.2022 17:24
      +1

      Мое видение, не претендую на истину. Система сделана с нуля, за счет этого не тащит за собой совместимость с динозаврами, что уже плюс. Производитель находится в РФ, что для определённой сферы применения дает свои плюсы. Система новая, следовательно, потенциально могла учесть опыт старых систем.


      1. checkpoint
        12.11.2022 01:42
        -1

        Весь миллиард библиотек они переписали с нуля в одинокого или все таки затащили их в свою ОС как есть ?

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


        1. 4spirit Автор
          13.11.2022 23:36

          это не гипервизор. изоляция доменов безопасности. за ними бдит ядро вместе с движком политик


          1. checkpoint
            14.11.2022 00:50

            Тогда начнем с начала: это POSIX совместимая ОС ? Где документация на ABI и перечень системных вызовов ?


            1. 4spirit Автор
              14.11.2022 10:19

              ходите сюда, пожалуйста. там и про POSIX и про остальное


    1. 4spirit Автор
      13.11.2022 23:33
      +1

      ноу-хау в том, что доверие зависит от малой доли компонентов = дешевле доказать


  1. 0xd34df00d
    11.11.2022 17:27
    +4

    Было бы крайне любопытно подробнее узнать, для чего вы используете хаскель.


  1. victor_1212
    11.11.2022 23:25

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

    это интересный момент, но могут быть вопросы, например назовем "fast path" через NPU и "slow path" через то что Вы называете "конфигурационный чип", конечно функциональность "slow path" это не только management типа cli, http, snmp и пр. но и поддержка сетевых протоколов типа BGP, IS-IS и тд., если используется linux, то его protocol implementations достаточно известны (+код доступен) , что существует на данный момент в составе KasperskyOS из сетевых протоколов (желательно номера rfc) ?


    1. 4spirit Автор
      13.11.2022 23:39

      проект заморожен, ждет интересанта. хотя идея, конечно перспективная


      1. victor_1212
        14.11.2022 01:47

        спасибо понятно, посмотрел вашу документацию, достаточно интересно, тематика знакома


        1. 4spirit Автор
          14.11.2022 10:36

          отлично. если интерес деятельный, можем поговорить о сотрудничестве. нам партнеры очень нужны, приходите


  1. checkpoint
    12.11.2022 01:35

    Где можно посмотреть на исходные коды операционной системы KasperskyOS ? Хочу изучить и понять, действительно у вас все так красиво как Вы пишите или это все из области "security because of obscurity" ?

    Ну и традиционный вопрос - что делать с наследием.


    1. 4spirit Автор
      13.11.2022 23:55

      Хочу изучить и понять

      Вот это тема!
      Приходите к нам на портал разработчика

      что делать с наследием

      известно что, портировать


      1. checkpoint
        14.11.2022 00:38
        -1

        Приходите к нам на портал разработчика

        Зашел, попытался скачать, но перед этим решил заглянуть в EULA и тут же наткнулся на: 4.1. Вы не вправе декомпилировать, дизассемблировать, модифицировать ПО целиком или частично...

        Моя цель как раз и состоит в том, что бы декомпилировать и дезассемблировать, или иным способом получить исходный код ядра операционной системы с целью изучения и выявления потенциальных уязвимостей, сравнить действительное расположение дел с хвалебными обещаниями. Без выполнения общественностью аудита ваша ОС будет рассматриваться как троян. Удачи!


  1. dyadyaSerezha
    12.11.2022 17:38
    -1

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

    как достаточно абстрактная концепция воплощается в реальность в доверенном маршрутизируемом коммутаторе,

    Автоматически возникает вопрос - доверенном кому? ФСБ?


    1. 4spirit Автор
      14.11.2022 00:01

      а кому нужно было? ЦРУ? АНБ?

      правильный ответ: доверенный тому, кто будет использовать


      1. checkpoint
        14.11.2022 00:44

        Чтобы вызвать у пользователя доверие к ОС необходимо две вещи: 1) опубликовать исходный код ОС, 2) провести независимый анонимный аудит исходного кода обещственностью. Соответственно, до тех пор пока эти условия не выполненны, данное изделие не можеть быть рассмотрено как "доверенная ОС" для конечного пользователя и с большой вероятностью может содержать бэкдоры доступные разработчику и аффилированных с ним лицам, позволяющие вести контроль за деятельностью пользователя.


        1. victor_1212
          14.11.2022 01:56
          +1

          > опубликовать исходный код ОС

          к примеру, Вы исходный код NT видели? :)

          > провести независимый анонимный аудит исходного кода обещственностью

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


        1. 4spirit Автор
          14.11.2022 10:50

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

          код мы тоже открывать собираемся, постепенно.

          а в ML приложениях, для нейросети тоже код будете спрашивать? или 20 млн сэмплов, на которых она обучалась?

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


      1. dyadyaSerezha
        14.11.2022 04:09

        ЦРУ или АНБ хотя бы не посадят за дискредитацию армии, фейки, призывы и прочее - вы знаете лучше меня. Так что уж лучше им.