Часто задаваемые вопросы

  1. Безопасная ОС — это не новость! И что теперь?

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

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

    Мы решили создать систему, которая имела бы разные сферы применения, обеспечивала возможности гибкой настройки в зависимости от характера использования. Вообще говоря, мы создали не один продукт, а три. Это операционная система (Kaspersky OS, или KOS), безопасный гипервизор (KSH) и специализированная система для обеспечения безопасного и защищенного взаимодействия между компонентами ОС (KSS). В зависимости от ситуации каждый из этих компонентов может использоваться для решения различных проблем отдельно от других компонентов.

  2. Взломать можно все, и ваша ОС не исключение!

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

  3. Собирает ли KasperskyOS какие-либо данные?

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

  4. Сколько стоит KasperskyOS?

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

  5. Есть ли у вас планы создать на базе KasperskyOS операционную систему общего назначения?

    KasperskyOS — специализированная операционная система. Хотя ее можно интегрировать с существующими приложениями, их придется значительно переработать, чтобы обеспечить соответствие нашим принципам безопасности. Это потребует усилий, которые выходят далеко за рамки возможностей департамента разработки «Лаборатории Касперского» или любого другого разработчика ПО. На данный момент реализация строгой и эффективной модели безопасности, предлагаемой KasperskyOS, возможна только с помощью специализированных аппаратных средств и приложений.

  6. Какие аппаратные платформы поддерживает KasperskyOS?

    В настоящее время KasperskyOS поддерживает архитектуру x86, x64 и ARM. «Лаборатория Касперского» работает над обеспечением поддержки платформ, стандартных для определенных отраслей, таких как телекоммуникации или промышленное производство. Дополнительно в рамках конкретных проектов обеспечивается поддержка аппаратного обеспечения в соответствии с требованиями заказчика.

  7. Обеспечиваете ли вы этот продукт технической поддержкой?

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

  8. На каком языке программирования будет написана ваша операционная система? Будет ли она поддерживать существующие приложения?

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

  9. KasperskyOS основана на Linux?

    Нет.

  10. Как можно загрузить на устройство образ KOS с приложениями?

    На устройствах архитектуры x86 KasperskyOS загружается с помощью загрузчика GRUB. Формат загрузочного образа для архитектуры x86 — ELFс поддержкой многовариантной загрузки.

    На устройствах, основанных на архитектуре ARM, KOS загружается загрузчиком U-Boot. Формат загрузочного образа — ELF.

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

  11. А что с поддержкой синхронизации в многоядерных SMP-системах?

    KasperskyOS поддерживает SMP на архитектуре x86, а также на процессорах iMX6 ARM. Ядро позволяет реализовать фьютексы в пространстве пользователя. На этом основана вся остальная синхронизация в пространстве пользователя. Поддержка событий, мьютексов и семафоров имеется в собственных библиотеках и в библиотеках POSIX API.

  12. Соотвествует ли KasperskyOS в пользовательском режиме стандартам POSIX? Какую библиотеку libc (newlib, glibc) она поддерживает? (Какие функции POSIX API не поддерживаются?)

    Мы хотели обеспечить соответствие нашего API стандартам POSIX, однако это не всегда возможно. Проблема в том, что идеология KOS основана на компонентной модели, и взаимодействие между компонентами строго типизируется, все вызовы IPC осуществляются через ядро KOS и контролируются одной системой — KSS (Kaspersky Security System). Это хорошо с точки зрения безопасности, но означает невозможность реализации функции fork(), например.

    Наши разработчики стараются обеспечить максимальное возможное соответствие Posix, и мы обеспечиваем совместимость с Posix API в значительном количестве случаев.

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

    Что касается libc, KasperskyOS использует стандартную библиотеку newlib версии 2.0.0.

  13. Есть ли поддержка графики (по крайней мере кадрового буфера)? Какие видеокарты вы поддерживаете?

    Кадровый буфер поддерживается KasperskyOS.

    KasperskyOS поддерживает видеокарту VESA для архитектуры x86. Она также поддерживает графический вывод процессора ARM Freescale IMX6. Что касается графических библиотек высокого уровня, имеется поддержка Qt 5.7 и QML на основе кадрового буфера.

  14. Возможно, вы уже реализовали kexec для загрузки ядра Linux из вашей ОС? Как я понимаю, написать код не проблема, но, возможно, это уже сделано?

    Мы не реализовали kexec для загрузки ядра Linux, потому что это противоречит принципам, лежащим в основе KasperskyOS. В рамках нашего подхода вы можете запускать Linux (или любую другую стороннюю операционную систему) с помощью виртуализации. «Лаборатория Касперского» создала гипервизор (Kaspersky Secure Hypervisor, KSH), позволяющий запускать стороннюю операционную систему поверх KasperskyOS, сохраняя при этом возможность контролировать поведение этой операционной системы средствами KasperskyOS (вы можете контролировать доступ к аппаратному обеспечению, передачу данных и т.д.). Например, именно так мы загружали Astra Linux с помощью гипервизора поверх KasperskyOS.

  15. Поддерживает ли ОС языки C и C++? Какие компиляторы (укажите производителя и версию) используются? Какие стандарты языка поддерживаются? Существуют ли ограничения / исключения из стандартов языка?

    Поддерживает. Мы используем GCC 4.9.3 с binutils 2.26, и наша стандартная библиотека языка Си соответствует стандарту C99 (хотя она пока не сертифицирована). У нас также есть слой совместимости с POSIX1-2008. Этот слой соответствует требованиям POSIX1-2008 в части системного интерфейса. Мы не предоставляем системные утилиты, описанные данным стандартом. И мы не реализуем или, по крайней мере, реализуем иначе некоторые из функций POSIX (например, семейство функций fork()). Кроме того, мы не запрещаем использование любых расширений GCC, предоставляемых используемым нами набором инструментальных средств.

  16. Имеет ли ОС уровень VFS (другими словами, уровень абстракции, определяющий API для доступа к различным файловым системам)?
    a. Если VFS присутствует, нам нужно проанализировать заголовочные файлы, относящиеся к уровню VFS, чтобы понять, какой интерфейс должно реализовать наше решение
    b. Если VFS отсутствует, поддерживает ли ОС какую-либо иную файловую систему (например, FAT32)?
    Если поддержка другой ФС имеется, пожалуйста, предоставьте нам API для доступа к этой файловой системе (заголовочные файлы). Если не поддерживается НИКАКАЯ ФС, мы можем предложить UFSD SDK (библиотеку C++).

    Имеет. Наша стандартная библиотека Си использует VFS в качестве серверного приложения для выполнения операций ввода/вывода (т.е. ввода/вывода сокетов/файлов). Базовая версия VFS поставляется с двумя типами файловых систем: FAT32 и RAMFS. Но вы можете легко добавить к VFS свою собственную файловую систему (в нашем SDK есть пример того, как использовать файловые системы ext2/3/4 путем портирования сторонней библиотеки “Lightweight ext4 filesystem library”). Кроме того, наш драйвер VFS можно использовать несколькими разными способами: a) скомпонованным с вашим приложением (т.е. без IPC, с изолированным деревом файловой системы; скорость высокая); b) скомпонованным в отдельный процесс (с IPC, т.е. каждый вызов может контролироваться нашей системой безопасности; с общим деревом файловой системы; медленнее); c) вы можете реализовать ваш собственный драйвер VFS, что позволит каждому приложению в системе взаимодействовать с вашей VFS без перекомпиляции (пример такого сценария есть в нашем SDK); d) вы можете использовать сочетание всех перечисленных выше методов.

  17. Какие файловые системы должны поддерживаться Paragon UFSD™? С NTFS все понятно, но как насчет HFS+, exFAT и других?

    В целом все зависит от требований наших клиентов. Но мы предложили бы обратить внимание на файловые системы для встраиваемых решений (например, JFFS2, UBIFS и т.д.).

  18. Какие сценарии, связанные с файловой системой, планируется реализовать (например, проигрывание медиа-файлов, и/или их запись, резервное копирование/восстановление файлов, загрузка торрентов, и т.д.)?

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

    • Требует ли какой-то из сценариев доступ на запись?

      Опять-таки, возможны варианты. Но в целом — да.

    • Поддержка одной файловой системы с доступом только на чтение — поддержку какой ФС следует реализовать вначале?

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

    • Поддержка одной ФС с доступом на чтение и запись или нескольких ФС с доступом только на чтение?

      Было бы лучше реализовать поддержку одной ФС с доступом на чтение и запись.

    • И наконец, как насчет поддержки нескольких ФС с доступом на чтение и запись?

      Как отмечено выше, реализация поддержки той или иной файловой системы зависит от требований наших клиентов.

  19. Предоставляется ли тестовое окружение и/или примеры?

    Да, мы можем предоставить одну из новейших версий нашего SDK, но только после формального выхода в релиз.

  20. Какие средства отладки и профилирования включены в состав SDK? Как осуществляется отладка приложений?

    Мы предоставляем кросс-компилятор на основе GNU Compiler Collection (GNU Compiler Collection, версия 4.9 — базовая, 5.4 и 6.2 — поддержка в тестовом режиме). При необходимости в состав продукта может быть включен компилятор Clang / LLVM.

    В качестве отладчика мы используем GNU GDB. Отладка осуществляется в порядке, стандартном для кросс-компилятора:

    • Эмулятор (QEMU) + GDB
    • Аппаратная + GDB (через UART)