Copyright

Безопасность как базовая характеристика микроядра QNX Neutrino


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

В данном документе показано, что такое безопасная система и что от нее ожидают, а также необходимые действия для ее реализации. Также будет продемонстрировано, как операционная система реального времени (ОСРВ) QNX® Neutrino® отвечает, с одной стороны, требованиям безопасности, а с другой стороны — ожиданиям пользователей. Данная тема будет рассмотрена с точки зрения специалистов в области безопасности, а также исходя из той концепции безопасности системы, которая была разработана на основе многолетнего практического опыта и путем анализа всех типов систем, больших и малых.

Основы компьютерной безопасности можно отнести к периоду Project MAC и Multic, первоначальных разработок в сфере безопасности, выполненных под руководством Роджера Шелла (Roger Schell) из Национального компьютерного центра безопасности (NCSC). Разработка Multic привела непосредственно к созданию «Оранжевой книги» (Orange Book)1 и формулировке многих основных принципов компьютерной безопасности.

Главными среди этих принципов были понятия, изложенные Джеймсом Андерсоном (James Anderson) в 1972 году, а также Джеромом Зальцером (Jerome Saltzer) и Майклом Шредером (Michael Schroeder) в 1974 году. Эти принципы все еще служат основой для хорошей компьютерной безопасности и образуют основу различных оценочных критериев, начиная с «Оранжевой книги», ITSEC2 и CTCPEC3 и заканчивая существующими сегодня «Общими критериями» (Common Criteria).

В 1972 году Джеймс Андерсон (James Anderson) в своей основополагающей работе Computer Security Technology Planning Study4 определил безопасность как понятие, состоящее из трех основных принципов:
Защита от несанкционированного вмешательства
Способность непрерывно находиться в активном состоянии
Компактность, обеспечивающая возможность анализа и тестирования системы для проверки ее работоспособности

Андерсон объединил эти принципы в отдельный базовый механизм, названный им Монитором доступа (Reference Monitor). Как видно из этой работы, эти принципы также являются основными компонентами оптимальной разработки программного обеспечения, в том числе и качественной разработки ядра. В действительности современные эксперты в области безопасности приравнивают “Монитор доступа” к основным механизмам безопасности ядра. Как ни странно, грамотная разработка и безопасность, по сути, являются синонимами.

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

Как будет видно далее, реализация ядра операционной системы QNX Neutrino на основе стандарта POSIX и неизменное использование блока управления памятью (MMU) обеспечивает требуемую функциональность в соответствии с основным определением безопасности, сформулированным в “Мониторе доступа” Андерсона.

Исходя из базовых принципов безопасности, определенных в начале 1970-х годов Андерсоном, Зальцером и Шредером, современные специалисты в области безопасности разработали методологии и критерии оценки (в том числе по факторам риска и уязвимости) и многие другие формальные методы определения уровня безопасности приложения, системы или сети. alt

В данном документе приведен краткий обзор того, как компания QNX Software Systems с помощью своих жестких методик и функциональных требований к операционной системе реального времени QNX Neutrino реализует принципы Андерсона, Зальцера и Шредера, формирующие основы современной компьютерной безопасности.

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

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

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

Похожие записи