Архивы: по дате | по разделам | по авторам

Патч национальной безопасности

Архив
автор : Максим Отставнов   15.02.2001

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

- Этот «Центр» - подарок для КГБ.
- Как раз наоборот.
- Верно, подарок от КГБ.
Александр Зиновьев «Гомо советикус»


Война не на жизнь, а на смерть идет между «прагматиками», расширяющими функциональность ОС, и «ортодоксами», стремящимися удержать размеры ядер в пристойных пределах. Ядро - штука опасная, оно выполняется в привилегированном режиме и рассматривается, как априорно надежная база для вычислений (trusted computing base, TCB). Любая ошибка или «дыра» в ядре - это риск разнести систему, вместе со всеми приложениями и данными, «до последнего венца».

Теоретически выход предложен был давно, это так называемые микроядерные архитектуры, в которых ядро как таковое разделено на брокер сообщений, выполняющийся в привилегированном режиме процессора, и «системные сервисы», реализующие такие традиционные ядерные функции, как поддержка файловых систем, «слоеный» доступ к сетям и т. п. В той мере, в которой эти сервисы не требуют непосредственного доступа к железу, они могут быть вынесены за пределы привилегированного режима, что позволяет резко сократить объем кода, входящего в TCB.

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

ОС общего назначения на открытой архитектуре должна поддерживать огромное количество разнообразного железа. В результате основной массой кода ядра оказывается код разнообразных драйверов (а вовсе не «системных сервисов», подобных упомянутым).

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

Архитектуру классических ядер приходится «вспарывать» и встраивать в них дополнительные механизмы безопасности. Сейчас в разработке находятся десятки проектов, направленных на купирование ее традиционных недостатков: декомпозицию суперпользовательских привилегий, развитие структуры разграничения доступа и т. п. Один из этих проектов - Security Enhanced Linux (selinux) - набор патчей, призванный придать популярнейшему монолитному ядру свойства, ранее обкатывавшиеся только на микроядерных архитектурах 3.

Вторая половинка интриги заключается в том, что куратор разработки, в течение некоторого времени проводившейся весьма узкой группой, а чуть больше месяца назад представленной вниманию всего сообщества, - Агентство национальной безопасности (АНБ) США.

В АНБ считают (к сожалению, я не могу назвать имя, поскольку сотрудникам Агентства не рекомендуется общаться с нами мимо одобренных каналов, а я не уверен, что источник представляет собой таковой), что «никакие соображения не оправдывают сохранения имеющихся в распоряжении» АНБ и его контракторов «данных в тайне, тем менее - действий, направленных на подрыв безопасности сетей публичного доступа. Сегодня подставленные под удар хосты где-нибудь в России вполне способны стать базой для распределенной атаки на отказ на американские сети, включая государственные». Такая логика, а об искренности судить не берусь. Тем не менее, первые результаты налицо.

Selinux - совместный проект АНБ США и Trusted Systems, Inc. (TSI, ныне подразделение Network Associates, Inc.), направленный на решение частной задачи - интеграции в ядро Linux, наиболее популярное сегодня среди поставщиков операционных систем, механизма так называемой принудительной типизации и доменификации доступа (DTE).

А о том, что такое DTE, рассказывает сегодня сам разработчик этого метода, один из пионеров исследований в области безопасности и надежности информационных систем и один из легендарных Мультиксиан (группы сопровождения ОС Multics) Эрл Бёберт (Earl Boebert).

[i38351]


1 (обратно к тексту) - Максимальное приближение - это QNX, и я рекомендую эксперименты с ней (благо она теперь бесплатная) как в плане демонстрации того, что действительно может микроядерная ОС даже на неадекватной аппаратной платформе, так и того, насколько велик разрыв между предлагаемыми решениями и проблемами: просто поработайте с какой-либо штатной прикладной программой, а потом попробуйте построить и использовать в ее среде универсальный софт.
2 (обратно к тексту) - Существует некоторая путаница в терминологии: микроядрам противопоставляются «монолитные», но «монолитными» называют и однократно загружаемые ядра в противоположность «модульным», хотя и те, и те - «монолитны» в традиционном понимании. Здесь имеется в виду традиционное понимание термина.
3 (обратно к тексту) - Проект flask.
© ООО "Компьютерра-Онлайн", 1997-2024
При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.