Эта статья читается как учебник . ( Февраль 2020 ) |
Доверенная вычислительная база ( TCB ) компьютерной системы — это набор всех аппаратных , встроенных и/или программных компонентов, которые имеют решающее значение для ее безопасности , в том смысле, что ошибки или уязвимости, возникающие внутри TCB, могут поставить под угрозу свойства безопасности всей системы. Напротив, части компьютерной системы, которые находятся за пределами TCB, не должны иметь возможности вести себя неправильно таким образом, чтобы это привело к утечке дополнительных привилегий, помимо тех, которые предоставлены им в соответствии с политикой безопасности системы .
Тщательное проектирование и реализация надежной вычислительной базы системы имеет первостепенное значение для ее общей безопасности. Современные операционные системы стремятся уменьшить размер TCB [ не проверено в теле ] , чтобы исчерпывающая проверка ее кодовой базы (с помощью ручного или компьютерного аудита программного обеспечения или проверки программы ) стала осуществимой.
Термин восходит к Джону Рашби [ 1] , который определил его как комбинацию ядра операционной системы и доверенных процессов . Последнее относится к процессам, которым разрешено нарушать правила контроля доступа системы. В классической статье «Аутентификация в распределенных системах: теория и практика» [2] Лэмпсон и др. определяют TCB компьютерной системы просто как
Оба определения, хотя и понятны и удобны, не являются теоретически точными и не предназначены для этого, так как, например, сетевой серверный процесс в операционной системе типа UNIX может стать жертвой нарушения безопасности и поставить под угрозу важную часть безопасности системы, но при этом не является частью TCB операционной системы. Orange Book , еще один классический справочник по компьютерной безопасности , поэтому дает [3] более формальное определение TCB компьютерной системы, как
Другими словами, доверенная вычислительная база (TCB) представляет собой совокупность оборудования, программного обеспечения и элементов управления, которые совместно формируют доверенную базу для реализации вашей политики безопасности.
В «Оранжевой книге» далее поясняется, что
Другими словами, данная часть оборудования или программного обеспечения является частью TCB, если и только если она была разработана как часть механизма, который обеспечивает ее безопасность для компьютерной системы. В операционных системах это обычно состоит из ядра (или микроядра ) и выбранного набора системных утилит (например, программ setuid и демонов в системах UNIX). В языках программирования, разработанных со встроенными функциями безопасности, таких как Java и E , TCB формируется из среды выполнения языка и стандартной библиотеки. [4]
Вследствие вышеприведенного определения Orange Book границы TCB тесно зависят от специфики того, как реализуется политика безопасности. В приведенном выше примере сетевого сервера, даже если, скажем, веб-сервер , обслуживающий многопользовательское приложение, не является частью TCB операционной системы, он несет ответственность за выполнение контроля доступа , чтобы пользователи не могли узурпировать личность и привилегии друг друга. В этом смысле он определенно является частью TCB более крупной компьютерной системы, которая включает в себя сервер UNIX, браузеры пользователя и веб-приложение; другими словами, проникновение в веб-сервер, например, через переполнение буфера, не может рассматриваться как компрометация операционной системы как таковой, но он, безусловно, представляет собой вредоносный эксплойт в веб-приложении.
Эта фундаментальная относительность границ TCB иллюстрируется концепцией «цели оценки» (TOE) в процессе обеспечения безопасности Common Criteria : в ходе оценки безопасности Common Criteria одним из первых решений, которое необходимо принять, является определение границ аудита с точки зрения списка компонентов системы, которые будут подвергнуты проверке.
Системы, не имеющие надежной вычислительной базы как части своего дизайна, не обеспечивают безопасность сами по себе: они безопасны только в той мере, в какой безопасность обеспечивается им внешними средствами (например, компьютер, находящийся в запертой комнате без сетевого подключения, может считаться безопасным в зависимости от политики, независимо от программного обеспечения, которое он запускает). Это происходит потому, что, как выразился Дэвид Дж. Фарбер и др. [5] [i]na компьютерной системе целостность нижних слоев обычно рассматривается как аксиома для верхних слоев . Что касается компьютерной безопасности, рассуждения о свойствах безопасности компьютерной системы требуют возможности делать обоснованные предположения о том, что она может и, что более важно, не может делать; однако, исключая любые основания полагать иначе, компьютер способен делать все, что может обычная машина фон Неймана . Очевидно, что это включает в себя операции, которые будут считаться противоречащими всем, кроме самых простых политик безопасности, например, разглашение адреса электронной почты или пароля , которые следует хранить в секрете; Однако, если не учитывать специальные положения в архитектуре системы, нельзя отрицать, что компьютер можно запрограммировать на выполнение этих нежелательных задач.
Эти специальные положения, направленные на предотвращение выполнения определенных видов действий, по сути, составляют доверенную вычислительную базу. По этой причине Оранжевая книга (все еще являющаяся справочником по проектированию безопасных операционных систем с 2007 года [обновлять]) характеризует различные уровни обеспечения безопасности, которые она определяет, в основном, с точки зрения структуры и функций безопасности TCB.
Как указано в вышеупомянутой Оранжевой книге, программные части доверенной вычислительной базы должны защищать себя от несанкционированного вмешательства, чтобы иметь какой-либо эффект. Это связано с архитектурой фон Неймана , реализованной практически во всех современных компьютерах: поскольку машинный код может обрабатываться как просто другой вид данных, он может быть прочитан и перезаписан любой программой. Этого можно избежать с помощью специальных положений по управлению памятью , которые впоследствии должны рассматриваться как часть TCB. В частности, доверенная вычислительная база должна, по крайней мере, предотвращать запись в свое собственное программное обеспечение.
Во многих современных ЦП защита памяти, в которой размещается TCB, достигается путем добавления специализированного оборудования, называемого блоком управления памятью (MMU), который программируется операционной системой для разрешения и запрета доступа запущенной программы к определенным диапазонам системной памяти. Конечно, операционная система также может запретить такое программирование для других программ. Этот метод называется режимом супервизора ; по сравнению с более грубыми подходами (такими как хранение TCB в ПЗУ или, что эквивалентно, с использованием архитектуры Гарварда ), он имеет преимущество в том, что позволяет обновлять критически важное для безопасности программное обеспечение в полевых условиях, хотя разрешение безопасных обновлений доверенной вычислительной базы создает собственные проблемы самозагрузки. [6]
Как указано выше, доверие к доверенной вычислительной базе необходимо для достижения любого прогресса в установлении безопасности компьютерной системы. Другими словами, доверенная вычислительная база «доверена» в первую очередь в том смысле, что ей нужно доверять, а не обязательно, что она заслуживает доверия. В реальных операционных системах регулярно обнаруживаются критические для безопасности ошибки, что свидетельствует о практических пределах такого доверия. [7]
Альтернативой является формальная проверка программного обеспечения , которая использует математические методы доказательства, чтобы показать отсутствие ошибок. Исследователи из NICTA и ее ответвления Open Kernel Labs недавно провели такую формальную проверку seL4, члена семейства микроядер L4 , доказав функциональную корректность реализации ядра на языке C. [8] Это делает seL4 первым ядром операционной системы, которое закрывает разрыв между доверием и надежностью, предполагая, что математическое доказательство не содержит ошибок.
Из-за вышеупомянутой необходимости применять дорогостоящие методы, такие как формальная проверка или ручная проверка, размер TCB имеет непосредственные последствия для экономики процесса обеспечения TCB и надежности полученного продукта (с точки зрения математического ожидания количества ошибок, не найденных во время проверки или проверки). Поэтому, чтобы сократить расходы и риски безопасности, TCB следует поддерживать как можно меньшим. Это ключевой аргумент в дебатах о предпочтении микроядер монолитным ядрам . [9]
AIX реализует доверенную вычислительную базу как дополнительный компонент в своей системе управления пакетами во время установки. [10]