Как создать кибериммунную систему?

Можно ли сделать систему, которую нельзя взломать?

Можно ли сделать операционную систему, которую нельзя взломать?

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

Звучит слишком сказочно, чтобы быть реальностью? Тем не менее на основе такого подхода уже создаются реальные технологические продукты. Попробуем простыми словами объяснить, как именно устроен кибериммунитет.

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

Опыт Кощея

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

«…нелегко с Кощеем сладить: смерть его на конце иглы, та игла в яйце, то яйцо в утке, та утка в зайце, тот заяц в сундуке, а сундук стоит на высоком дубу, и то дерево Кощей как свой глаз бережет.»

Так вещает Баба Яга в сказке Царевна-лягушка.

Что сделал Кощей? Во-первых, минимизировал поверхность атаки до состояния иглы. Во-вторых, изолировал компоненты друг от друга (вернее, друг в друге). В-третьих (предположительно), тщательно следил за результатом. По факту ему это не помогло, поэтому давайте посмотрим, как можно модернизировать его подход, чтобы уберечь доверенную вычислительную базу от опасностей.

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

Если говорить более серьезно, то вот как эти три принципа должны работать на практике.

1. Минимизируем доверенную вычислительную базу (ДВБ)

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

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

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

Согласно исследованию:

  • 96 % критических уязвимостей традиционных ОС не были бы критическими в микроядерных ОС;
  • до 40 % критических уязвимостей были бы вообще невозможны;
  • 57 % всех уязвимостей попадали бы в категорию низкого уровня опасности.

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

Минимизируем доверенную вычислительную базу.

2. Изолируем компоненты друг от друга

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

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

Изолируем компоненты друг от друга.

3. Контролируем все взаимодействия

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

Концепция монитора безопасности опирается на распространенную в индустрии архитектуру FLASK, которая подразумевает разделение точек принятия решений (Policy Decision Point) и точек применения решений (Policy Enforcement Point).

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

Контролируем все взаимодействия

Если собрать все три принципа вместе, получается такая схема:

Общая схема.

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

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

Кибериммунитет сегодня — это не чудесное свойство из сказки. Это подход, который лежит в основе уже существующих продуктов, таких как кибериммунные шлюзы интернета вещей и кибериммунные тонкие клиенты. И количество таких продуктов будет расти. Таким образом, будущее, в которое мы так активно движемся, будет становиться более безопасным. Как пишет консалтинговая компания ARC Advisory Group (перевод на русский): «Кибериммунитет может стать новой основой для более безопасной цифровой трансформации».

Советы